使用Iptables设置2个网卡上网

使用Iptables设置2个网卡上网

我在 ubntu 上设置了 2 个 NICS。一个连接到互联网,具有 IP 192.168.1.101,另一个连接到 LAN,具有 IP 192.168.1.100,互联网网关是192.168.1.1 我的配置,使用 Iptables 如下:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

我已将测试 PC 连接到192.168.1.100端口,并指定了一个静态 IP 192.168.1.11,并将 GW 设置为192.168.1.100(也尝试了 .1 和 .101!!)每台 PC 都可以 ping 通对方,但我无法从测试 PC 访问互联网另外,我无法从测试192.168.1.1PC ping 通 GW。

是否缺少配置?

我还补充道:echo 1 >/proc/sys/net/ipv4/ip_forward

问候,福阿德

答案1

我的建议是:

nic 到internet/eth0

address: 192.168.1.101
netmask: 255.255.255.0
gateway: 192.168.1.1

nic 到lan

address: 192.168.2.1
netmask: 255.255.255.0

电脑通过局域网连接到

address: 192.168.2.100
netmask: 255.255.255.0
gateway: 192.168.2.1

是的,但对于完整的手册

启用 IP 转发。这可以通过使用

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

在那之后

添加一条规则,告诉转发流量

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

因为您的路由器不知道网络,所以192.168.2.0/24我们必须这样做masquarade

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这样,来自的流量eth0就可以通过到达网络的其余部分eth1

相关内容