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

2 天前
 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 速度


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

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

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

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

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

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
1 天前
这不就是一个回流么
Xheldon
1 天前
你搜一下 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
1 天前
只有 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