Ubuntu
為什麼即使它適用於 localhost 並且防火牆已打開,我的 IP 地址也會被拒絕連接?
當我
sudo ufw status
在 Ubuntu 機器上執行時,我得到以下輸出sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 30303 ALLOW Anywhere 9000 ALLOW Anywhere 3000 ALLOW Anywhere 80/tcp ALLOW Anywhere 8008/tcp ALLOW Anywhere 8008 ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 30303 (v6) ALLOW Anywhere (v6) 9000 (v6) ALLOW Anywhere (v6) 3000 (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 8008/tcp (v6) ALLOW Anywhere (v6) 8008 (v6) ALLOW Anywhere (v6)
8008
當我從盒子內訪問在埠上執行的服務時,localhost
它可以工作。也就是說,以下工作:curl --head http://localhost:8008/metrics
但如果我改用盒子的 IP 地址,它就不起作用。那是:
$ curl --head http://<public-ip>:8008/metrics curl: (7) Failed to connect to <public-ip> port 8008: Connection refused
如果我也嘗試從瀏覽器訪問,它仍然被拒絕連接。
這裡會發生什麼?的輸出
sudo ufw status
顯示埠已打開且可訪問,但仍無法正常工作。編輯:根據評論中的要求:
netstat -tln | grep 8008 tcp 0 0 127.0.0.1:8008 0.0.0.0:* LISTEN
ss -tln | grep 8008 LISTEN 0 511 127.0.0.1:8008 0.0.0.0:*
答案在 的輸出中
netstat
。您正在收聽地址127.0.0.1
。您可能需要監聽0.0.0.0
(所有本地介面/地址)。感謝其他評論者的解決。