如何检查TCP 80端口是否正常工作

本文主要介绍在不同操作系统中检查TCP 80端口是否正常工作的方法。

背景信息

如果实例无法对外提供HTTP服务,可以按以下思路检查Web服务相关的接口(默认为TCP 80)是否正常工作。

  1. 在ECS管理控制台,确认安全组已经放行该端口。

  2. 远程连接ECS实例,确认服务已经开启。

  3. 确认端口正常被监听。如没有,请修改监听地址。

  4. 确认实例防火墙已经放行服务。

Windows Server 2012

说明

本操作以在Windows Server 2012操作系统的ECS实例中安装IIS服务为例,具体操作以您ECS实例的实际操作系统为准。

  1. 登录ECS管理控制台,确认实例所在安全组里已经添加以下安全组规则。

    网络类型

    网卡类型

    规则方向

    授权策略

    协议类型

    端口范围

    授权类型

    授权对象

    优先级

    VPC 网络

    不需要配置

    入方向

    允许

    HTTP(80)

    80/80

    地址段访问

    10.0.0.0/8

    1

    经典网络

    公网

  2. 远程连接Windows实例。

    具体操作,请参见远程连接Windows实例

  3. 查看IIS服务是否已经开启。

    1. 服务器管理器页面,选择工具 > Internet Information Services(IIS)理器

      如果找不到这个选项,则表示没有成功安装IIS服务,需要重新安装IIS服务。 具体操作,请参见在Windows实例如何安装IIS和FTP服务Windows2012_确认已安装IIS服务

    2. Internet Information Services(IIS)理器页面,确认以下信息:

      • 在左侧导航栏,连接区域中右键单击实例ID。

        如果启动处于灰色状态,表示IIS服务已经开启。

      • 单击网站,在右边列表页查看您已安装的网站的状态。

        如果网站状态已停止,则单击网站,在右侧区域选择操作 > 管理站点 > 启动,启动网站。 Windows2012_确认站点已启动

  4. 查看端口在实例中是否正常被监听。

    1. 启动命令提示符

    2. 执行如下命令。

      netstat -ano | findstr :80
      • 如果返回信息类似TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4,则说明80端口正常全网监听。

      • 如果返回的不是该端口信息,请在Internet Information Services(IIS)理器中,单击指定网站,然后在右侧区域选择操作 > 绑定,将绑定的端口修改为80端口。

  5. 查看实例里防火墙是否已经放行Web服务。

    1. 选择控制面板 > 系统与安全 > Windows 防火墙

    2. 根据防火墙状态,执行如下操作。

      • 如果防火墙处于关闭状态,则操作完毕。

      • 如果防火墙处于开启状态,则执行如下操作。

        1. 单击高级设置

        2. 在左侧导航栏中,单击入站规则

        3. 选择万维网服务(HTTP 流入量)

          如果该规则处于禁用状态,则选择操作 > 启用规则Windows2012_防火墙里启用HTTP入站规则

Windows Server 2008

说明

本操作以在Windows Server 2008操作系统的ECS实例中安装IIS服务为例,具体操作以您ECS实例的实际操作系统为准。

  1. 登录ECS管理控制台,确认实例所在安全组里已经添加以下安全组规则。

    网络类型

    网卡类型

    规则方向

    授权策略

    协议类型

    端口范围

    授权类型

    授权对象

    优先级

    VPC 网络

    不需要配置

    入方向

    允许

    HTTP(80)

    80/80

    地址段访问

    10.0.0.0/8

    1

    经典网络

    公网

  2. 远程连接Windows实例。

    具体操作,请参见远程连接Windows实例

  3. 查看IIS服务是否已经开启。

    1. 服务器管理器页面,选择角色 > Web 服务器

      如果找不到这个选项,则说明没有成功安装IIS服务,需要重新安装IIS服务。 具体操作,请参见在Windows实例如何安装IIS和FTP服务

    2. Web 服务器(IIS)页面,确认系统服务状态为全部正在运行。如果不是这个状态,请启动所有服务。 Windows2008_确认已安装IIS服务

  4. 查看端口在实例中是否正常被监听。

    1. 启动命令提示符

    2. 执行以下命令。

      netstat -ano | findstr :80
      • 如果返回信息类似TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4,则说明80端口正常全网监听。

      • 如果返回的不是该端口信息,请在Internet Information Services(IIS)理器中,单击指定网站,然后在右侧区域选择操作 > 绑定,将绑定的端口修改为80端口

  5. 查看实例里防火墙是否已经放行Web服务。

    1. 选择控制面板 > 系统与安全 > Windows 防火墙

    2. 根据防火墙状态,执行如下操作。

      • 如果防火墙处于关闭状态,则操作完毕。

      • 如果防火墙处于开启状态,则执行如下操作。

        1. 单击高级设置

        2. 在左侧导航栏中,单击入站规则

        3. 选择万维网服务(HTTP 流入量)

          如果该规则处于禁用状态,则选择操作 > 启用规则Windows2008_防火墙里启用HTTP入站规则

