networking - 本地网络内转发到同一网络

标签 networking routes iptables openwrt

我的路由器上有基于 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

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

关于networking - 本地网络内转发到同一网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216527/

相关文章:

http - 浏览器如何检测哪个 HTTP 响应是他们的?

javascript - 在 AngularJS 中找不到 404

node.js - 抛出新的 TypeError ('Router.use()requires a middleware function but got a ' + gettype(fn))v

linux - 主动\被动模式下 FTP 服务器的适当 iptables 规则

networking - TCP 流与 UDP 消息

sockets - 监听所有 IP 数据包,包括 ICMP、TCP 和 UDP?

c - skb校验和计算功能可能导致系统挂起

python - 如何通过 Python 连接到 VPN/代理服务器?

linux - Bash 脚本阻止所有 Apple 设备

linux - iptables 从过滤表移回 nat 表