【问题标题】:Enable PostgreSQL remote access- nothing seems to work启用 PostgreSQL 远程访问 - 似乎没有任何效果
【发布时间】:2017-12-30 20:26:58
【问题描述】:

我已经尝试了所有我能找到的方法来远程访问 centos 服务器上的 postgresql 8.1 数据库。我正在尝试使用 pgAdmin 3 从我的 Windows 10 PC 连接。我不断收到:

服务器不接受连接:连接库报告 无法连接到服务器:连接超时 (0x0000274C/10060) 服务器是否在主机“服务器 ip”上运行并接受端口 5432 上的 TCP/IP 连接?

这就是我所做的:
添加了 pg_hba.conf -

host  all all  "my public IP address"/32  trust  

postgresql.conf -

listen_addresses='*'  

重启 PostgreSQL

在 iptables 中添加以下内容

-A INPUT -p tcp -s 0/0 --sport 1024:65535 -d "my IP"  --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT  
-A OUTPUT -p tcp -s "my ip" --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT  

重启iptables

我已经多次验证我在任何地方都有正确的 IP 地址。

谁能帮我解决我可能遗漏的问题。

更新:
我停止了 iptables 服务并且能够连接,所以这与我的 iptable 规则有关。

【问题讨论】:

  • 你配置 Postgres 监听 5432 端口了吗?你为什么要使用这么过时的 Postgres 版本?
  • 感谢您清理我的帖子。仍在努力解决编辑器问题。是的,它正在侦听端口 5432。我们正在转换/更新一个非常旧的系统。我正在尝试连接到旧服务器,以便我们可以将数据转换为新系统的结构。那么就和过时的 PostgreSQL 版本说再见吧。
  • 从服务器上运行的 phpPgAdmin 顶部复制了这个。 PostgreSQL 8.1.23 在 localhost:5432 上运行

标签: postgresql centos remote-access iptables


【解决方案1】:

如果你真的想在其他机器上启用无需密码的连接,请在该行中

host  all all  "my public IP address"/32  trust

"my public IP address" 应该是您尝试连接的机器的 IP 地址。

不要忘记运行pg_ctl reload 来加载更改的配置文件。

要混杂并允许来自任何地方的无密码连接,请使用

host  all all  0.0.0.0/0  trust

如果遇到问题,请将postgresql.conf中的log_connections设置为on,并查阅日志文件。

【讨论】:

  • 我的本地网络使用192.168.5.xxx,我的公共IP是107.xxx.xxx.xxx。我在pg_hba.conf 中使用了这两种方法,但都没有成功。每次更改后,我都在运行postgresql restart。我认为这与pg_ctl reload 相同。我会尝试混杂并打开一切,看看它是否有效,然后缩小范围。
【解决方案2】:

我发现了 iptables 的错误。使用 CentOS 我需要添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 –s "my IP" -j ACCEPT
PostgreSQL 的一切都是正确的。只需要根据上述更改 iptable 规则。

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多