无法从端口 80 访问 apache,可能是由于防火墙配置

无法从端口 80 访问 apache,可能是由于防火墙配置

背景:我的公司为内部基于 Web 的系统仪表板托管了两个服务器实例:一个开发服务器和一个生产服务器。为了增加生产服务器的安全性,我们通常会禁用端口 80 并使用其他端口访问 Web 服务器。但是,我们的 SSL 证书即将过期,因此我尝试重新启用端口 80(以执行 http-01 质询验证)。我能够在开发计算机上启用和续订证书,但无法在生产计算机上执行相同操作。

问题:我无法连接到托管在 Ubuntu 20.04.1 计算机上的 Apache Web 服务器。我探索了大量资源和类似的问题,但都无济于事。我已验证 Apacheports.conf000-default.conf正在监听端口 80。我还临时设置了ufw/iptables配置以允许所有传入请求,以尝试排除防火墙。目前,如果我运行curl http://production.example.com,它会返回“连接被拒绝”。基于此,似乎我正在连接到该计算机,但有东西阻止了它。除了 UFW 或 iptables,还有其他服务可能会阻止与端口 80 的连接吗?如果需要更多信息,请告诉我!提前致谢!

配置/测试
curl 命令:

$ curl -v http://production.example.com
*   Trying xxx.xxx.xx.xx:80...
* TCP_NODELAY set
* connect to xxx.xxx.xx.xx port 80 failed: Connection refused
* Failed to connect to production.example.com port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to production.example.com port 80: Connection refused

UFW 设置:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: allow (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
443/tcp                    ALLOW IN    Anywhere                  
443/tcp (v6)               ALLOW IN    Anywhere (v6)             

阿帕奇ports.conf000-default.conf

Listen 80

<VirtualHost *:80>
        ServerName production.example.com
        
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

验证端口 80 是否打开的命令:

$ sudo lsof -i:80
COMMAND PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2 706     root    4u  IPv6  20604      0t0  TCP *:http (LISTEN)
apache2 752 www-data    4u  IPv6  20604      0t0  TCP *:http (LISTEN)
apache2 759 www-data    4u  IPv6  20604      0t0  TCP *:http (LISTEN)
apache2 764 www-data    4u  IPv6  20604      0t0  TCP *:http (LISTEN)
apache2 767 www-data    4u  IPv6  20604      0t0  TCP *:http (LISTEN)
apache2 774 www-data    4u  IPv6  20604      0t0  TCP *:http (LISTEN)

$ netstat -a | grep http | grep LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN 

类似问题

- 更新 -
根据评论,我运行了这个问题,但我不确定如何解释结果:

sudo tcpdump -n host 138.197.97.12 and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:31:56.921857 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362696691 ecr 0,sackOK,eol], length 0
17:31:57.936229 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362697692 ecr 0,sackOK,eol], length 0
17:32:08.748828 IP 35.190.73.167.80 > 138.197.97.12.4957: Flags [S.], seq 3923531534, ack 2621902277, win 65535, options [mss 1430,sackOK,TS val 2683344831 ecr 873100626,nop,wscale 8], length 0
17:32:16.798047 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362715694 ecr 0,sackOK,eol], length 0

相关内容