![postgres 服务器在 LAN 上运行但在 WAN 上运行不成功(连接被拒绝)](https://linux22.com/image/586766/postgres%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9C%A8%20LAN%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E4%BD%86%E5%9C%A8%20WAN%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E4%B8%8D%E6%88%90%E5%8A%9F%EF%BC%88%E8%BF%9E%E6%8E%A5%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%89.png)
我正在尝试设置一个 postgres 服务器,但无法通过互联网访问它。它在我的局域网上运行良好。服务器只是一台使用 Ubuntu 12.04 桌面的台式计算机。
免责声明:我不打算永久使用此配置。最终我将通过 SSH 隧道进行连接,而我所做的某些操作可能不安全,但现在我只想弄清楚为什么它不起作用。
在我的 postgresql.conf 文件中,我设置了listen_addresses = '*'
。为了测试它不是我的pg_hba.conf
,我注释了所有内容,然后只使用
host all all all trust
防火墙似乎没有发生任何事情——确保我安装了 gufw 并允许服务器和客户端上的所有传入和传出流量。
当我尝试通过指向服务器外部 IP 地址的域名进行连接时,我收到以下消息:
psql: could not connect to server: Connection refused
Is the server running on host "<hostname>" (<IP address>) and accepting
TCP/IP connections on port 5432?
结果netstat -an | grep 5432
似乎表明 postgres 确实正在监听所有地址上的连接:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::5432 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 9771 /var/run/postgresql/.s.PGSQL.5432
答案1
pg_hba.conf 中的一行,例如:
host all all 0.0.0.0/0 md5