我希望有人能帮助我。我最近买了 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