Networking 在本地网络内转发到同一网络

Networking 在本地网络内转发到同一网络,networking,routing,iptables,openwrt,Networking,Routing,Iptables,Openwrt,我的路由器上有基于OpenWrt 8.09的X-Wrt 我有几台计算机组成的家庭局域网,上面有一些网络服务器(SVN、web等)。对于我在路由器(Linksys wrt54gl)上转发的每项服务,我都会从互联网上访问它(:->:) 但在我的本地网络中,上述请求所提供的资源是无法访问的(因此我需要进行一些重新配置:以访问) 我在我的/etc/hosts中添加了一些行 localhost 所以现在所有从本地网络到的请求都会转发到我的路由器,但进一步重定向到适当的端口不起作用 请建议正确重定向。如果我

我的路由器上有基于OpenWrt 8.09的X-Wrt

我有几台计算机组成的家庭局域网,上面有一些网络服务器(SVN、web等)。对于我在路由器(Linksys wrt54gl)上转发的每项服务,我都会从互联网上访问它(
:->:

但在我的本地网络中,上述请求所提供的资源是无法访问的(因此我需要进行一些重新配置
以访问)

我在我的/etc/hosts中添加了一些行
localhost

所以现在所有从本地网络到
的请求都会转发到我的路由器,但进一步重定向到适当的端口不起作用


请建议正确重定向。

如果我没记错,OpenWrt允许您定义自定义DNS条目。因此,您可以简单地为您的源提供一个适当的本地名称(即svnserver.local),并将它们映射到特定的本地IP。这样,您甚至不需要通过路由器从本地网络访问本地资源。

您需要为从内部网络发出的呼叫安装IP重定向,并将其定向到公共IP。通常这些数据包会被丢弃。您希望重新路由它们,将数据格式化到目标服务器,但也要伪装,以便服务器在看到您(其客户机)处于同一网络时,不会直接使用其内部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

我的路由器后面的一台机器上几乎没有服务。我需要相同的地址线从LAN和Internet访问。你能举例说明你的建议吗?是的。也就是说,如果可以从my-home.dyndns.org解析外部IP,则在OpenWrt中覆盖它:创建静态DNS条目,将svnserver.my-home.dyndns.org解析为本地IP。对其他服务(例如webserver.my home.dyndns.org)也要这样做。同时配置外部DNS,以便对*.my-home.dyndns.org(注意*)的请求解析为您的外部ip。通过这种方式,您可以使用相同的名称和不同的IP地址,具体取决于您从哪个网络调用DNS。我使用此方案成功地使用相同的存储库URL从家庭和办公室访问SVN存储库。端口转发如何,我是否应使用相同的外部和内部端口?在本方案中-是。否则,URL会有所不同。请注意,内部流量不会通过路由器。好的,我明白了。一个问题是我没有使用外部主机名,而是通过IP访问。事实上,在路由方面没有办法解决这个问题?伙计们,库巴·维罗斯泰克和
lserni
你们的两个答案都很好,我完全搞糊涂了。我给了库巴·维罗斯泰克赏金,但在一分钟内,莱瑟尼的回答被放置。我用的是莱瑟尼的方法。lserni,我把答案标记为已接受,我不知道还有什么可以做。这完全没关系,重要的是事情正在进行。别担心,我也是新来的:-我觉得很尴尬。:-)