ポート 5432 (Postgres) がローカルホストからのみアクセスできるようにサーバーを設定しようとしています。 そのため、すべてを拒否し、ポート 5432 を再度追加しましたが、接続できません。
これが私の UFW 設定です:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
80 ALLOW IN Anywhere
443 ALLOW IN Anywhere
127.0.0.1 5432 ALLOW IN 127.0.0.1
22 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
80 ALLOW OUT Anywhere
22 ALLOW OUT Anywhere
443 ALLOW OUT Anywhere
53 ALLOW OUT Anywhere
33434:33524/udp ALLOW OUT Anywhere
127.0.0.1 5432 ALLOW OUT 127.0.0.1
80 (v6) ALLOW OUT Anywhere (v6)
22 (v6) ALLOW OUT Anywhere (v6)
443 (v6) ALLOW OUT Anywhere (v6)
53 (v6) ALLOW OUT Anywhere (v6)
33434:33524/udp (v6) ALLOW OUT Anywhere (v6)
そしてnetstat:
$ netstat -an | grep "LISTEN "
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp6 0 0 :::55056 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::5432 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
無効にすると正常に動作するので、接続を妨げているのが本当に ufw であることを確認します。何が足りないのか、何か分かりますか?
答え1
netstat から、ポート 5432 に言及しているのは 1 つだけであることがわかります (つまり、 で listen している tcp6 の行です) :::5432
。これは、プログラムが でのみ listen していることを示していますIPv6
。ファイアウォールは のみを許可しますIPv4
。2 つのオプションがあります。1 つは、ファイアウォールでそのサービスに接続するために IPv6 アドレス::1
( IPv6
localhost に相当) を許可することであり、もう 1 つは、プログラムを で listen させることですIPv4
。おそらく、両方を行うのが最善でしょう。