使用 iptables 进行端口转发

使用 iptables 进行端口转发

我希望有人能帮助我。我最近买了 Raspberry Pi 3,现在正在尝试设置端口转发。

Raspberry Pi 通过 Wi-Fi(wlan0)接口连接到我的家庭网络。Raspberry Pi 的 Eth0 接口连接到另一台设备,该设备在端口 80 上运行 HTTP 服务器。我的目标是将端口 80 从 wlan0 转发到目标设备。

<wlan0/192.168.2.80> <==> <eth0/192.168.10.10> <==> <target/192.168.10.50>

到目前为止,这一直很困难,我无法使端口转发正常工作。

这是路由表:

# ip route
default via 192.168.2.1 dev wlan0 proto dhcp src 192.168.2.80 metric 303 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.2.0/24 dev wlan0 proto dhcp scope link src 192.168.2.80 metric 303 
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.10 

以下是我尝试过的:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.10.50
# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE --source 192.168.10.0/24

在这样做的同时,我还设置了默认FORWARD策略ACCEPT

iptables -P FORWARD ACCEPT

但是,我无法让 iptables 监听以下端口 80 wlan0

# curl 192.168.2.80
Failed to connect to 192.168.2.80 port 80: Connection refused

我错过了什么?

答案1

保持简单:

iptables -A FORWARD -d 192.168.10.50 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.50 -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.2.80 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.50

相关内容