使用 iptables NAT 在两个接口之间路由时出现问题

使用 iptables NAT 在两个接口之间路由时出现问题

我有一台带有三个 NIC 的 Linux 服务器:

  • eth0:1.2.3.4(公网IP)
  • eth1:5.6.7.8(公网IP)
  • eth2:10.0.0.1(内部 IP)

我正在尝试让我的 Linux 服务器充当 eth1 和 eth2 之间的路由器:

Switch -> (eth2) -> Linux Server -> (eth1) -> Internet

我已使此功能在从 eth2 路由到 eth0 时工作,但不能在从 eth2 路由到 eth1 时工作。当我尝试在 eth2 和 eth1 之间路由时,连接到交换机的计算机可以 ping 服务器,10.0.0.1但无法访问互联网上的任何内容。这些是我尝试过的命令(当我将 eth1 换成 eth0 时有效):

iptables -A FORWARD -i eth2 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

我确信 eth1 可以访问互联网,因为我可以通过 5.6.7.8 ssh 进入我的服务器,但我似乎无法使用它进行 ping 操作ping -I eth1 8.8.8.8。我不确定这是否与我的 iptables 问题有关。

任何帮助都将不胜感激,谢谢。

编辑ip route输出:

default via 45.xxx.xxx.1 dev eth0 proto dhcp src 45.xxx.xxx.14 metric 100 
10.0.0.0/24 dev eth2 proto kernel scope link src 10.0.0.1
45.xxx.xxx.0/23 dev eth0 proto kernel scope link src 45.xxx.xxx.14

相关内容