CentOS 7.3

说明

本操作以在CentOS 7.3操作系统的ECS实例中安装Nginx服务为例,具体操作以您ECS实例的实际操作系统为准。

  1. 登录ECS管理控制台,确认实例所在安全组里已经添加以下安全组规则。

    网络类型

    网卡类型

    规则方向

    授权策略

    协议类型

    端口范围

    授权类型

    授权对象

    优先级

    VPC 网络

    不需要配置

    入方向

    允许

    HTTP(80)

    80/80

    地址段访问

    10.0.0.0/8

    1

    经典网络

    公网

  2. 远程连接Linux实例。

    具体操作,请参见远程连接Linux实例

  3. 执行如下命令。

    systemctl status nginx

    如果系统返回类似如下信息,则说明Nginx已经启动。如果未开启,则执行systemctl start nginx命令。

    CentOS7.3_nginx已启动

  4. 执行如下命令,查看端口在实例中是否正常被监听。

    netstat -an | grep 80
    • 如果返回tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,则说明80端口正常全网监听。

    • 如果返回的不是tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,则需要修改监听地址。修改监听地址的操作步骤,请参见如何修改Nginx服务端口监听地址

  5. 如果已经启用firewalld.service,则需要执行如下命令,放行TCP 80端口。

    若返回结果为success,则表示已经放行TCP 80端口。

    说明

    CentOS 7之后的版本默认安装Firewalld。

    firewall-cmd --add-port=80/tcp --permanent
  6. 如果您的ECS实例操作系统为CentOS 7之前的版本,则执行如下操作。

    • 开启默认防火墙iptables,则iptables默认不拦截访问,操作完毕。

    • 配置了iptables规则,则需要执行如下操作放行80端口。

      1. 执行iptables --line -vnL命令,查看规则列表。

        • 如果设置了默认拦截,则执行iptables -A INPUT -p tcp --dport 80 -j ACCEPT命令,添加规则放行TCP 80端口。

        • 如果设置了DROP TCP 80端口,则执行iptables -R INPUT [80端口对应的规则编号] -p tcp --dport 80 -j ACCEPT命令,替换规则放行80 端口。

      2. 执行service iptables save命令,保存规则。

Ubuntu 16.04

说明

本操作以在Ubuntu 16.04操作系统的ECS实例中安装Apache2 Web服务为例,具体操作以您ECS实例的实际操作系统为准。

  1. 登录ECS管理控制台,确认实例所在安全组里已经添加以下安全组规则。

    网络类型

    网卡类型

    规则方向

    授权策略

    协议类型

    端口范围

    授权类型

    授权对象

    优先级

    VPC 网络

    不需要配置

    入方向

    允许

    HTTP(80)

    80/80

    地址段访问

    10.0.0.0/8

    1

    经典网络

    公网

  2. 远程连接Linux实例。

    具体操作,请参见远程连接Linux实例

  3. 执行service apache2 status命令,查看Apache2 Web服务器是否已经开启。

    如果返回以下结果,表示Apache2 Web服务器已经启动。如果未开启,则需要执行service apache2 start命令开启服务。 Ubuntu 16.04_Apache2 Web 服务器正常工作

  4. 执行如下命令,查看端口在实例中是否正常被监听。

    netstat -an | grep 80
    • 如果返回tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,则表示80端口正常全网监听。

    • 如果返回的不是tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,则需要修改监听地址。修改监听地址的具体操作,请参见如何修改Apache服务端口监听地址

  5. 如果您已经启用UFW(Ubuntu 预装防火墙),则需要执行ufw allow 80/tcpufw allow http命令,放行TCP 80端口或HTTP服务。

    返回结果为Rule added,则表示已经放行TCP 80端口或HTTP服务。

    说明

    如果ECS实例中已经安装Firewalld并且已经启用firewalld.service,则可以执行firewall-cmd --add-port=80/tcp --permanent命令,放行TCP 80端口。当返回结果为success,则表示已经放行TCP 80端口。

阿里云首页 云服务器 ECS 相关技术圈