找回密码
 加入我们
搜索
      
查看: 11800|回复: 34

[网络] 请教外网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或者提供相关的设置项,否则,仅靠普通“端口转发”功能,无法实现你的需求。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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

GMT+8, 2025-10-30 04:24 , Processed in 0.007716 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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