我安装了一个Vagrant box,并在其中运行了一个Postgres服务器,端口为5432
,我将其添加到了Vagrantfile
中:
config.vm.network "private_network", ip: "192.168.33.33"
config.vm.network "forwarded_port", guest: 5432, host: 3333
但是,当我尝试通过连接到
192.168.33.33:3333
来连接postgres服务器时,我会遇到这个错误:
![enter image description here](https://istack.dev59.com/e0Pgv.webp)
config.vm.network "forwarded_port", guest: 8000, host: 8001
config.vm.network "forwarded_port", guest: 3333, host: 3334
config.vm.network "forwarded_port", guest: 5555, host: 5556
config.vm.network "forwarded_port", guest: 5432, host: 3333
config.vm.network "forwarded_port", guest: 80, host: 8888,
auto_correct: true
以下是端口扫描器的结果:
它没有检测到995以上的任何端口。我如何访问VM的PostgreSQL服务器?
更新:
我找到了一种通过localhost连接的方法(charlies建议),似乎config.vm.network "forwarded_port"
仅将端口转发到localhost
。此外,我按照这个指南进行操作:
https://pseudoscripter.wordpress.com/2016/04/26/allow-remote-hosts-to-connect-to-postgresql-database-server-on-vagrant-box/
并编辑了postgresql.conf
文件,使其监听所有IP地址,添加了这一行:
listen_addresses = '*' # what IP address(es) to listen on;
我已编辑pg_hba.conf
文件,以允许来宾IP地址的访问:
host all all 192.168.33.33/24 md5
^^ 这一步可能与在 localhost:3333
上运行无关。从那个指南中的步骤没有使连接到192.168.33.33:3333
,但是我可以连接到localhost:3333
。
已解决
与其尝试通过转发端口访问客户端IP上的服务器,可以在客户端端口上访问它,所以现在我可以在192.168.33.33:5432
上访问该服务器。当我第一次尝试时,这对我不起作用,因此需要执行“更新1”中的步骤才能使其可访问。