Ubuntu

安裝 Postgres 後埠 5432 監聽但無法訪問

  • November 6, 2019

我有一個由 Microsoft Azure 託管的 Ubuntu VM。它完全是空白的,然後我使用sudo apt-get install postgresql.

我安裝的版本是Ubuntu 10.10-0ubuntu0.18.04.1.

我按照本教程配置了 Postgres 以接受遠端連接:

  • postgresql.conf通過設置編輯了我的文件listen_addresses = '*'
  • pg_hba.conf我通過添加以下兩行來編輯我的文件:

host all all 0.0.0.0/0 md5

host all all ::/0 md5

我重新啟動了 Postgres,甚至重新啟動了整個伺服器。

當我執行netstat -tln時,我得到以下結果:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN

iptables的完全是空的,在創建 VM 後我沒有對它做任何事情。

從另一個客戶端,我嘗試執行sudo -u postgres psql -h [host] -U postgres,請求超時。

當我telnet [host] 5432從另一個客戶端執行時,在超時之前什麼都不會發生。但是,執行telnet [host] 22工作正常,並且執行telnet [host] 80讓我拒絕連接,我認為這意味著我的主機至少正在偵聽這些埠。

我在這裡能錯過什麼?

嘗試切換為 postgres 使用者並psql在安裝 postgres 的機器上輸入。這將確保安裝正確或錯誤。

su - postgres
psql

檢查 Azure 控制台中的防火牆,可能您必須啟用埠 5432。

可以在此處找到有關如何在 Azure VM 上打開埠的更多資訊。

引用自:https://serverfault.com/questions/989284