Nginx
如何在 Ubuntu 中打開 443 埠?
我目前在使用 ssl 和使用 443 埠時遇到了一些問題。我發現這個網站可以檢查你的伺服器的狀態。它說443已關閉。
Port 443 is closed on xx.xxx.xx.xxx.
過了一會兒,我嘗試了所有方法,但我不知道自己做錯了什麼。
netstat 顯示:
sudo netstat -anltp | grep LISTEN tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
和
netstat -nap | grep 443 tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 27898/nginx tcp 1 0 127.0.0.1:34371 127.0.0.1:443 CLOSE_WAIT 25998/openssl
應該是 nginx 正在監聽那個埠,對吧?
看起來是這樣,因為如果我使用 openssl 客戶端,我會得到:
openssl s_client -connect 127.0.0.1:443 CONNECTED(00000003)
但是當我嘗試使用 443 埠從外部訪問我的伺服器時,我得到一個連接超時。
openssl s_client -connect xx.xx.xx.xx:443 connect: Connection timed out connect:errno=110
這裡是 iptable 規則
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:https Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:https Chain ufw-after-forward (0 references) target prot opt source destination Chain ufw-after-input (0 references) target prot opt source destination Chain ufw-after-logging-forward (0 references) target prot opt source destination Chain ufw-after-logging-input (0 references) target prot opt source destination Chain ufw-after-logging-output (0 references) target prot opt source destination Chain ufw-after-output (0 references) target prot opt source destination Chain ufw-before-forward (0 references) target prot opt source destination Chain ufw-before-input (0 references) target prot opt source destination Chain ufw-before-logging-forward (0 references) target prot opt source destination Chain ufw-before-logging-input (0 references) target prot opt source destination Chain ufw-before-logging-output (0 references) target prot opt source destination Chain ufw-before-output (0 references) target prot opt source destination Chain ufw-reject-forward (0 references) target prot opt source destination Chain ufw-reject-input (0 references) target prot opt source destination Chain ufw-reject-output (0 references) target prot opt source destination Chain ufw-track-input (0 references) target prot opt source destination Chain ufw-track-output (0 references) target prot opt source destination
任何建議將不勝感激。
謝謝你。
更新:我忘了提到實際上沒有防火牆在執行:
ufw status Status: inactive
首先進行一些檢查:
- 您的伺服器是否在防火牆後面?埠可能因防火牆配置而關閉
- 只有 root 使用者可以綁定到埠 433(和其他低埠)。您的伺服器是否以正確的權限啟動?(通常將其配置為在自己的使用者下執行,但需要由 root 使用者啟動。)
PS 鑑於您的編輯(nginx 正在偵聽埠 443),它看起來像防火牆問題。請注意,有兩種類型的防火牆:內部(在您的伺服器上執行)和外部(在控制伺服器網路訪問的另一台機器上執行)。您的更新僅顯示沒有內部防火牆。