作为背景,当从远程连接(例如,家庭主要使用JDBC),由于VPN的工作方式,我总是得到一个不同的IP地址,因此我无法连接,因为IP没有列出在pg_hba.conf。因此,我尝试使用主机名,但这也不起作用。
如何允许通过主机名而不是IP地址访问PostgreSQL?
编辑:
我发现以下几点似乎比评论更适合放在这里:
https://www.postgresql.org/message-id/369ED3B4-CAF3-4BBB-904F-E86999249D8E@visi.com
如果指定了主机名(任何不是IP地址范围或特殊关键字的内容都被视为主机名),则将该名称与客户端IP地址反向名称解析的结果进行比较(例如,如果使用DNS,则反向DNS查找)。主机名比较不区分大小写。如果有匹配,则对主机名执行前向名称解析(例如,正向DNS查找),以检查它解析的任何地址是否等于客户端的IP地址。如果两个方向匹配,则该条目被视为匹配。( pg_hba.conf中使用的主机名应该是客户端IP地址返回地址到名称解析的主机名,否则行将不匹配。某些主机名数据库允许将IP地址与多个主机名相关联,但当要求解析IP地址时,操作系统只返回一个主机名。)
因此,尽管具有主机名的ping工作,但反向dns查找不起作用,因此根据上面的文本解释了连接失败的原因。因此,由于nslookup确实找不到名字,这显然是VPN工作方式的罪魁祸首。
发布于 2020-02-21 15:21:42
对我的问题可能的解释:
https://www.postgresql.org/message-id/369ED3B4-CAF3-4BBB-904F-E86999249D8E@visi.com
如果指定了主机名(任何不是IP地址范围或特殊关键字的内容都被视为主机名),则将该名称与客户端IP地址反向名称解析的结果进行比较(例如,如果使用DNS,则反向DNS查找)。主机名比较不区分大小写。如果有匹配,则对主机名执行前向名称解析(例如,正向DNS查找),以检查它解析的任何地址是否等于客户端的IP地址。如果两个方向匹配,则该条目被视为匹配。( pg_hba.conf中使用的主机名应该是客户端IP地址返回地址到名称解析的主机名,否则行将不匹配。某些主机名数据库允许将IP地址与多个主机名相关联,但当要求解析IP地址时,操作系统只返回一个主机名。)
https://dba.stackexchange.com/questions/260241
复制相似问题