服务器信息

  • 企业宽带独立IP
  • Nginx
  • CentOS 7

问题

部署的网站http无法访问。


排查

1.防火墙

首先telnet查看端口,发现80端口已经关闭。

# 使用本地电脑测试
telnet ip 80

Trying ip...
telnet: connect to address ip: Connection refused
telnet: Unable to connect to remote host

查看防火墙,我们的服务器是基于CentOS7.6,排查防火墙:

# 查看防火墙已开启的所有
firewall-cmd --list-all

services: dhcpv6-client https http ssh

发现在service中,80与443均已放行,这里为了防止防火墙的问题,我们将防火墙暂时关闭。

# 关闭防火墙firewalld
systemctl stop firewalld

为了防止有可能的iptables问题,顺便将其也进行关闭。

# 关闭防火墙iptables
systemctl stop iptables
2.Nginx

那么会不是会Nginx的问题呢,查看下端口占用:

# 查看端口占用
lsof -i:80

COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx   67558 root   23u  IPv4 123676689      0t0  TCP *:http (LISTEN)

发现Nginx正常运行,那么理论上就不该出问题,如果是不太重要的测试环境,我们还可以排除掉Nginx,直接用另外的Web服务器进行测试。

# 关闭nginx,安装caddy
systemctl stop nginx
yum install -y epel-release
yum install -y caddy
systemctl start caddy

# 查看端口是否位caddy占用
lsof -i:80
3.端口扫描

我们还可以使用第三方工具进行扫描。

根据 http://atool.org/port_scanner.php 的扫描,常用端口仅3306可访问。那么我们基本可以断定,是运营商封闭了我们的端口

其实运营商给了我们一段地址,只封了一个,使用另外一个地址进行测试,服务一切正常。


后记

最终联系了运营商,运营商告诉我们从农历新年之后,对于80端口的管控更加严格了,必须备案才会放行。

哎,没办法。

Last modification:May 7th, 2019 at 03:04 pm