同一个域名如何实现在家里走内网在外面走公网连接群晖

2024-01-30 10:06:13 +08:00
 itskingname

背景

我的 NAS 有公网 IP ,通过群晖的 DDNS 绑定了域名:xxx.com:13180

使用手机流量或者在外面访问域名一切正常。但是回到家以后,当我连上了家里的 wifi ,无论是直接使用外网 IP 还是使用域名,均无法访问 NAS ,必须使用 192.168 内网 IP 或者换成流量才能访问 NAS 。

需求

使用这个域名,无论在外网还是内网均能访问群晖。

设备

我没有旁路由器,只有联通送的光猫+送的路由器,没有其他网络设备。

请问我应该怎么设置,才能实现这个需求?

20042 次点击
所在节点    NAS
129 条回复
bg7lgb
2024-01-30 14:12:03 +08:00
hairpin nat ,需要路由器支持。

在 RouterOS 上通过设置两条 Nat 规则 实现。
LoNeZ
2024-01-30 14:12:08 +08:00
太麻烦了感觉直接解析到 tailscale 这之类的 ip 就好了, 透过 tailscale 直接访问
Laoz666
2024-01-30 14:14:02 +08:00
说实话 威联通自然实现了 他先访问的外网,检测到在内网的时候会自己切换内网的地址
wheat0r
2024-01-30 14:14:40 +08:00
@itskingname #59 这根本不是什么回家取钥匙的问题,DNS 服务器可没规定自己必须运行在群晖上,你大可以装一台机架服务器放在家里跑 DNS
itskingname
2024-01-30 14:15:17 +08:00
@laox0 群晖的 app 需要连
itskingname
2024-01-30 14:16:01 +08:00
@wheat0r 就是因为家里没有其他设备 24 小时开机,否则我直接搭建一个软路由就解决了
bobryjosin
2024-01-30 14:16:26 +08:00
看下来你需要一种合理优雅且简单的办法,不能路由器回流也不想用 vpn 和 dns ,那就只剩类似 zerotrust tunnel 或者 vps 全部走中转吧,最麻烦且合理办法。
wheat0r
2024-01-30 14:16:52 +08:00
@bg7lgb #61 我一直觉得 Hairpin NAT 是没办法的办法,产生不必要的路径和 NAT 压力
kome
2024-01-30 14:24:09 +08:00
1. 添加两条 DDNS 记录,一条公网 IPv4 ,一条内网 IPv6 ,是否可行不清楚
2. 搭建内网 DNS ,DHCP 分发 IP 的时候直接分发内网 DNS 地址,不再分发公网 DNS
3. 只做 IPv6 的 DDNS
sundev
2024-01-30 14:24:50 +08:00
这个目前两种方案:
1. 内网布置 dns 服务器,将这个域名解析到内网 ip
2. 设置路由器的 NAT ,关键词:NAT 环回、端口回流、hairpin nat

这两种时完美方案,其他方案都不完美
sundev
2024-01-30 14:29:35 +08:00
@sundev #70 这个问题的本质是路由器(网关)在进行 NAT 的时候没有进行 SNAT ,NAS 返回的数据包没有经过网关,直接发送到终端上,终端不认识该数据包,所以被丢弃。
totoro625
2024-01-30 14:30:55 +08:00
surge
判断是否处于局域网,自动切换
YoukuShow
2024-01-30 14:33:04 +08:00
只要你能拿到联通送的光猫的管理员权限就可以设置。
1 ,买个域名,比如:yyy.cn ,把 synology.yyy.cn 指向自己家
2 ,登录光猫:a. 把本地网络域名设置为 yyy.cn ; b. 群晖的 ip 给个 hostname ,比如:synology
3 ,内网用 synology.yyy.cn:5000 (或者 5001) 就能访问到了
4 ,登录光猫:允许端口 5000 (或者 5001) 的数据转发去群晖

这样家内外都能用 http://synology.yyy.cn:5000 访问了。
Puteulanus
2024-01-30 14:38:09 +08:00
其实 DNS 的解决办法好一些,你回家了还用公网 IP 访问 NAS ,肯定至少得到路由器走一圈,你要光猫没改桥接甚至还得去光猫上转一圈,但是走内网 IP 可能走硬件交换芯片/交换机直接就通信了

而且断网的时候 DNS 那个方案你是依然能在内网用域名访问到 NAS 的

这个过程复杂是你自己想象出来的,实际上走公网 IP 才是影响更大的那个方案。。
afirefish
2024-01-30 14:51:01 +08:00
送的路由器支持改 host 的话,直接在上面指定域名解析记录为内网地址。不支持的话,换个支持 openwrt 的路由器。( wr30u ,150 块)
woody3rd
2024-01-30 14:53:55 +08:00
花哨
mikasa1024
2024-01-30 15:00:47 +08:00
之前也有过类似的问题

我家里的宽带没有公网 IP ,利用云服务器搭建了 tailscale 在外面访问家里的群晖。这样一来,家里局域网环境下群晖 IP 是 192.XXX ,外面使用 tailscale 访问的群晖 IP 是 10.XXX ,导致手机上的一些群晖 APP 来回改地址。

至于为什么在家里不用 tailscale 的 IP 访问群晖,是因为不想时刻开着 tailscale ,而且局域网中手机挂着 VPN 访问局域网设备也有点奇怪

看了楼上的一些回复,感觉可以这样解决:
域名指向 tailscale 群晖 IP ,同时家里路由器上设置 hosts 使局域网中域名指向 192.XXX ,就可以一直使用一个域名访问,但是如果路由器不支持设置 hosts 就不好弄了
Jack927
2024-01-30 15:02:19 +08:00
看了 op 的回复和附言,去了解下基础的网络知识吧。

> 我知道可以群晖搭 DNS ,然后使用自己的 dns 服务器。 然后 xxx 但是这样做非常奇怪。

你的需求是,“使用这个域名,无论在外网还是内网均能访问群晖”,那么域名解析经过 dns 有啥好奇怪的呢? 域名不经过 dns 解析才奇怪呢。
dasf53adf
2024-01-30 15:03:16 +08:00
NAT 回源,OPENWRT 有这个选项,如果找不到就手动加一个 SNAT ,目标地址是这个内网服务器的内网地址,然后源是同段地址,源地址转换为网关地址。或者用伪装。
Jack927
2024-01-30 15:04:37 +08:00
自建 dns/dns 重写的的情况下:
外网:dns 正常解析到 ddns 的 ip , 能访问。
内网: 走自己的 dns ,直接解析到内网 IP ,能访问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1012671

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX