检查 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. Feign源码解析系列-最佳实践

    前几篇准备写完feign的源码,这篇直接给出Feign的最佳实践,考虑到目前网上还没有一个比较好的实践解释,对于新使用spring cloud的同学会对微服务之间的依赖产生一些迷惑,也会走一些弯路.这 ...

  2. 复习string和数组

    两种实例化方式的区别 1)直接赋值(String str = "hello"):只开辟一块堆内存空间,并且会自动入池,不会产生垃圾. 2)构造方法(String str=  new ...

  3. python笔记-数学、元组、日期、文件

    python在很多地方和C++相似,比如都会有关系.逻辑等运算符,但也有不同的地方,比如:#Python Number 类型转换int(x [,base ]) 将x转换为一个整数 long(x [,b ...

  4. 三、后门的编写和 ShellCode 的提取

    第三章.后门的编写和 ShellCode 的提取 (一)IP 和 Socket 编程初步 NOTES: 1.Windows 下网络通信编程的几种方式 第一种是基于 NetBIOS 的网络编程,这种方法 ...

  5. Django-api认证

    验证过程:每一个中控机有一个key,然后获取到当前时间戳.把key和当前时间戳这两个值进行一次加密,加密之后得到加密的戳,把加密的戳和当前获取的时间戳用管道符分割开生成一个大的字符串(加密戳|时间戳) ...

  6. antd-vue按需加载插件babel-plugin-import报错

    报错.bezierEasingMixin().百度了一下是Less版本太高的原因,我都迷了,还有太新的过... 解决方法:将less版本降到3.0以下 因为我是用的npm生成的vue项目.所以cmd命 ...

  7. 2018-2019-2 20165313 《网络对抗技术》 Exp5:MSF基础应用

    实践使用漏洞和辅助模块 任务一:MS17-010安全漏洞 任务二:(1)MS11-050(失败)(2)MS14-064(唯一) 任务三:abode_flash_avm2 辅助模块:(1)ARP扫描模块 ...

  8. python中常见的报错,总结一下,以后看。

    AttributeError 试图访问一个对象没有的属性,比如,乔峰.nameIOError 输入.输出异常:基本上无法打开文件ImportError 无法引入模块或者是包:基本上是路径问题,或者是名 ...

  9. SQL Server 快速大数据排序方法

    SQL Server 中虽然有 ORDER BY NewID() 方法,但对于数据量比较大的结果集来说,排序那慢的可不是一星半点. 微软官方给了一种方案,https://msdn.microsoft. ...

  10. Visual Studio 2017 Android 调试无法连接到虚拟机

    输出窗口输出如下: 1>Starting deploy 4.5" KitKat (4.4) HDPI Phone ... 1>Starting emulator 4.5" ...