0
我有兩個系統A和B,A是一個TCP客戶端和發送消息到TCP服務器B.如何使用iptables
------------------ --------------------------
System A System B
192.168.0.5 wlan0 192.168.0.3 wlan0
127.0.0.1 lo 127.0.0.1 lo
TCP Client <------------> TCP Server on 127.0.0.1
------------------ ----------------------------
的TCP客戶端發送消息到192.168.0.3的IP制定轉發規則。
這應該作爲TCP服務器在系統的8000端口B.
因此在127.0.0.1被重定向至B的本地接口,我寫了下面的IP表規則,但我的服務器在B點沒有收到任何消息。哦,順便說一句,這兩個系統是Ubuntu的Linux系統。
這是我做了系統B:
#Enable IP Forwarding for NAT
echo "1" < /proc/sys/net/ipv4/ip_forward
#Flush all iptable chains and start afresh
sudo iptables -F
#Forward incoming packets on 192.168.0.3 at wlan0 interface to 127.0.0.1
sudo iptables -t nat -A PREROUTING -p tcp -i wlan0 -d 192.168.0.3 --dport 8000 -j DNAT --to 127.0.0.1:8000
#Explicitly allow incoming connections on port 8000
sudo iptables -A INPUT -i wlan0 -p tcp --dport 8000 -m state --state NEW,ESTABLISHED -j ACCEPT
#Explicitly allow outgoing messages from port 8000
sudo iptables -A OUTPUT -o wlan0 -p tcp --sport 8000 -m state --state ESTABLISHED -j ACCEPT
然後我開始B上的服務器和TCP客戶端上爲wlan0發送關於A的消息,我可以看到Wireshark的數據包從192.168.0.5但他們從來沒有被轉發:(
請幫