调制解调器连接到路由器时如何启用 NAT 环回

调制解调器连接到路由器时如何启用 NAT 环回

我想从我的网络内部和外部使用我的公共地址查看我托管的页面,但到目前为止我只能从外部查看。

事情是这样的,我最近更换了 ISP,他们给我买了一台 ZTE-F660。它有路由功能,但我使用 Cisco E3200(运行 Tomato)作为路由器来管理我的网络。ZTE-F660 的功能有点有限,所以我把所有东西都转发到 E3200,然后从那里进行管理。

现在,我之前的 ISP 调制解调器似乎启用了 NAT 环回,但到目前为止,ZTE-F660 似乎不支持它。而 E3200 却支持。

问题是我无法让它工作。我认为这是因为 ZTE-F660 调制解调器正在做一些事情来阻止 E3200 路由器将公共 IP 转换为本地 IP。

如果我跑iptables -n -L -v -t nat我得到:

 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)   pkts bytes
 target     prot opt in     out     source               destination   

     0     0 SNAT       all  --  *      vlan2   0.0.0.0/0            0.0.0.0/0           to:192.168.0.10  
     0     0 SNAT       all  --  *      br0     192.168.2.0/24       192.168.2.0/24      to:192.168.2.1

192.168。0.10是 ZTE-F660 调制解调器分配的 E3200 路由器 IP,以及 192.168.2.1是分配给家庭网络的 E3200 路由器 IP。

如果我输入http://192.168.0.10我得到了从网络外部输入我的公共 IP 所得到的响应。

我确信我遗漏了某些东西,或者没有理解某些东西。

任何帮助或见解都将不胜感激。

答案1

您可以向您的 Cisco 路由器添加环回 NAT,这样当转到公共地址时,它永远不会到达 ZTE:

iptables -t nat -A PREROUTING  -i br0 -s 192.168.2.0/24 -d <static ip> -p tcp --dport 80 -j DNAT --to-destination 192.168.2.x

这是预路由,所以是第一步。如果说,如果源来自内部网络并转到端口 80 上的服务器静态 IP,则将目标 IP 设为服务器的内部 IP。

由于这是预路由,接下来会发生路由 - 它将看到目标 IP 是内部网络,并将数据包从 br0 路由回。

另一种方法是在内部安装 DNS 服务器。然后,您可以为服务器设置 DNS 名称,当服务器在外部时,该名称解析为公共地址,当服务器在内部时,该名称解析为内部地址。这样,您就不需要任何 NAT。

相关内容