我正在尝试设置一个 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