为什么我的 IP 地址连接被拒绝,即使它适用于本地主机并且防火墙已打开?

为什么我的 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:*

答案1

答案就在 的输出中netstat。您正在收听地址127.0.0.1。您可能需要监听0.0.0.0(所有本地接口/地址)。

感谢其他评论者的解决。

相关内容