PGAdmin中通过防火墙访问postgresql的适当主机是什么?

这是我的情况。

我有一个LAN上的Windows服务器上安装Postgresql。

我有一个IISnetworking服务器设置在局域网外。 我想从Web服务器连接到postgresql数据库。

Postgresql服务器IP:192.168.x.1

防火墙内部IP:192.168.x.2
防火墙外部IP:72.xx100

Webserver IP – 内部局域网访问:192.168.x.3
Webserver IP – 外部LAN访问:70.xx100

pg_hba.conf文件有一个条目: host all all 0.0.0.0/24 md5
postgresql.conf文件有一个条目: listen_addresses = '*'
这应该从数据库端删除所有的访问限制。

我的最终目的是让GIS应用程序访问这个数据库,将数据合并到一个地图网站中。 在这一点上,我只是想使用PgAdmin从Web服务器访问postgresql。

使用此configuration,假设防火墙上的5432端口已正确打开,则应在PGAdmin服务器连接的Host框中放置什么IP地址? 我最初的想法是,它应该是Firewall External IP: 70.xx100 ,但这是正确的?

最后,如果需要的话,我将把它分解成一个新的问题:从性能和安全的angular度来看,这种configuration是否合乎逻辑?还是应该以不同的方式进行讨论?

主机全部都是0.0.0.0/24 md5

嗯什么? 这只匹配0.0.0.*这肯定不是你想要的。

你的意思是0.0.0.0/0 ,即所有的IP地址?

192.168.0.0/16 ,即“我的局域网中的所有东西,包括防火墙和通过它的NATstream量”?

你正在使用NAT,所以PostgreSQL永远不会看到外部IP。 通过防火墙的连接将来自防火墙的内部 IP。 如果你想为防火墙的连接添加一条规则,那么你需要添加一个与防火墙的内部IP相匹配的掩码,即掩码/32 ,即IP。

你build议的设置是合理的,顺便说一句。 当然,您需要在防火墙机器上进行端口转发。 您可能希望在PostgreSQL中启用TCP keepalive,以阻止防火墙因连接跟踪表超时而丢弃空闲连接。