2

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

我有几台计算机的家庭局域网,上面有一些网络服务器(SVN、Web 等)。对于我在路由器 (Linksys wrt54gl) 上进行转发以从 Internet 访问它的每项服务 ( <my_external_ip>:<external_port> -> <some_internal_ip>:<internal_port>)

但是在我的本地网络中,上述请求的这些资源是无法访问的(所以我需要重新配置<some_internal_ip>:<internal_port>才能访问)。

我在 /etc/hosts 中添加了一些行
<my_external_ip> localhost

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

请建议正确的重定向。

4

2 回答 2

1

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

于 2012-06-30T11:36:38.047 回答
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

于 2012-07-06T12:03:19.283 回答