Ubuntu

postgresql 埠關閉以進行遠端訪問

  • July 14, 2016

我正在嘗試連接到具有 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

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