Ubuntu
postgresql 埠關閉以進行遠端訪問
我正在嘗試連接到具有 root 訪問權限的 Ubuntu 伺服器中的 PostgreSQL 數據庫,但不知何故,我無法打開埠 5432 進行遠端訪問,只能在本地訪問。這是我在伺服器上使用“nmap”命令時發生的情況(XXX.XXX.X.XX 代表伺服器的 IP):
nmap -p 5432 localhost PORT STATE SERVICE 5432/tcp open postgresql nmap -p 5432 XXX.XXX.X.XX PORT STATE SERVICE 5432/tcp closed postgresql
我已經編輯了文件 ‘pg_hba.conf’ 和 ‘postgresql.conf’ 但沒有用。
變化:
pg_hba.conf 文件:
# IPv4 local connections: host all all all md5 # IPv6 local connections: host all all all md5
postgresql.conf 文件:
listen_addresses = '*'
當我嘗試連接 pgAdmin III 時,這就是它向我展示的內容:
伺服器不聽
無法連接到伺服器:連接被拒絕 (0x0000274D/10061) 伺服器是否在主機“XXX.XXX.X.XX”上執行並接受埠 5432 上的 TCP/IP 連接?
我嘗試使用“ufw”命令打開埠,但效果不佳。
誰能幫我?
確保您的防火牆沒有阻止流量。
將以下規則附加到您的 iptables(更改
X.X.X.X
為您的伺服器 IP 地址):# iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d X.X.X.X --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -A OUTPUT -p tcp -s X.X.X.X --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
如果有效,請保存 iptables 並重新啟動它:
# apt-get install iptables-persistent # /etc/init.d/iptables restart
如果您的網路上有外部防火牆,您也應該允許那裡的連接。
**安全說明:**向公眾開放 PostgreSQL 埠可能是一個安全問題。您應該考慮通過將
-s 0/0
第一個 iptables 命令中的參數更改為-s X.X.X.X/X