localhostでファイアウォールがオンになっているのに、私のIPアドレスへの接続が拒否されるのはなぜですか?

localhostでファイアウォールがオンになっているのに、私のIPアドレスへの接続が拒否されるのはなぜですか?

Ubuntu コンピューターで実行すると、sudo ufw status次の結果が表示されます。

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.10.0.0.0(すべてのローカルインターフェイス/アドレス)を受信する必要があるかもしれません。

決議案を作成してくれた他のコメント作成者に感謝します。

関連情報