Linux

從內部網路轉發到外部網路不起作用

  • August 17, 2015

我有一個帶有兩個 NIC 的 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 

你能告訴我我的錯誤在哪裡嗎?

您是否檢查過您的路由,例如預設網關?檢查路線-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

引用自:https://serverfault.com/questions/714550