Postgres 数据库服务器使用哪些网络协议?

ber*_*436 17 iptables database postgresql protocols

我有一个 postgres 9.1 服务器在 Ubuntu 12.04 云服务器上的默认端口 5432 上运行。

我想打开端口,这样我就可以进行远程查询——但是我必须在 IP 表上打开端口,这需要我指定一个协议。这个文档没有提到 TCP/UDP 等。

我应该在 IP 表中允许什么协议?

Ouk*_*uki 17

该协议是普通的 TCP/IP。

来自关于“前端”和“后端”协议的posgresql 文档:

PostgreSQL 使用基于消息的协议进行前端和后端(客户端和服务器)之间的通信。该协议通过TCP/IP和 Unix 域套接字支持。端口号 5432已在 IANA 注册为支持该协议的服务器的惯用 TCP 端口号,但实际上可以使用任何非特权端口号。

因此,关于iptables使用该tcp协议,因为 Unix 域套接字不打算通过网络使用。

iptables示例:

iptables <other_options> -p tcp -dport 5432 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

注意

正如Lekensteyn所指出的,考虑通过该网络连接激活 SSL 特别明智(请参阅有关使用 TCP-over-SSL 的postgresql 文档)。在这种情况下,iptables规则不会改变:相同的端口 (5432),相同的协议 (tcp)。