目前有腾讯云的一个轻量云服务器,已经注册好域名以及备案。家中有一台 nas ,部署了一些服务,其中一些服务是 https 的。
目前是想使用公网各种子域名来访问 NAS 的各种服务。云服务器只作为转发的跳板。尝试了 frp+nginx 的方案,会有 502 的错误,麻烦各位问一下这种情况一般什么解决方案最省心。
1
lower 2023-07-28 22:18:22 +08:00 1
cf zero trust ?
|
2
longbow0 2023-07-28 22:23:08 +08:00 1
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 1
@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 2
还有个办法,家里的路由器用 OpenVPN 或 WireGuard 主动连接到服务器,然后配置好路由表(或者连接前在配置文件中事先写好),这样就不需要 frp 了。
然后还可以弄端口转发,这样连 Nginx 都可以省了。 |
12
moxuanyuan 2023-07-28 23:05:00 +08:00 1
|
13
icaolei 2023-07-28 23:14:03 +08:00 1
家里路由器开 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 1
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 1
告诉你个冷门但省事的办法:
如果你家里有公网 IP ,用腾讯云的 CDN ,设置回源地址为 DDNS 域名,指定自定义端口完事。 如果你家里没有公网 IP ,那就去搞一个,IPV4/IPV6 都可以,腾讯云 CDN 两种都支持。 |
22
xuyong3250 OP @locoz 租房,还是路由器套路由器,不然可以省心好多
|
23
feaul 2023-07-28 23:31:39 +08:00 1
@xuyong3250 我的云服务我没有用 nginx ,直接用的 fpc ,实现了不同的子域名解析到不同的 nas 的不同服务,
|
24
xuyong3250 OP @feaul 好,我试试,那本地的 nas 需要做额外的配置么?比如把域名的证书上传到本地的 nas 里面?
|
25
feaul 2023-07-28 23:51:12 +08:00 1
@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 1
@feaul #26 因为加端口访问无法简单直观地内外网通用,还增加了带端口的复杂度,而且带个端口看着就很怪,再加上有些软件是写死端口连接 / 不支持自定义端口 / 自定义端口会出奇葩问题的,深入用下来会发现带端口的问题很多。如果没问题,我以前也不会琢磨着用 VPN 来统一成无端口域名访问了: https://zhuanlan.zhihu.com/p/73529477
|
29
kwanzaa 2023-07-29 00:31:28 +08:00 1
caddy + wg
|
30
shalingye 2023-07-29 00:31:43 +08:00 via Android 1
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 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 1
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 1
个人使用的方案是 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 1
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
|