在本地网络外部访问PostgreSQL数据库

问题描述

我有一台Windows 10计算机,我想访问一个在本地网络之外的另一台计算机上设置的数据库

是否有可能使用postgresql实现这一目标?

非常感谢,感谢您为帮助我克服这种情况所做的努力。

解决方法

有可能,条件是:

  1. 您本地网络的防火墙允许到PostgreSQL侦听端口(通常为5432)的传出连接。
  2. 另一个网络的防火墙允许传入连接到PostgreSQL侦听端口(通常为5432)。
  3. PostgreSQL服务器的防火墙允许在其侦听端口(通常是5432)上进行连接。
  4. 将PostgreSQL服务器配置为接受网络连接。

您可以使用Nmap之类的网络扫描仪进行测试,要做的就是将笔记本电脑放在客户的网络上,然后从那里进行扫描。如果您可以从同一子网上的地址连接到PostgreSQL,那么您知道PostgreSQL服务器上不需要其他任何东西,因此您需要注意客户的防火墙。在这里,事情可能会变得很困难,并且您需要与控制该防火墙/路由器的任何人一起工作。

可能是客户的网络位于RFC 1918子网中。如果是这种情况,则需要将防火墙/路由器配置为端口转发,如下所示:


public internet
       |
 ----public address--port nnn--
|                             |
|     firewall                |
|                             |
|-----rfc 1918 address--------|
          |     
          |  
          |  
 ----rfc 1918 address--port 5432--
|                                |
|     PostgreSQL server          |
|                                |
|--------------------------------|