自定义端口破坏了 Apache

自定义端口破坏了 Apache

我希望 Apache(v2.4.41)在我的 Ubuntu(v20.04)服务器上监听端口 802 和 44302 而不是 80 和 443,因此我执行以下操作:

  • 编辑了 中的端口号/etc/apache2/ports.conf。现在文件只有两行,如下所示:

    Listen 802
    Listen 44302
    
  • /etc/apache2/sites-available/000-default.conf像这样编辑端口号:

    <VirtualHost *:802>
      ....
    </VirtualHost>
    
  • /etc/apache2/sites-available/default-ssl.conf像这样编辑端口号:

    <IfModule mod_ssl.c>
      <VirtualHost *:44302>
        ....
      </VirtualHost>
    </IfModule>
    
  • /etc/apache2/sites-available也编辑了里面其他虚拟主机的端口号。

  • 重新启动 Apache

  • netstat确认 Apache 正在使用以及监听新端口,lsof并得到以下信息:

网络状态:

tcp6       0      0 :::44302         :::*            LISTEN      113959/apache2
tcp6       0      0 :::802           :::*            LISTEN      113959/apache2

lsof -i:802

COMMAND    PID     USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
apache2 113959     root    4u  IPv6 3543809823      0t0  TCP *:802 (LISTEN)
apache2 113960 www-data    4u  IPv6 3543809823      0t0  TCP *:802 (LISTEN)
apache2 113961 www-data    4u  IPv6 3543809823      0t0  TCP *:802 (LISTEN)

lsof -i:44302

COMMAND    PID     USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
apache2 117939     root    6u  IPv6 3547650042      0t0  TCP *:44302 (LISTEN)
apache2 117940 www-data    6u  IPv6 3547650042      0t0  TCP *:44302 (LISTEN)
apache2 117941 www-data    6u  IPv6 3547650042      0t0  TCP *:44302 (LISTEN)
  • 通过使用netstat和,确认没有其他任何东西正在监听端口 80 和 443 lsof

现在,当我尝试访问任何网站甚至服务器 IP 地址(:802 或:44302)时,只会收到错误This site can’t be reached

我做错了什么以及我该如何解决这个问题?

更新:

我重新启动了服务器,而不是仅仅重新启动 apache,https://example.com:44302现在可以正常工作,但http://example.com:802仍然返回This site can’t be reached错误。

除服务器重启外,上述配置没有做出任何更改。

答案1

端口 44302 可以运行而端口 802 不运行的原因是,端口 44302 在防火墙的开放端口范围内,而端口 802 不在。

端口 0 - 1023 被视为特权端口,与其他端口不同,仅限于 root 用户使用。

将端口从 802 切换到通用端口 80 替代端口(例如 8080)即可解决问题。

相关内容