Jun
23
2020
阿里云服务器ECS实例上自建SNAT后无法访问公网的解决方法
问题描述
同一VPC的两台ECS实例,即A实例和B实例,A实例有公网地址,B实例没有公网地址。在A实例上配置好SNAT规则,将VPC路由表的路由指向A实例后,B实例还是无法访问公网。
解决方案
阿里云提醒您:
•如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
•如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
•如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
1.从B实例中ping A实例的公网地址,然后在两台实例中使用tcpdump命令抓包,发现A实例收到了公网地址的ICMP reply包,而B实例没有收到ICMP reply包。
2.在A实例中,执行以下命令,发现FORWARD链默认规则是DROP,导致ICMP reply包被丢弃。
iptables -nvL
说明:若执行iptables -nL命令,无法查看in和out参数。
3.执行以下命令,设置FORWARD链的默认规则为ACCEPT。
iptables -P FORWARD ACCEPT
4.执行以下命令,确认修改成功。
iptables -nvL
系统显示类型如下。
适用于
•云服务器ECS
•轻量应用服务器
本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。
我有话说: