Nginx

如何在 Ubuntu 中打開 443 埠?

  • May 26, 2018

我目前在使用 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),它看起來像防火牆問題。請注意,有兩種類型的防火牆:內部(在您的伺服器上執行)和外部(在控制伺服器網路訪問的另一台機器上執行)。您的更新僅顯示沒有內部防火牆。

引用自:https://serverfault.com/questions/809987