目前有腾讯云的一个轻量云服务器,已经注册好域名以及备案。家中有一台 nas ,部署了一些服务,其中一些服务是 https 的。
目前是想使用公网各种子域名来访问 NAS 的各种服务。云服务器只作为转发的跳板。尝试了 frp+nginx 的方案,会有 502 的错误,麻烦各位问一下这种情况一般什么解决方案最省心。
![]() | 1 lower 2023-07-28 22:18:22 +08:00 ![]() cf zero trust ? |
2 longbow0 2023-07-28 22:23:08 +08:00 ![]() zerotier+caddy? |
3 xuyong3250 OP @lower 这种异地组网的方案可能只能自己用,不太方便给家里人用 |
4 xuyong3250 OP @longbow0 我看看 caddy 能不能和 frp 组合使用 |
5 jeesk 2023-07-28 22:29:53 +08:00 要公网就 frp, 不要公网就 zerotier 之类的组网工具。 |
6 wangerka 2023-07-28 22:37:39 +08:00 ![]() @xuyong3250 他说的应该是 cloudflared tunnel ,不是组网,是打洞,可以向外部公开 http 和 tcp 服务 |
![]() | 8 blankmiss 2023-07-28 22:39:50 +08:00 内网穿透就行了 这种问题 一年在 v2 能出现几十次 我也是服了 |
9 xuyong3250 OP @wangerka 好,我看看 |
10 xuyong3250 OP @wangerka 是我想要的服务了,可惜国内访问比较慢。 |
11 cnbatch 2023-07-28 23:03:29 +08:00 ![]() 还有个办法,家里的路由器用 OpenVPN 或 WireGuard 主动连接到服务器,然后配置好路由表(或者连接前在配置文件中事先写好),这样就不需要 frp 了。 然后还可以弄端口转发,这样连 Nginx 都可以省了。 |
![]() | 12 moxuanyuan 2023-07-28 23:05:00 +08:00 ![]() |
![]() | 13 icaolei 2023-07-28 23:14:03 +08:00 ![]() 家里路由器开 IPv6 ,在 NAS 上用群晖自带的 Nginx 或者自己装一个 Nginx ( Docker 安装 Nginx ,需要用 host 网络),反代到服务上。在外面大部分情况下是有 IPv6 的,可以直连。 偶尔在没有 IPv6 的地方,可以分享手机热点,现在手机分享出来的热点也是有 IPv6 的,这样也是直连。 如果手机分享热线方式也不行,可以提前把云服务器的 IPv6 打开,并部署一个代理,如 V2Ray ,要访问 NAS 上服务的时候,可以让你的域名走这个代理。 |
14 feaul 2023-07-28 23:16:55 +08:00 如果本地是 https 服务的话,直接用 frp 的 https 实现,如果本地是 http 的服务想反代成 https 服务 可以用 frp 的 https2http 来实现 |
15 xuyong3250 OP 研究了一下各位提供的方案,我决定组网去了=_=,几个常用的服务再配置一下端口转发。 |
16 xuyong3250 OP @feaul 是应该这样的,但是 nginx 那边报错 502 ,搜了半天没解决,不折腾了。 |
![]() | 17 cpstar 2023-07-28 23:21:00 +08:00 ![]() frp 不至于啊,云上用 frps ,家里 nas 跑 frpc ,把 nas 的端口映射到公网的 frps 上,然后 nginx 走 127.0.0.1 的 frps 映射出来的端口,不可能 502 的。 |
![]() | 18 cpstar 2023-07-28 23:21:40 +08:00 补 17# nginx proxy_pass 127.0.0.1:[frps_port] |
19 feaul 2023-07-28 23:22:06 +08:00 @xuyong3250 估计你配置有问题吧,我现在转发 https 和 https2http ,tcp 的都没问题。 |
20 xuyong3250 OP @feaul 可以分享一下 nginx 和 frpc 的配置么?我看看哪里配置错了 |
![]() | 21 locoz 2023-07-28 23:29:08 +08:00 ![]() 告诉你个冷门但省事的办法: 如果你家里有公网 IP ,用腾讯云的 CDN ,设置回源地址为 DDNS 域名,指定自定义端口完事。 如果你家里没有公网 IP ,那就去搞一个,IPV4/IPV6 都可以,腾讯云 CDN 两种都支持。 |
22 xuyong3250 OP @locoz 租房,还是路由器套路由器,不然可以省心好多 |
23 feaul 2023-07-28 23:31:39 +08:00 ![]() @xuyong3250 我的云服务我没有用 nginx ,直接用的 fpc ,实现了不同的子域名解析到不同的 nas 的不同服务, |
24 xuyong3250 OP @feaul 好,我试试,那本地的 nas 需要做额外的配置么?比如把域名的证书上传到本地的 nas 里面? |
25 feaul 2023-07-28 23:51:12 +08:00 ![]() @xuyong3250 是的,要直接把证书放到本地的 NAS 里面,在 frpc 里面写配置,本地 http 的服务器,frp 代理成 https 的服务了 下面是官方的配置案例 [common] server_addr = x.x.x.x server_port = 7000 [test_htts2http] type = https custom_domains = test.yourdomain.com plugin = https2http plugin_local_addr = 127.0.0.1:80 # HTTPS 证书相关的配置 plugin_crt_path = ./test.yourdomain.com.crt plugin_key_path = ./test.yourdomain.com.key plugin_host_header_rewrite = 127.0.0.1 plugin_header_X-From-Where = frp 你可以详细的看看 frp 官方的配置 |
26 feaul 2023-07-28 23:56:10 +08:00 @locoz 家里有公网都不用 cdn 了,直接在家用路由器上配置 ddns 域名,路由器转发端口不就完事了吗?在外直接访问 ddns 域名加端口不好吗? |
27 xuyong3250 OP @feaul 租房,不太好操作房东的网络 |
![]() | 28 locoz 2023-07-29 00:15:45 +08:00 ![]() @feaul #26 因为加端口访问无法简单直观地内外网通用,还增加了带端口的复杂度,而且带个端口看着就很怪,再加上有些软件是写死端口连接 / 不支持自定义端口 / 自定义端口会出奇葩问题的,深入用下来会发现带端口的问题很多。如果没问题,我以前也不会琢磨着用 VPN 来统一成无端口域名访问了: https://zhuanlan.zhihu.com/p/73529477 |
29 kwanzaa 2023-07-29 00:31:28 +08:00 ![]() caddy + wg |
![]() | 30 shalingye 2023-07-29 00:31:43 +08:00 via Android ![]() frp 转发 http 即可,不需要 Nginx 。 |
![]() | 31 IvanLi127 2023-07-29 02:02:14 +08:00 via Android caddy - xray --- xray - caddy 的路过 你的服务器和 nas 都在大陆吗?都在的话应该不至于动不动 502 |
![]() | 32 xuanbg 2023-07-29 06:42:15 +08:00 需要两次反代。云服务器反代到 NAS ,一般是统一转发到一个内部 80 映射出去的高端口,譬如 20080 -> 80 。NAS 上再监听 80 端口反代到服务。 |
![]() | 33 totoro625 2023-07-29 07:28:58 +08:00 via Android 腾讯云服务器如果不需要在 443 开其他服务,直接用 frp 接管 443 ,省去 nginx 的配置 我是用 tailscale 组网后,用的高位端口转发到 nas 放弃 443 |
34 anjingdexiaocai &bsp; 2023-07-29 09:07:39 +08:00 via Android 我没有用到啥 frp ,我只是在工作中接触到 netty ,就自己基于 netty 写了一个内网穿透服务。跟你一样也是腾讯云轻量服务器,申请了域名,备案了网站。至于子域名,端口啥的,直接在云服务器上使用下 nginx 就行。 |
![]() | 35 Planehi 2023-07-29 09:47:35 +08:00 via Android ![]() nginx-proxy-manager |
![]() | 36 Achophiark 2023-07-29 10:11:57 +08:00 同意楼上的,直接 nas-docker 部署个 npm 最简单吧。 |
![]() | 37 LoveMyself546 2023-07-29 10:28:34 +08:00 @locoz #21 有个疑问,腾讯云 CDN 大陆加速的回源地址是不是要备案域名才可以 |
![]() | 38 locoz 2023-07-29 10:51:27 +08:00 @LoveMyself546 #37 直接指定 IP 地址都可以的,用域名作为回源地址只是因为方便继续使用常规的 DDNS 工具 |
39 ungrown 2023-07-29 11:10:05 +08:00 cpolar cloudflare tunnel zerotier ... |
![]() | 40 s4d 2023-07-29 12:57:30 +08:00 我在用 Cloudflare tunnel ,把家里群晖上 Docker 项目都搞出来自用,不需要在主路由器上开放端口。 |
41 lovelylain 2023-07-29 12:58:00 +08:00 via Android frp+nginx 报 502 是你没折腾好,而不是这个方案有问题,再花点时间琢磨吧 |
![]() | 42 qiaoyurensheng 2023-07-29 13:01:50 +08:00 |
43 xuyong3250 OP 目前已实现 https->公网 nginx->http->frps http->frpc http ->nas 服务 |
44 ducks 2023-07-29 13:54:25 +08:00 我反正没有碰到啥 502 错误,一直顺利 |
45 chenluo0429 2023-07-29 14:05:58 +08:00 via Android zerotier 这类组网才是正解啊,不是要求家人组网,nas 和你的轻量云组网后,已经直接网络互通,轻量云就可以直接反代到 nas 上了啊 |
![]() | 46 idragonet 2023-07-29 14:15:16 +08:00 腾讯云带宽太小,家里路由器做映射吧。 |
![]() | 47 terencelau 2023-07-29 14:26:28 +08:00 ![]() 个人使用的方案是 WireGuard 组网然后 Nginx/Caddy |
![]() | 48 RyougiShiki 2023-07-29 15:54:21 +08:00 用 nas 自带的 ddns ,简单稳定,然后自己域名 cname |
![]() | 50 since640 2023-07-29 22:04:40 +08:00 tailscale + caddy 如果没有公网 我试过了, 就是流量都是走的服务器 |
![]() | 51 zyq2280539 2023-07-29 22:44:36 +08:00 ![]() tailscale 做内网穿透,然后包一层 nginx 就行了 |
52 xuyong3250 OP @ashuai 嗯,目前主要是有些本地的 https 服务不太好反代,其他的 http 的都能外网访问了。 |
53 hanbagui0021 2023-07-31 13:24:19 +08:00 看了一遍居然没有推荐 `traefik` 的。目前 unraid nas 使用 traefik 使用很舒服,还可以配合 `Authelia` 增加授权认证。附上我找到的教程: https://docs.ibracorp.io/traefik/master/unraid |
54 hafung 2023-08-12 21:02:24 +08:00 |