如何配置路由器以实现局域网内使用域名访问能自动重定向到某个 ip 和端口

296 天前
 allenpu666

家庭使用 nas 做服务器,基于 lucky 进行反代和 http 转 https ,已经实现了外网访问

其中 sample.com 已经通过 lucky 的 DDNS 实现了公网 IP 地址绑定并自动更新

反代如下:

a.sample.top:12345 -> 192.168.3.60:16801
b.sample.top:12345 -> 192.168.3.60:16802
c.sample.top:12345 -> 192.168.3.60:16803
d.sample.top:12345 -> 192.168.3.128:80
e.sample.top:12345 -> 192.168.3.88:3000
…………

现在在局域网内某电脑/手机上访问 c.sample.top:12345,是可以访问的。

不过速度会受到公网上传的限制,

例如家里宽带是 1000/50Mbps,那么在局域网内访问 c.sample.top:12345 时,速度就是 50Mbps,而达不到内网的千兆/2.5G 速度


请问,如何配置路由器(或者软路由),使得局域网内访问这个域名(子域名)的时候,自动跳转到内网服务,而非经过路由器出去又回来了

4400 次点击
所在节点    NAS
54 条回复
FaiChou
296 天前
我也有这个问题。
在内网下访问家里 nas ,比如 jellyfin, moviepilot, qb, alist 等服务很快,同时做了 cf tunnel 将一些服务暴露出去,这样在外面也能直接用域名访问。

但是如果在家里用域名来访问这些服务就会很慢。

现在的办法就是搞了两套,一套是内网的 ip ,一套是域名访问。
ohhokay
296 天前
你说的是这个功能吗
ohhokay
296 天前
badgv
296 天前
1:在内网使用公网域名,不可能收到运营商的带宽限制,因为你数据包都没有走出路由器,除非你域名是 cf proxy 的解析
2:可以用全内网 dns 劫持+全内网 hosts 实现,dns 软件都能实现,把你指定二级域名绑定成指定内网 ip 就行了
esee
296 天前
先把端口统一,内网 dhcp 的时候设置分配的 dns 为路由器,路由器上添加内网的域名解析
pan404
296 天前
不就是 dns 劫持
yinshuai
296 天前
DNS 劫持+Nginx ,用 Dns 劫持把域名 ip 指向 Nginx 的机器,然后 Nginx 再根据域名转发到相应的 ip 和端口。如果端口就是 80 那就不需要 Nginx 转发了 直接 Dns 劫持到指定的 ip 就行。
phenixc
296 天前
我是用 lucky 反代的。最近也想这样做。目前考的的情况是这样,
1. 如果在外网用域名加端口号访问比较简单,内网 dns 劫持域名指向 lucky 服务地址,lucky 用端口转发向内网地址和端口就行

2. 如果想用子域名访问,感觉需要起两个 lucky,一个代理外网,一个代理内网,代理外网的使用 web,代理内网的使用端口转发+dns 劫持
phenixc
296 天前
@phenixc 又想了一下,好像不用那么麻烦,直接无脑劫持 dns 指向 lucky 的内网地址就可以了,都是用 lucky 反代,无非是一个通过公网 dns 获取 lucky 的公网地址,一个是通过 内网 dns 劫持指向 lucky 的内网地址,有了 lucky 的地址,后面的事情都是 lucky 做了。
shenjinpeng
296 天前
装个 adguard home, 路由器 dns 填 adguard 的 IP 地址
shenjinpeng
296 天前
TsukiMori
296 天前
我用的 NGINX 反代
a.xxx.com -> 转发到 apache 内网 8080
b.xxx.com -> 直接监听并打开网页
c.xxx.com->根据/location 转发到不同的监听程序
PolarBears
296 天前
路由器上使用 DNAT 即可解决
shentar
296 天前
这一定是应用层协议的事情。网络设备感觉搞不定。能携带域名的协议,常见的只有 http 和 https 了。那就只能是 nginx 反向代理搞定。
laooong
296 天前
我用的 openwrt 中的 Dnsmasq 的主机名映射。
y1y1
296 天前
nat loopback
H97794
296 天前
外网同一个端口,很麻烦吧

a.sample.top:12345 -> 192.168.3.60:16801
b.sample.top:12345 -> 192.168.3.60:16802
c.sample.top:12345 -> 192.168.3.60:16803
d.sample.top:12345 -> 192.168.3.128:80
e.sample.top:12345 -> 192.168.3.88:3000

内网的话
路由器上

DNS
a.sample.top 10.10.0.1
b.sample.top 10.10.0.2
c.sample.top 10.10.0.3
d.sample.top 10.10.0.4
e.sample.top 10.10.0.4

NAT
10.10.0.1:12345 -> 192.168.3.60:16801
10.10.0.2:12345 -> 192.168.3.60:16802
10.10.0.3:12345 -> 192.168.3.60:16803
10.10.0.4:12345 -> 192.168.3.128:80
10.10.0.5:12345 -> 192.168.3.88:3000

应该可以实现
hackroad
296 天前
这不就是一个回流么
Xheldon
296 天前
你搜一下 NAT Loopback/Hairpin 就明白了,内网访问 DDNS 的域名会直接访问你的内网 ip ,请求不会出内网绕圈再回来。

我家带宽是 500M/30M 的,路由拨号 TP-Link XDR 5480 是家用的,没地儿设置这个,但是我实测设置了内网 AppleTV infuse 的域名+端口访问内网 Mac 的 jellyfin 服务的话,网速最大能到 600Mbps ,也就是 80MB/s 的下载速度,感觉跟上传带宽没关系。
不过我的路由是千兆口,Mac 是 Studio 的 10G 万兆口,理论上应该能达到 1000/8 = 125MB/s 但是不知道为啥没达到,可能是网线有关,没管了,总之跟办理的带宽估计关系不大。
amanisheir
296 天前
只有 V6 ,路由器 ssh 进去直接改 hosts ,把域名改成 v4 局域网,就是路由器一动配置就掉,加了个 corn 定时,不在 hosts 文件就加记录,路由器重启只能用 siri 快捷指令启动一下定时脚本

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

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

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

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

© 2021 V2EX