阿里雲CentOS 7無外網IP的ECS訪問外網(配置網關服務器)

說明:html

一、必需要有一臺機器具備外網IP的ECS。tcp

二、若是不想配置具備外網IP的ECS時,能夠購買NAT網關,但須要錢,貴。下面會說明NAT網關的配置。阿里雲

三、最後吐槽一下阿里雲VPC網關致使不能按照配置普通網關同樣配置(參考:http://www.javashuo.com/article/p-klavowym-hp.html),必須結合VPC配置0.0.0.0/0來進行下一跳,否則你在ECS怎麼設置都沒法成功。其實這個問題是因爲VPC自己最上層作了NAT,並經過route查看會發現253這個地址有VPC佔用,不管怎麼配置0.0.0.0的下一跳都會先轉到253這個地址。spa

下面是具體的配置:code

環境:htm

ECS1(沒外網IP):172.18.6.247blog

ECS2(有外網IP,實際上是VPC作了NAT):172.18.6.248ip

一、具備外網IP的ECS2配置網關:get

# 開啓轉發
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# 生效
sysctl -p
# 配置iptables作SNAT
iptables -t nat -I POSTROUTING -s 172.18.6.0/24 -j SNAT --to-source 172.18.6.248
# 上述能夠理解成:iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公網IP的ECS內網IP

二、在VPC增長0.0.0.0/0的下一跳爲ECS2實例table

那麼此時在登陸ECS1時,不用設置網關或者設置了網關均可以訪問外網。

三、若是要作DNAT時,以下操做便可:

iptables -t nat -I PREROUTING -p tcp --dport 50022 -j DNAT --to 172.18.6.247:22 
# 能夠這樣理解: iptables -t nat -I PREROUTING -p tcp --dport 外網IP的ECS端口 -j DNAT --to 只有內網IP的ECS的IP:端口 

四、若是想要換成夠買NAT網關來實現時,上面的配置基本不用,直接在VPC上這樣配置便可實現上面SNAT和DNAT的所有功能。

 

參考:

https://yq.aliyun.com/articles/607330

相關文章
相關標籤/搜索