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

2017-09-13 22:12:50

目录
  • Windows Server 2012
  • Windows Server 2008
  • CentOS 7.3
  • Ubuntu 16.04

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

  1. 在 ECS 管理控制台,确认安全组已经放行该端口。
  2. 远程连接 ECS 实例,确认服务已经开启。
  3. 确认端口正常被监听。如没有,请修改监听地址。
  4. 确认实例防火墙已经放行服务。
  5. 如仍无法解决,请提交工单咨询。

本文分别介绍在不同操作系统中如何检查 TCP 80 端口是否正常工作:

Windows Server 2012

这部分以在 Windows 2012 上安装 IIS 服务为例,说明在 Windows 实例中如何检查 TCP 80 端口是否正常工作。

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

    网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
    VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
    经典网络 公网
  2. 远程连接 Windows 实例

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

    1. 服务器管理器 窗口,选择 工具 > Internet Information Services (IIS) 管理器。如果看不到这个选项,说明没有成功安装 IIS 服务,需要重新安装 IIS 服务,参考文档:ECS Windows Server2012 使用 PowerShell 安装 IIS
    2. Internet Information Services (IIS) 管理器 窗口,确认以下信息:
      • 连接 导航栏里,右击实例 ID,如果 启动 处于灰色状态,表示 IIS 服务已经开启。
      • 单击 网站,在右边列表页查看您安装的网站的状态。如果网站 状态已停止(http),则单击网站,在右侧 操作 栏的 管理站点 部分,单击 启动,启动网站。
  4. 查看端口在实例中是否正常被监听:

    1. 启动 命令提示符
    2. 运行命令:netstat -ano | findstr :80。如果返回以下命令,表示 80 端口正常全网监听:
      1. TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

      如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法

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

    1. 选择 控制面板 > 系统与安全 > Windows 防火墙
    2. 根据防火墙状态,执行不同操作:
      • 如果防火墙处于关闭状态,不需要再做其他处理。如果仍无法访问网站,请提交工单 咨询。
      • 如果防火墙处于开启状态,执行以下操作:
        1. 单击 高级设置
        2. 在弹出窗口的左侧导航栏中,单击 入站规则
        3. 选择 万维网服务 (HTTP 流入量),如果处于禁用状态,在 操作 栏里,单击 启用规则

完成上述检查,如果您仍不能通过 http://公网 IP 地址 访问您的实例,请您 提交工单 咨询。

Windows Server 2008

这部分以在 Windows 2008 上安装 IIS 服务为例,说明在 Windows 实例中如何检查 TCP 80 端口是否正常工作。

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

    网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
    VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
    经典网络 公网
  2. 远程连接 Windows 实例

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

    1. 服务器管理器 窗口,选择 角色 > Web 服务器(IIS)。如果看不到这个选项,说明没有成功安装 IIS 服务。
    2. Web 服务器(IIS) 窗口,确认 系统服务 部分显示为 全部正在运行。如果不是这个状态,请启动所有服务。
  4. 查看端口在实例中是否正常被监听:

    1. 启动 命令提示符
    2. 运行命令:netstat -ano | findstr :80。如果返回以下命令,表示 80 端口正常全网监听:
      1. TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

      如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法

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

    1. 单击 控制面板 > 系统与安全 > 检查防火墙状态
    2. 根据防火墙状态,执行不同操作:
      • 如果防火墙处于关闭状态,不需要再做其他处理。如果仍无法访问网站,请提交工单 咨询。
      • 如果防火墙处于开启状态,执行以下操作:
        1. 单击 高级设置
        2. 在弹出窗口的左侧导航栏中,单击 入站规则
        3. 选择 万维网服务 (HTTP 流入量),如果处于禁用状态,在 操作 栏里,单击 启用规则

完成上述检查,如果您仍不能通过 http://公网 IP 地址 访问您的实例,请您 提交工单 咨询。

CentOS 7.3

这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作。

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

    网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
    VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
    经典网络 公网
  2. 远程连接 Linux 实例

  3. 查看 nginx 服务是否已经开启:运行命令 systemctl status nginx。如果返回以下结果,说明 nginx 已经启动。如果未开启,运行命令 systemctl start nginx

  4. 查看端口在实例中是否正常被监听:运行命令 netstat -an | grep 80。如果返回以下结果,表明 TCP 80 端口正在被正常监听。

    1. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

    如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法

  5. CentOS 7 以后版本默认安装 Firewalld。如果您已经启用 firewalld.service,需要放行 TCP 80 端口:运行命令 firewall-cmd --add-port=80/tcp --permanent。返回结果为 success 即表示已经放行 TCP 80 端口。

    使用 CentOS 7 以前的版本并开启默认防火墙 iptables 时,应注意 iptables 默认不拦截访问,如果您配置了 iptables 规则,需要执行以下步骤:

    1. 查看规则列表:运行命令 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
    2. 保存上述规则:运行命令 service iptables save

完成上述检查,如果您仍不能通过 http://公网 IP 地址 访问实例,请您 提交工单 咨询。

Ubuntu 16.04

