Apache-2.4
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
as監聽新埠,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 和 443lsof
。現在,當我嘗試訪問任何網站,甚至是埠 802 上的伺服器 IP 地址時,都會出現
This site can’t be reached
錯誤。但是,可以在埠 44302 上正常訪問站點/伺服器 ip。
http://ipaddress:802
或http://example.com:802
—- 不工作https://ipaddress:44302
或https://example.com:44302
—- 工作正常我做錯了什麼,我該如何解決?
埠 44302 工作但埠 802 沒有的原因是因為埠 44302 在防火牆中打開的埠範圍內,而 802 不在。
埠 0 - 1023 被視為特權埠,與其他埠不同,僅限於 root 使用者。
將埠從 802 切換到通用埠 80 替代方案(如 8080)解決了該問題。