2013-02-14 42 views
5

我有一個實驗設置,NAT/iptables配置(CentOS的)機器:Linux的這種設置4的Linux

enter image description here

全部4個機內部使用不同的網絡連接,並可以ping海誓山盟直接連接的接口。但是隻有PC4才能訪問互聯網。

我想設置iptable規則,可以讓PC1能夠通過PC4訪問互聯網,但我不知道如何做到這一點。

我試圖在上PC2,PC3和PC4出接口添加NAT:

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

然而,這不起作用,你可以給我一些想法如何在這樣的設置,我可以讓PC1訪問10.0 .0.1網絡

回答

14

啓用IP轉發。

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

永久設置編輯/etc/sysctl.conf並設置01

net.ipv4.ip_forward = 1 

要啓用sysctl.conf的所做的更改,您將需要運行命令NAT

sysctl -p /etc/sysctl.conf 

iptables規則

# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
# /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 
# /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 
+0

謝謝,但每次我得到目標主機禁止錯誤,可能是什麼原因? – 2013-02-15 11:02:31

+0

我檢查過了,例如,我從PC1(1.1.1.1)ping到PC3(2.1.1.2),但沒有從PC2外部接口進一步傳輸的數據包,這似乎是一個問題,或者它只與ping有關? – 2013-02-15 11:14:13

+3

好吧,我知道了,令人驚訝的是我只需要在最後一臺電腦的NAT,而其餘的我只需要啓用IP轉發,並且必須刪除默認拒絕規則轉發chaing,使用iptables -D FORWARD 1 並且它的工作 – 2013-02-15 12:41:51