有時候雲上部署環境,不能動态自設路由,沒有公網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