当我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:*
答案1
答案就在 的输出中netstat
。您正在收听地址127.0.0.1
。您可能需要监听0.0.0.0
(所有本地接口/地址)。
感谢其他评论者的解决。