天天看點

設定iptables NAT出外網

有時候雲上部署環境,不能動态自設路由,沒有公網ip位址的伺服器,隻能通過NAT的方式出外網,下面就記錄一下設定過程。

目前狀态

伺服器A隻有一個内網IP,不能上外網,内網IP與伺服器B内網相通;伺服器B有一個内網IP和公網IP。想實作伺服器A也能上外網。

伺服器A:内網網卡:eth0  内網IP:192.168.0.10
 
伺服器B:内網網卡:eth0  内網IP:192.168.0.20
        外網網卡:eth1  外網IP:203.195.32.138      

 實作方法

1、在可以上外網的伺服器B上,開啟路由轉發功能

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

注:上面指令在伺服器重新開機之後會失效,可以編輯/etc/rc.d/rc.local把上面指令添加到最底部,實作開啟自動執行。

或者進行如下操作:

編輯/etc/sysctl.conf
找到net.ipv4.ip_forward = 0 修改為 net.ipv4.ip_forward = 1 最後儲存。
 
執行sysctl -p指令使配置生效:
# sysctl -p      

2、在可以上外網的伺服器B上執行添加SNAT規則

# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.10 -j SNAT --to 203.195.32.138      

如果想讓整個網段都通過伺服器B上外網,修改上面規則指令中-s 192.168.0.10為-s 192.168.0.0/24,然後把想上外網的伺服器預設網關改成192.168.0.20就可以了。

3、儲存剛添加的iptables規則

# service iptables save      

4、在需要上外網的伺服器A上,修改内網網卡eth0的預設網關為192.168.0.20

# route add default gw 192.168.0.20      

修改後,檢視路由表,确認已修改成功,測試已經可以上外網了

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.0.20    0.0.0.0         UG    0      0        0 eth0      

測試你ping一下baidu.com 就好。

不要讓懶惰占據你的大腦,不讓要妥協拖跨你的人生。青春就是一張票,能不能趕上時代的快車,你的步伐掌握在你的腳下,good luck