找回密码
 加入我们
搜索
      
楼主: jameslhc

[网络] 请教外网DDNS回环的问题处理办法

[复制链接]
发表于 2024-1-24 09:25 | 显示全部楼层
你遇到的情况是正常的。以你的情况为例,一般情况下路由器按照如下方法实现端口映射:

1. 向"PORT_FORWARD"链(此处名称可变)插入端口转发规则,对于发送至路由器的目标端口为5001/tcp的数据包,改写其目标地址,指向内网主机192.168.1.10的5001/tcp端口
  1. iptables -t nat -I "PORT_FORWARD" 1 -p "tcp" --dport "5001" -j DNAT --to-destination "192.168.1.10:5001"
复制代码


2. 对于目标地址为"<路由器公网IP地址>"的数据包,在数据包刚进入路由器网口时,按照上述规则进行NAT转换,之后,数据包进入FORWORD链,不进入INPUT链
  1. iptables -t nat -I PREROUTING 1 -d "<路由器公网IP地址>" -j "PORT_FORWARD"
复制代码


由此可得,只有直接发送至<路由器公网IP地址>:<路由器侧目标端口>的数据包会被转发至<内网目标主机IP地址>:<内网主机侧目标端口>。你通过DDNS服务,把域名指向<路由器公网IP地址>,所以可以访问。数据包转发路径:
  1. 浏览器访问“nas.abc.com:5001”->DNS解析为“路由器公网IP地址:5001”->发送至路由器->路由器转发至“<内网目标主机IP地址>:<内网主机侧目标端口>”
复制代码


你在内网使用hosts写死nas.abc.com到192.168.1.0(此处存疑,根据规范“192.168.1.0”是网络地址,不能用作目的地址/源地址,应使用主机地址192.168.1.1-192.168.1.254,故以下假设你路由器的内网IP地址为192.168.1.1)

你在内网使用hosts写死nas.abc.com至192.168.1.1,或者内网架设DNS服务器,将域名nas.abc.com解析至192.168.1.1,数据包转发路径:
  1. 浏览器访问“nas.abc.com:5001”->DNS解析为“192.168.1.1:5001”->发送至路由器->针对目标地址为192.168.1.1:5001的数据包,路由器没有转发规则,故数据包进入INPUT链,发送至本机,不会被转发至内网主机192.168.1.10的5001/tcp端口,访问失败
复制代码


综上,你需要检查路由器是否能自定义iptables或者提供相关的设置项,否则,仅靠普通“端口转发”功能,无法实现你的需求。
发表于 2024-1-24 14:00 | 显示全部楼层
tp家用版的后台,叫做虚拟服务器……在里面配置好了默认就回环了
 楼主| 发表于 2024-1-25 15:51 | 显示全部楼层
trusty 发表于 2024-1-24 09:25
你遇到的情况是正常的。以你的情况为例,一般情况下路由器按照如下方法实现端口映射:

1. 向"PORT_FORWARD ...

这个TP没有自定义iptables的功能,没办法
 楼主| 发表于 2024-1-25 15:54 | 显示全部楼层
目前看起来思路清晰了些,TP自己带的DDNS也不支持dnspod的DDNS,这点写的很死没办法

1、换路由,支持其他第三方的DDNS应该可以实现,或者支持自定义DNS指向的
2、内网做个DNS劫持,楼上有兄弟提的adguardhome也是个办法,在局域网内网的域名直接解析成内网地址

3、等TP升级。。。这个应该是不现实了
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-26 23:22 , Processed in 0.133501 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表