Postgresql
無法遠端連接到 Postgresql 9.5 實例
我正在努力連接到在 Ubuntu 16.10 上執行的遠端 Postgresql 9.5 實例。
通常:
psql:無法連接到伺服器:連接超時
伺服器是否在主機“xx.xx.xx.xx”上執行並接受埠 5432 上的 TCP/IP 連接?
我的 postgresql.conf 包括
listen_addresses='*'
通過輸出確認
netstat -nlp | grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 22981/postgres tcp6 0 0 :::5432 :::* LISTEN 22981/postgres unix 2 [ ACC ] STREAM LISTENING 3320886 22981/postgres /var/run/postgresql/.s.PGSQL.5432
除了我的特定 IP 地址和範圍之外,我還嘗試了 pg_hba.conf 中的以下條目:
host all all 0.0.0.0/0 md5 host all all ::/0 md5 host all all all md5 host all all * md5
我有以下 ufw 規則:
To Action From -- ------ ---- 22/tcp (OpenSSH) ALLOW IN Anywhere 80,443/tcp (Nginx Full) ALLOW IN Anywhere 5432 ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6) 80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6) 5432 (v6) ALLOW IN Anywhere (v6)
但是,即使禁用防火牆,問題仍然存在。
使用 nmap 掃描:
nmap xx.xx.xx.xx -p5432 Starting Nmap 7.01 ( https://nmap.org ) at 2017-02-13 09:17 SAST Nmap scan report for xx.xx.xx.xx Host is up (0.0074s latency). PORT STATE SERVICE 5432/tcp filtered postgresql
幾乎所有關於 SE 的類似問題似乎都可以解決
聽地址=’*'
這不是問題。
對此感到非常困惑,我們將不勝感激。
機器沒有停機,因為我可以 ssh 進入機器。此外,也可以訪問 nginx 伺服器。Telnet 到埠 5432 超時。
ubuntu伺服器前面沒有本地路由器,是一個專用伺服器,有公網介面,綁定xx.xx.xx.xx地址。這是從不提供額外防火牆設備選項的同一託管公司的上一代機器的遷移。這是一個乾淨的 Ubuntu 16.10 伺服器安裝。
原來我的託管服務提供商在沒有通知的情況下將伺服器移到了託管防火牆後面。
儘管這已經是很久以前回答的問題,但出於向面臨相同問題的其他人提供資訊的目的,在這種情況下,結果也
nmap
確實為您提供了答案。埠狀態服務 –> 5432/tcp過濾的 postgresql
如果您查看有關 nmap 的文件,它會提到
已過濾意味著防火牆、過濾器或其他網路障礙正在阻塞埠,因此 Nmap 無法判斷它是打開還是關閉。
所以問題在於網路而不是 PostgreSQL 配置。