这部分以在 Ubuntu 16.04 上安装 Apache2 Web 服务器为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作。

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

    网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
    VPC 网络 不需要配置 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
    经典网络 公网
  2. 远程连接 Linux 实例

  3. 查看 Apache2 Web 服务器是否已经开启:运行命令 service apache2 status。如果返回以下结果,说明 Apache2 Web 服务器已经启动。如果未开启,运行命令 service apache2 start

  4. 查看端口在实例中是否正常被监听:运行命令 netstat -an | grep 80,如果返回以下结果,表明 TCP 80 端口正在被正常监听。

    1. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

    如果返回的不是上述结果,一般需要修改监听地址,参考文档:nginx/Tomcat/IIS 更改端口监听地址的方法

  5. 如果您已经启用 UFW(Ubuntu 预装防火墙),您需要放行 TCP 80 端口或 HTTP 服务:运行命令 ufw allow 80/tcpufw allow http。返回结果为 Rule added 表示已经放行 TCP 80 端口或 HTTP 服务。

    如果您在实例中已经安装 Firewalld 并且已经启用 firewalld.service,您需要放行 TCP 80 端口:运行命令 firewall-cmd --add-port=80/tcp --permanent。返回结果为 success 即表示已经放行 TCP 80 端口。

完成上述检查,如果您仍不能通过 http://公网 IP 地址 访问您的实例,请您 提交工单 咨询。

检查 TCP 80 端口是否正常工作的更多相关文章

  1. 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作

    CentOS 7.3 这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作. 登录 ECS 管理控制台,确认实例所在安全组 ...

  2. 查看80端口被占用的方法(IIS、apmserv、system)

    端口如果被其他程序占用就不能正常启动,比如有时启动时会提示WEB启动失败,其实就是80 端口被占用了,而迅雷等下载软件恰恰就是占用了80端口,关掉就行了.但有时迅雷等都没有开 也启动不了,那就是别的东 ...

  3. Mac下如何进行端口转发,方便一系列需要使用80端口进行的调试工作

    上篇文章介绍到,可以在本地hosts文件中添加一条记录将微信公众号中的可信域名解析道本地127.0.0.1,但tomcat在Mac下非root权限80端口是启动不了的,所以我们可以利用pfctl端口转 ...

  4. 启动nginx 80端口被占用:tcp 0 0 127.0.0.1:80 127.0.0.1:34932 TIME_WAIT -

    1.启动nginx命令./sbin/nginx 2.提示80端口被占用 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already ...

  5. nginx反向代理tcp协议的80端口

    需求:内网有一台mqtt协议服务器,需要将外网的mqtt请求通过一台服务器代理到内网的mqtt服务器上.而这台代理服务器不会开放出了80之外的端口,所以只能使用80端口来转发mqtt请求. 步骤:1. ...

  6. Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

    通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至 ...

  7. 解决宿主机不能访问虚拟机CentOS中的站点 | 更新CentOS防火墙设置开启80端口访问

    前阵子在虚拟机上装好了centos6.0,并配好了nginx+php+mysql,但是本机就是无法访问.一直就没去折腾了. 具体情况如下 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3. ...

  8. linux 防火墙开启80端口永久保存

    经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下.经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux ...

  9. CentOS中iptables防火墙 开放80端口方法

    开放端口:  代码如下 复制代码 [root@WX32 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 保存配置:  代码如下 复制代码 [root ...

随机推荐

  1. 解决centos7上system tools - setting无法打开的问题

    今天在centos7上安装中文输入法时,遇到system tools - setting无法打开的问题. 最后定位时libwbclient这个包无法查找到的原因. 问题显示如下: 可以使用以下方式安装 ...

  2. 在进行多次scanf时,printf输出错误

    随便一处代码,经过改正后,输出正确的 ''' #include <stdio.h> int main(){    int T;    scanf("%d",&T ...

  3. 增删改查js

    -----------------------------------------------------一---------------------------------------------- ...

  4. linux下lampp的启动和停止脚本

    今天试着写了lampp的启动停止脚本,和上一篇的tomcat的启动停止有一点小区别,就是lampp启动之后有很多的进程号,如果按照tomcat的停止脚本写就会出错,下面做细细的介绍 1.lampp的停 ...

  5. UT源码105032014093

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  6. Axure RP 介绍

    原型设计是将想法转变为设计过程中至关重要的一环.经常有设计师小伙伴可能会问到,“哪个原型设计工具是最好的呢”?实际上这是一种错误的提问方式,尤其是在当下原型工具种类繁多,针对不同需求各有优势的大环境中 ...

  7. python glob模块使用笔记(更新)

    glob模块是通配用的,用于列出符合通配格式的文件 glob.glob(path) path是用于匹配的字符串,类似简单版的正则吧 其中 * 匹配任意多个字符 ? 匹配一个字符 [1-9] 匹配指定范 ...

  8. JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系

    郭晨 软件151 1531610114 [整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 visio文件下载 概述 一个JavaEE的项 ...

  9. sqlite 使用 cte 及 递归的实现示例

    1.多级 cte 查询示例. with cte as ( select pageid from cm_bookpage ) , cte2 as ( as content from cte ) sele ...

  10. 使用dotenv 管理nodejs 应用的环境变量&&docker-compose 运行

      说明dotenv 是一个很方便的符合12 factor 的环境变量管理工具,使用很方便,实际上里面的代码也不是很多 测试使用docker 进行环境部署,为了方便分发使用pkg 进行打包,使用alp ...