psql - Mac 尝试连接安装在远程服务器虚拟机中的 Ubuntu 系统中的 postgreSQL

psql - Mac trying to connect postgreSQL in Ubuntu system installed in a virtual machine in remote server

前面说声抱歉,可能这里的情况有点复杂。网上找遍了都没有找到完美的解决办法,而且其他帖子提到的解决办法我几乎都试过了

所以我在 Ubuntu 系统中安装了一个 postgreSQL 数据库。系统其实是VMware workstation 12上的一个虚拟机,安装在Windows7 professional上。现在我正尝试通过我的 MacBook pro 2013 远程访问 postgreSQL 数据库。

在Mac终端中,我试过的命令行是:

psql -U postgres -h xxx.xxx.xxx.xx

"xxx.xxx.xxx.xx"表示Windows7机器的IP地址。结果失败:

psql: could not connect to server: Operation timed out Is the server running on host "169.254.121.2" and accepting TCP/IP connections on port 5432?

host all all 0.0.0.0/0 md5

  1. 编辑 postgresql.conf 以包含

listen_addresses='*'

  1. 重新启动 postgres 服务。
  2. 在主机上禁用防火墙。
  3. 我在本地检查了 运行 psql 命令,它有效。 此外,在同一个 VMware 上我还有其他 Ubuntu 系统。他们都可以连接并访问此 Ubuntu 系统中的数据。
  4. 运行 Nmap,输出为

PORT STATE SERVICE

5432/TCP open postgresql

不知何故设法让它工作..

所以当我 运行 在另一个 Ubuntu 系统上向这个系统“Nmap”时,它确实显示

PORT STATE SERVICE

5432/TCP open postgresql

然而,当我在 Mac 上 运行 “Nmap” 时,它是一个不同的端口,3389,主要用于 Windows 远程桌面。所以我所做的是检查这个 Ubuntu 虚拟机的网络配置,从“bridged”到“NAT”并做了一个端口转发到5432。现在工作正常..

我在一些地方看到说 VMware 支持桥接,而 VirtualBox 支持 NAT+端口转发。我很困惑,因为在我的情况下肯定不是这样。也许我错了。