gpt4 book ai didi

linux - Iptables:将端口从一台主机转发到同一桥接网络内的另一台主机

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:08 24 4
gpt4 key购买 nike

我有一个这样的网络:

Internet <===> Modem/Router <--------->  Switch
1.2.3.4 192.168.1.1/24 | | |
| | |
+-----+ | +------+
| | |
PC 2 | PC 3
192.168.1.3/24 | 192.168.1.4/24
|
PC 1
192.168.1.2/24
/|\
WLAN
/ | \
PC W1 PC W2 PC W3
192.168.1.X/24 (X>10)

调制解调器/路由器也充当 DHCP 服务器。任何在公共(public) IP 1.2.3.4 上发送的请求都会被重定向到内部网络上的 192.168.1.2。调制解调器/路由器属于 ISP,我无法访问/配置它。 PC 1 是一台 Linux 机器:eth0 和 wlan0 已桥接(从属于 br0,地址为 192.168.1.2); hostapd 运行在与 PC WX 共享互联网连接的 PC 1 上。我想将 PC 1 上某些端口的连接重定向到同一网络上的 PC,例如:

1.2.3.4:2222 > 192.168.1.2:2222 -> 192.168.1.3:22
1.2.3.4:3333 > 192.168.1.2:3333 -> 192.168.1.4:25

我尝试使用 iptables 并启用 ip_forward

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.1.2 -p tcp --dport 2222 -j DNAT --to 192.168.1.3:22
iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 22 -j SNAT --to-source 192.168.1.2

其他端口依此类推,但没有用。我发现通过 WLAN 连接到任何其他 PC 的重定向效果都很好。看来,使用 iptables PREROUTING 规则与网桥结合使用,一旦数据包从一侧(eth0)进入网桥,它只能流向另一侧(wlan0),但不能从相同的输入接口(interface)出去。当桥被禁用时,上述安排工作得很好,但我不想将 PC 1 用作路由器,而是仅用作 AP。

有人可以帮助我吗?

最佳答案

您建议的规则应该稍作调整即可生效。尽管 iptables 手册页中没有记录,但您必须将协议(protocol)指定为要匹配的第一个参数,如下所示:

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.2 --dport 2222 -j DNAT --to 192.168.1.3:22
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.3 --dport 22 -j SNAT --to-source 192.168.1.2

请注意,第二条规则不是必需的,因为第一条规则会触发 iptables 自动处理响应。

如果仍然不起作用,请尝试在通过 echo 0 >/proc/sys/net/bridge/bridge-nf-call-iptables 遍历网桥时禁用 iptables 调用并重新启动计算机。

关于linux - Iptables:将端口从一台主机转发到同一桥接网络内的另一台主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com