【问题标题】:How to formulate IP forwarding rule using iptables如何使用 iptables 制定 IP 转发规则
【发布时间】:2012-04-26 16:52:22
【问题描述】:

我有两个系统 A 和 B。A 是 TCP Client,向 B 上的 TCP Server 发送消息。

------------------                --------------------------

  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 发送消息。

这应该被重定向到 B 的本地接口,因为 TCP 服务器在系统 B 的端口 8000 的 127.0.0.1 上运行。

因此,我编写了以下 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 上启动服务器并从 A 上的 TCP 客户端发送消息。我可以在 wlan0 上看到来自 192.168.0.5 的 wireshark 上的数据包,但它们永远不会被转发:(

请帮忙。

【问题讨论】:

    标签: ubuntu network-programming tcpclient iptables tcpserver


    【解决方案1】:

    应该是“>”而不是“

    echo "1" > /proc/sys/net/ipv4/ip_forward
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      相关资源
      最近更新 更多