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

在本地网络外访问PostgreSQL数据库,postgresql,networking,remote-access,host,Postgresql,Networking,Remote Access,Host,我有一台Windows 10计算机,我想访问在本地网络之外的另一台计算机上设置的数据库 使用postgresql是否有可能实现这一点 非常感谢,非常感谢您帮助我克服这种情况。如果: 本地网络的防火墙允许到PostgreSQL侦听端口(通常为5432)的传出连接 另一个网络的防火墙允许到PostgreSQL侦听端口(通常为5432)的传入连接 PostgreSQL server的防火墙允许在其侦听端口(通常为5432)上进行连接 PostgreSQL server配置为接受网络连接 您可以使用网络

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

使用postgresql是否有可能实现这一点


非常感谢,非常感谢您帮助我克服这种情况。

如果:

  • 本地网络的防火墙允许到PostgreSQL侦听端口(通常为5432)的传出连接
  • 另一个网络的防火墙允许到PostgreSQL侦听端口(通常为5432)的传入连接
  • PostgreSQL server的防火墙允许在其侦听端口(通常为5432)上进行连接
  • PostgreSQL server配置为接受网络连接
  • 您可以使用网络扫描仪(如Nmap)进行测试,要做的事情是在客户的网络上安装一台笔记本电脑,然后从那里进行扫描。如果您可以从同一子网上的某个地址连接到PostgreSQL,那么您就知道PostgreSQL服务器上不需要其他任何东西,因此您需要关注客户的防火墙。这就是事情变得困难的地方,你需要与控制防火墙/路由器的人合作

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

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

    这需要更多的信息。您是否可以控制其他数据库/计算机?如果您有控制权或没有控制权,您是否知道该数据库的连接信息(主机、端口、数据库名称等)?您是否在本地计算机上安装了Postgres客户端?如果是,是什么?你和远程机器之间有防火墙吗?你好,阿德里安,是的,我控制着另一台数据库机器。事实上,更准确的说,我需要为一个企业做java应用程序,它将运行在客户端的计算机上(我们考虑它是计算机N1)。但我希望数据存储在n1本地网络之外的数据库中,在那里我当然会有关于它的完整信息(主机、端口、数据库名称等)。是的,我在客户机(计算机n1)上安装了postgres。当然,n1和远程机器之间有防火墙。我可以使用SSH隧道吗??谢谢!所以我真正需要做的就是在“服务器”机器上添加入站规则(当然是端口5432),在客户端机器上添加结果规则(同样是端口5432)?SSH隧道怎么样?你对尝试使用它有什么建议吗?如果是这样,我如何使用它来解决我的问题?谢谢!!这完全取决于网络环境——我已经对我的答案进行了一些扩展。如果您已经可以从Windows 10计算机使用ssh连接到客户端的PostgreSQL server,那么这意味着客户端的防火墙已配置为允许使用ssh连接,在本例中,ssh隧道是一个选项。