从内部网络到外部网络的转发不起作用

从内部网络到外部网络的转发不起作用

我有一台 Ubuntu 14.04 LTS 服务器,有两个网卡。其中一个连接到内部网络(eth0,192.168.4.0/24),另一个连接到具有互联网接入功能的路由器(eth1,网络 192.168.2.0/24)。

我想要实现的是让 192.168.4.0/24 网络的客户端可以访问互联网。因此我运行了以下命令:

$ echo 1 > /proc/sys/net/ipv4/ip_forward
$ iptables -A FORWARD -i eth0 -j ACCEPT
$ iptables -A FORWARD -o eth0 -j ACCEPT

据我了解,客户端现在应该能够访问路由器,但它不起作用:

$ ping 192.168.2.1
Request timeout for icmp_seq 0

并且最后一步启用 NAT 不起作用

$ iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 

你能告诉我我的错误在哪里吗?

答案1

你检查过你的路由,例如默认网关吗?检查路由 -n。

否则,您可以尝试设置一条规则来从已建立的连接路由回数据包。

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

相关内容