Postgres 資料庫伺服器使用哪些網路協定?

Postgres 資料庫伺服器使用哪些網路協定?

我有一個 postgres 9.1 伺服器在 Ubuntu 12.04 雲端伺服器上的預設連接埠 5432 上運行。

我想打開端口,這樣我就可以進行遠端查詢 - 但我必須在 IP 表上打開端口,這需要我指定一個協定。這個文檔沒有提到TCP/UDP等。

我應該在 IP 表中允許使用什麼協定?

答案1

該協定是普通的 TCP/IP。

來自 posgresql 文件關於“前端”與“後端”協議:

PostgreSQL 使用基於訊息的協定在前端和後端(客戶端和伺服器)之間進行通訊。該協議支持TCP/IP也可以透過 Unix 域套接字。連接埠號碼5432已在 IANA 註冊為支援該協定的伺服器的慣用 TCP 連接埠號,但實際上可以使用任何非特權連接埠號碼。

所以關於iptables使用該tcp協議,因為 Unix 域套接字不適合在網路上使用。

iptables例子:

iptables <other_options> -p tcp -dport 5432 -j ACCEPT

筆記:

正如所指出的萊肯斯坦,考慮透過該網路連線啟動 SSL 是特別明智的(請參閱有關 postgresql 的文檔)使用基於 SSL 的 TCP)。這iptables在這種情況下,規則不會改變:相同的連接埠(5432),相同的協定(tcp)。

答案2

預設情況下,PostgreSQLt 偵聽 TCP 連接埠 5432。

-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT

其中 xxx.xxx.xxx.xxx 是您要連接的伺服器的 IP,因此您不會向外界開放 postgres。

答案3

-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT

該指令會更改 pg_hba 嗎?

相關內容