检查 TCP 80 端口是否正常工作
2017-09-13 22:12:50
- Windows Server 2012
- Windows Server 2008
- CentOS 7.3
- Ubuntu 16.04
如果您的实例无法对外提供 HTTP 服务,您可以按以下步骤检查 Web 服务相关的接口(默认为 TCP 80)是否正常工作:
- 在 ECS 管理控制台,确认安全组已经放行该端口。
- 远程连接 ECS 实例,确认服务已经开启。
- 确认端口正常被监听。如没有,请修改监听地址。
- 确认实例防火墙已经放行服务。
- 如仍无法解决,请提交工单咨询。
本文分别介绍在不同操作系统中如何检查 TCP 80 端口是否正常工作:
Windows Server 2012
这部分以在 Windows 2012 上安装 IIS 服务为例,说明在 Windows 实例中如何检查 TCP 80 端口是否正常工作。
-
登录 ECS 管理控制台,确认实例所在安全组里已经添加如下安全组规则:
网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级 VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1 经典网络 公网 -
查看 IIS 服务是否已经开启:
- 在 服务器管理器 窗口,选择 工具 > Internet Information Services (IIS) 管理器。如果看不到这个选项,说明没有成功安装 IIS 服务,需要重新安装 IIS 服务,参考文档:ECS Windows Server2012 使用 PowerShell 安装 IIS 。
- 在 Internet Information Services (IIS) 管理器 窗口,确认以下信息:
- 在 连接 导航栏里,右击实例 ID,如果 启动 处于灰色状态,表示 IIS 服务已经开启。
- 单击 网站,在右边列表页查看您安装的网站的状态。如果网站 状态 为 已停止(http),则单击网站,在右侧 操作 栏的 管理站点 部分,单击 启动,启动网站。
- 在 服务器管理器 窗口,选择 工具 > Internet Information Services (IIS) 管理器。如果看不到这个选项,说明没有成功安装 IIS 服务,需要重新安装 IIS 服务,参考文档:ECS Windows Server2012 使用 PowerShell 安装 IIS 。
-
查看端口在实例中是否正常被监听:
- 启动 命令提示符。
- 运行命令:
netstat -ano | findstr :80
。如果返回以下命令,表示 80 端口正常全网监听:TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法。
-
查看实例里防火墙是否已经放行 Web 服务:
- 选择 控制面板 > 系统与安全 > Windows 防火墙。
- 根据防火墙状态,执行不同操作:
- 如果防火墙处于关闭状态,不需要再做其他处理。如果仍无法访问网站,请提交工单 咨询。
- 如果防火墙处于开启状态,执行以下操作:
- 单击 高级设置。
- 在弹出窗口的左侧导航栏中,单击 入站规则。
- 选择 万维网服务 (HTTP 流入量),如果处于禁用状态,在 操作 栏里,单击 启用规则。
完成上述检查,如果您仍不能通过 http://公网 IP 地址
访问您的实例,请您 提交工单 咨询。
Windows Server 2008
这部分以在 Windows 2008 上安装 IIS 服务为例,说明在 Windows 实例中如何检查 TCP 80 端口是否正常工作。
-
登录 ECS 管理控制台,确认实例所在安全组里已经添加如下安全组规则:
网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级 VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1 经典网络 公网 -
查看 IIS 服务是否已经开启:
- 在 服务器管理器 窗口,选择 角色 > Web 服务器(IIS)。如果看不到这个选项,说明没有成功安装 IIS 服务。
- 在 Web 服务器(IIS) 窗口,确认 系统服务 部分显示为 全部正在运行。如果不是这个状态,请启动所有服务。
-
查看端口在实例中是否正常被监听:
- 启动 命令提示符。
- 运行命令:
netstat -ano | findstr :80
。如果返回以下命令,表示 80 端口正常全网监听:TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法。
-
查看实例里防火墙是否已经放行 Web 服务:
- 单击 控制面板 > 系统与安全 > 检查防火墙状态。
- 根据防火墙状态,执行不同操作:
- 如果防火墙处于关闭状态,不需要再做其他处理。如果仍无法访问网站,请提交工单 咨询。
- 如果防火墙处于开启状态,执行以下操作:
- 单击 高级设置。
- 在弹出窗口的左侧导航栏中,单击 入站规则。
- 选择 万维网服务 (HTTP 流入量),如果处于禁用状态,在 操作 栏里,单击 启用规则。
完成上述检查,如果您仍不能通过 http://公网 IP 地址
访问您的实例,请您 提交工单 咨询。
CentOS 7.3
这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作。
-
登录 ECS 管理控制台,确认实例所在安全组里已经添加如下安全组规则:
网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级 VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1 经典网络 公网 查看 nginx 服务是否已经开启:运行命令
systemctl status nginx
。如果返回以下结果,说明 nginx 已经启动。如果未开启,运行命令systemctl start nginx
。-
查看端口在实例中是否正常被监听:运行命令
netstat -an | grep 80
。如果返回以下结果,表明 TCP 80 端口正在被正常监听。tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法。
-
CentOS 7 以后版本默认安装 Firewalld。如果您已经启用
firewalld.service
,需要放行 TCP 80 端口:运行命令firewall-cmd --add-port=80/tcp --permanent
。返回结果为success
即表示已经放行 TCP 80 端口。使用 CentOS 7 以前的版本并开启默认防火墙 iptables 时,应注意 iptables 默认不拦截访问,如果您配置了 iptables 规则,需要执行以下步骤:
- 查看规则列表:运行命令
iptables --line -vnL
。根据返回结果执行不同操作:- 如果您设置了默认拦截,添加规则放行 TCP 80 端口:运行命令
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
。 - 如果您设置了 DROP TCP 80 端口,替换规则放行 80 端口:运行命令
iptables -R INPUT [80端口对应的规则编号] -p tcp --dport 80 -j ACCEPT
。
- 如果您设置了默认拦截,添加规则放行 TCP 80 端口:运行命令
- 保存上述规则:运行命令
service iptables save
。
- 查看规则列表:运行命令
完成上述检查,如果您仍不能通过 http://公网 IP 地址
访问实例,请您 提交工单 咨询。
Ubuntu 16.04
这部分以在 Ubuntu 16.04 上安装 Apache2 Web 服务器为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作。
-
登录 ECS 管理控制台,确认实例所在安全组里已经添加如下安全组规则:
网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级 VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1 经典网络 公网 查看 Apache2 Web 服务器是否已经开启:运行命令
service apache2 status
。如果返回以下结果,说明 Apache2 Web 服务器已经启动。如果未开启,运行命令service apache2 start
。-
查看端口在实例中是否正常被监听:运行命令
netstat -an | grep 80
,如果返回以下结果,表明 TCP 80 端口正在被正常监听。tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法。
-
如果您已经启用 UFW(Ubuntu 预装防火墙),您需要放行 TCP 80 端口或 HTTP 服务:运行命令
ufw allow 80/tcp
或ufw allow http
。返回结果为Rule added
表示已经放行 TCP 80 端口或 HTTP 服务。如果您在实例中已经安装 Firewalld 并且已经启用 firewalld.service,您需要放行 TCP 80 端口:运行命令
firewall-cmd --add-port=80/tcp --permanent
。返回结果为success
即表示已经放行 TCP 80 端口。
完成上述检查,如果您仍不能通过 http://公网 IP 地址
访问您的实例,请您 提交工单 咨询。