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。使用以下 iptables 规则允许传入客户端请求(打开端口 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 吗?

相关内容