Postgres数据库服务器使用什么网络协议?


16

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

我想打开端口,以便可以进行远程查询-但我必须在IP表上打开端口,这要求我指定协议。此文档未提及TCP / UDP等。

我应该在IP表中允许使用哪种协议?


Answers:


16

该协议是纯TCP / IP。

从posgresql文档中有关“前端”和“后端”协议的信息

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

因此,对于iptables使用该tcp协议,因为Unix域套接字并不意味着可以在网络上使用。

iptables示例:

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

注意事项

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


1

默认情况下,PostgreSQLt在TCP端口5432上侦听。使用以下iptables规则允许传入的客户端请求(开放端口5432)。

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

其中xxx.xxx.xxx.xxx是您要连接的服务器的IP,因此您不会向世界公开Postgres。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.