在Linux上的两个networking之间的路由?

我陷入了一个问题,我找不到解决scheme。 我有两个网卡的Linux电脑。 第一个nic(eth1)连接到公共ip(可能是switch或者其他东西,并不是真正主要的),所以eth1连接到wan,而另一个eth0连接到交换机并使其成为lan。 组态:

eth1 ip地址88.200.1xx.xxx // xxx是安全原因eth0 ip地址192.168.1.1

wan ——> [eth1(linux PC)eth0] <—-> [switch] <—-> [eth1(PC1)]

现在我想连接这两个networking,所以PC1可以访问Linux PC和WAN。 我想我知道该怎么做,但是我不能把它弄清楚。 这是我试过的:

  1. 我坚信ip转发(当然)
  2. 我把eth1默认的gw设置在wan上的正确ip
  3. 我试图设置eth0默认gw到相同的IP(但我不能)

我该怎么做,我正在尝试使用Linux路由命令,但是我被卡住了。 请帮忙。

如果在Linux上有两个网卡,两个网卡都configuration了IP,则不需要添加从一个networking到另一个networking的路由。 这将自动完成。

在WAN NIC上添加默认网关地址。 不要在LAN NIC的configuration中这样做。

然后在内核中启用转发:

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

要使其在启动时自动设置此值,请在/etc/sysctl.conf取消注释此行

 #net.ipv4.ip_forward=1 

然后在iptables中设置一些规则来执行NAT和转发:

 # Always accept loopback traffic iptables -A INPUT -i lo -j ACCEPT # We allow traffic from the LAN side iptables -A INPUT -i eth0 -j ACCEPT ###################################################################### # # ROUTING # ###################################################################### # eth0 is LAN # eth1 is WAN # Allow established connections iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Masquerade. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # fowarding iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow outgoing connections from the LAN side. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT 

应该这样做。

您只能有一个默认网关,所以只能设置一个。

要通过其他接口路由stream量,您需要设置持久静态路由并将其绑定到该接口。