阿里云服务器ECS实例上自建SNAT后无法访问公网的解决方法

作者阿里云代理 文章分类 分类:新闻快递 阅读次数 已被围观 1440

问题描述

同一VPC的两台ECS实例,即A实例和B实例,A实例有公网地址,B实例没有公网地址。在A实例上配置好SNAT规则,且在B实例上将路由指向A实例后,B实例还是无法访问公网。

解决方案

阿里云提醒您:

•如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

•如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

从B实例中ping A实例的公网地址,然后在两台实例中使用tcpdump命令抓包,发现A实例收到了公网地址的ICMP reply包,而B实例没有收到ICMP reply包。

在A实例中,执行以下命令,发现FORWARD链默认规则是DROP,导致ICMP reply包被丢弃。

iptables -nvL

说明:若执行iptables -nL命令,无法查看in和out参数。

3.执行以下命令,设置FORWARD链的默认规则为ACCEPT。

iptables -P FORWARD ACCEPT

4.执行以下命令,确认修改成功。

iptables -nvL

系统显示类型如下。

适用于

•云服务器ECS

•轻量应用服务器

阿里云代理商  阿里云钻石级代理商

本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: