我的路由器上有基于 OpenWrt 8.09 的 X-Wrt
我有几台计算机的家庭局域网,上面有一些网络服务器(SVN、Web 等)。对于每项服务,我在路由器 (Linksys wrt54gl) 上进行转发,以从互联网访问它 ( <my_external_ip>:<external_port> -> <some_internal_ip>:<internal_port>
)
但是在我的本地网络中,上述请求无法访问该资源(因此我需要进行一些重新配置 <some_internal_ip>:<internal_port>
才能访问)。
我在/etc/hosts 中添加了一些行
<my_external_ip> localhost
现在所有从本地网络到 <my_external_ip>
的请求转发到我的路由器,但进一步重定向到适当的端口不起作用。
请建议正确的重定向。
最佳答案
您需要为从内部网络发出并定向到公共(public) IP 的调用安装 IP 重定向。通常这些数据包会被丢弃。您想要重新路由它们,DNATting 到目标服务器,但也进行伪装,以便服务器看到您(它的客户端)位于同一网络中时,不会直接用其内部 IP 响应您(您,客户端,如果没有将数据包发送到那里,就会丢弃)。
我在 OpenWRT 群组中发现了这个:
iptables -t nat -A prerouting_rule -d YOURPUBLICIP -p tcp --dport PORT -j DNAT --to YOURSERVER
iptables -A forwarding_rule -p tcp --dport PORT -d YOURSERVER -j ACCEPT
iptables -t nat -A postrouting_rule -s YOURNETWORK -p tcp --dport PORT -d YOURSERVER -j MASQUERADE
关于networking - 本地网络内转发到同一网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216527/