操作場景
為保證安全和節省公網IP資源,通常只為特定的彈性云主機配置公網IP,可直接訪問Internet,其他彈性云主機只配置私網IP,無法直接訪問Internet。因此,當只配置了私網IP的彈性云主機需要訪問Internet,執行軟件升級、給系統打補丁或者其它需求時,可選擇一臺綁定了公網IP的彈性云主機作為代理彈性云主機,為其他無公網IP的云主機提供訪問通道,正常訪問Internet。
說明
優先推薦您使用NAT(NAT Gateway)網關服務。NAT網關能夠為VPC內的彈性云主機提供SNAT和DNAT功能,通過靈活簡易的配置,即可輕松構建VPC的公網出入口。
前提條件
- 已擁有一臺綁定了公網IP的彈性云主機作為代理彈性云主機。
- 代理彈性云主機和其他需要訪問Internet的彈性云主機均處于同一網段,并且在同一安全組內。
Linux操作系統的代理主機
本節操作中,以代理彈性云主機的操作系統是CentOS 6.5為例。
-
登錄管理控制臺。
-
單擊管理控制臺左上角的,選擇區域和項目。
-
選擇“計算 > 彈性云主機”。
-
在彈性云主機列表中的右上角
,輸入代理云主機名稱進行搜索。 -
單擊代理彈性云主機的名稱,查看詳情。
-
在代理彈性云主機詳情頁面,選擇“網卡”頁簽,并展開
,將“源/目的檢查”選項設置為“OFF”。
默認情況下,“源/目的檢查”狀態為“啟用”,系統會檢查彈性云主機發送的報文中源IP地址是否正確,否則不允許彈性云主機發送該報文。這有助于防止偽裝報文攻擊,提升安全性。但在該場景中,這種保護機制會導致報文的發送者無法接收到返回的報文。因此,需設置“源/目的檢查”狀態為禁用。 -
登錄代理彈性云主機。
詳細操作方法請參見Linux彈性云主機登錄方式概述。 -
執行以下命令,檢測代理彈性云主機是否可以正常連接Internet。
??ping www.baidu.com回顯包含類似如下信息時,表示代理彈性云主機可正常連接Internet。
檢測是否可以正常連接Internet

-
執行以下命令,查看代理彈性云主機的IP轉發功能是否開啟。
cat /proc/sys/net/ipv4/ip_forward? 回顯為“0”表示關閉,請執行10。
? 回顯為“1”表示開啟,請執行16。 -
執行以下命令,打開IP轉發功能配置文件。
??vi /etc/sysctl.conf ? -
按“i”,進入編輯模式。
-
修改如下參數的值。
將參數“net.ipv4.ip_forward ”的值修改為“1”。
說明
如果“sysctl.conf”文件中不存在參數“net.ipv4.ip_forward ”,執行以下命令進行添加:
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
-
按“Esc”,輸入:wq,按“Enter”。
保存設置并退出vi編輯器。
-
執行以下命令,使配置文件修改生效。
sysctl -p /etc/sysctl.conf
-
執行以下命令,配置默認的iptables規則。
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
注意
執行iptables -P INPUT ACCEPT,表示設置默認的INPUT策略為接受,存在一定的安全風險。建議您通過設置合適的安全組規則限制入方向的訪問。
-
執行以下命令,配置SNAT,使代理彈性云主機所在的網段內其他彈性云主機可通過代理彈性云主機訪問Internet。
iptables -t nat -A POSTROUTING -o eth0 -s subnet/netmask-bits -j SNAT --to nat-instance-ip
假設代理彈性云主機所在的網段為192.168.125.0,子網掩碼為24位,私網IP地址為192.168.125.4,則執行如下命令。
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.125.0/24 -j SNAT --to 192.168.125.4
-
執行以下命令,保存iptables的配置并設置開機自啟動。
service iptables save
chkconfig iptables on
-
執行以下命令,查看SNAT配置是否成功。
iptables -t nat --list
回顯類似如下圖所示時,表示SNAT配置成功。
SNAT配置成功

-
添加自定義路由。
a. 登錄管理控制臺。
b. 單擊管理控制臺左上角的
,選擇區域和項目。
c. 選擇“網絡 > 虛擬私有云”。
d. 選擇需要添加路由表的虛擬私有云,在“路由表”頁面,單擊“添加路由信息”。
e. 根據界面提示,填寫路由信息。
目的地址:是目的網段,默認是0.0.0.0/0。
下一跳地址:是SNAT彈性云主機的私有IP地址。
您可以在彈性云主機頁面,查看該彈性云主機的私有IP地址。
-
如需刪除添加的iptables規則,需執行以下命令:
iptables -t nat -D POSTROUTING -o eth0 -s subnet/netmask-bits -j SNAT --to nat-instance-ip
假設代理彈性云主機所在的網段為192.168.125.0,子網掩碼為24位,私網IP地址為192.168.125.4,則執行如下命令。
iptables -t nat -D POSTROUTING -o eth0 -s 192.168.125.0/24 -j SNAT --to 192.168.125.4