在 OSX 上,与 postgresql 的连接通过 SSH 隧道挂起

在 OSX 上,与 postgresql 的连接通过 SSH 隧道挂起

尝试连接到 OSX 上的远程 PG 服务器但一直超时。

首先,我设置了隧道:

ssh -L 5433:serverip:5432 user@serverip

然后,我在另一个终端尝试连接到 PG:

psql -h localhost -p 5433 -U user

此时连接仅停留约 3 分钟。然后我收到以下消息:

psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

在 ssh 隧道终端上,我看到的只有这些:

channel 3: new [direct-tcpip]
(3 mins later:)channel 3: open failed: connect failed: Connection timed out

我尝试了所有我能想到的变体(localhost 与 127.0.0.1,不同的用户名)。什么都不起作用。这个确切的设置在 Windows Putty 上运行良好,所以不是服务器的问题。我还能够在服务器上 ssh 并运行 psql,所以不是 PG。

答案1

我相信您已postgresql配置为仅监听 loopbavk ( localhost)。您应该像这样使用转发:

ssh -L 5433:localhost:5432 user@serverip

否则,它将尝试连接到您服务器的公共 IP,但该 IP 上没有任何设备在监听,也没有任何设备被授权登录。

答案2

我遇到了一个非常类似的问题(这里是 Ubuntu):PostgreSQL 端口的 ssh 隧道,psql 使用该隧道访问远程数据库。当我在 psql 上请求自动完成(从 x 中选择 *)时,隧道会挂起/崩溃。

解决方案:将所有接口的 MTU 从 1500 更改为 576。解释:http://www.snailbook.com/faq/mtu-mismatch.auto.html

我生命中的几个小时就过去了。

相关内容