2012-06-26 52 views
2

我有一个基于OpenWrt的8.09我的路由器转发到同一网络

在我的上我有一些网络服务器(SVN,网络等)几台电脑家庭局域网X-WRT。对于每一个服务的我做我的路由器转发(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>转发到我的路由器,但进一步重定向到相应的端口不是作品。

请告知正确的重定向。

回答

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 

https://forum.openwrt.org/viewtopic.php?id=4030

+0

伙计@库巴Wyrostek'和'lserni'你们的答案都很好,我完全困惑。我给了库巴威罗斯泰克赏赐,但是在一分钟内就已经放下了伊瑟尼的答案。我正在使用lserni的方法。 lserni,我标记答案接受,我不知道该怎么做更多。 – triclosan

+0

这绝对没问题,重要的是事情正在发挥作用。别担心,我也是新来的:-D – LSerni

+0

虽然我觉得很尴尬。 :-) –

1

如果我没记错OpenWrt允许你定义自定义的DNS条目。所以也许只需要给你的源代码提供一个合适的本地名称(即.svnserver.local)并将它们映射到特定的本地IP地址。这样你甚至不需要通过路由器从本地网络访问本地资源。

+0

我有一台机器上几个服务我的路由器后面。我需要使用相同的地址线从局域网和Internet访问。你能用一个例子来澄清你的建议吗? – triclosan

+0

是的。即如果您可以从my-home.dyndns.org解析外部IP,然后在OpenWrt中覆盖它:使静态DNS条目将svnserver.my-home.dyndns.org解析为本地IP。对其他服务也是如此(例如webserver.my-home.dyndns.org)。同时配置外部DNS,以便对* .my-home.dyndns.org(notice *)的请求解析为您的外部IP。这样,您可以在不同的IP地址上使用相同的名称,具体取决于您从哪个网络调用DNS。我使用这种方案成功地从家庭和办公室使用同一个存储库URL访问SVN存储库。 –

+1

端口转发如何,我应该使用相同的外部和内部端口?在这种情况下为 – triclosan