我的路由器上有基于OpenWrt 8.09的X-Wrt
我有几台计算机的家庭局域网,我有一些网络服务器(SVN,网络等)。对于我在路由器(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>
的所有请求都转发到我的路由器,但进一步重定向到适当的端口不起作用。
请建议正确的重定向。
答案 0 :(得分:1)
如果我没记错的话,OpenWrt允许您定义自定义DNS条目。因此,可以简单地为您的源(即svnserver.local)提供适当的本地名称,并将它们映射到特定的本地IP。这样,您甚至无需通过路由器从本地网络访问本地资源。
答案 1 :(得分:1)
您需要为来自内部网络并定向到公共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