![从内部网络到外部网络的转发不起作用](https://linux22.com/image/664791/%E4%BB%8E%E5%86%85%E9%83%A8%E7%BD%91%E7%BB%9C%E5%88%B0%E5%A4%96%E9%83%A8%E7%BD%91%E7%BB%9C%E7%9A%84%E8%BD%AC%E5%8F%91%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有一台 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