启用PostgreSQL远程访问 - 似乎没什么用

时间:2017-07-25 05:08:12

标签: postgresql centos remote-access iptables

我已经尝试了所有可以找到的东西,以便能够远程访问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规则。

2 个答案:

答案 0 :(得分:0)

如果您确实要在没有其他计算机密码的情况下启用连接,请执行

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

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

答案 1 :(得分:0)

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