使用VPC网络的ECS实例无法通过公网EIP访问的解决方法
问题描述
在Windows 2012系统的ECS实例中使用IIS服务的时候,由经典网络迁移到专有网络VPC之后出现以下问题。
•网站不可访问。
•直接访问ECS实例的弹性公网IP(EIP)地址时,显示“ERR_CONNECTION_REFUSED” 错误。
•打开了安全组相关访问策略,还是无法连通网站。
•使用telnet命令测试3389端口可通,测试80端口不通。
问题原因
ECS实例没有绑定内网IP地址。
解决方案
排查过程
1.登录服务器,执行如下命令,查看80端口是否被监听。
netstat -ant
系统显示类似如下,80端口并未监听。
2.打开IIS,启动应用时报“无法启动此网站,其他网站可能正在使用同一端口”错误,说明80端口有冲突。
3.查看站点绑定的地址,站点全部绑定了EIP,原来经典网络的公网IP建议修改为全部未分配或者内网IP。
4.按照上述步骤操作后,还是无法显示监听80端口,但是直接通过localhost或者127.0.0.1访问站点,可以正常访问。
5.执行如下命令,查看监听的信息。
netsh http show iplisten
系统显示类似如下,没有绑定内网IP。
解决方法
1.执行如下命令,添加内网IP。
netsh http add iplisten ipaddress=[$IP]
注:[$IP]为内网IP地址。
系统显示类似如下。
2.执行如下命令,查看监听的信息。
netsh http show iplisten
系统显示类似如下,说明添加成功。
3.设置完成后,通过公网可以正常访问网站。
适用于
云服务器ECS
我有话说: