Ubuntu
Virtualbox + Ubuntu 14.04 中的基本託管 Postgresql
我已將 Postgres 配置為接受來自任何地方的網路連接:
在
pg_hga.conf
:host all all 0.0.0.0/0 md5
在
postgresql.conf
:listen_addresses = '*'
我可以看到伺服器正在監聽:
vagrant@vagrant-ubuntu-trusty-64:~$ sudo netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name <snip> tcp 0 0 0.0.0.0:5433 0.0.0.0:* LISTEN 1570/postgres
我已將 iptables 配置為允許傳入 TCP 連接到 5433:
vagrant@vagrant-ubuntu-trusty-64:~$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:5433 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
從 VM 中的 ssh 會話,我可以執行
telnet 10.0.2.15 5433
並且它可以工作。我還可以連接完整的 psql 客戶端。在我的主機上,如果我執行相同的 telnet 命令或相同的 psql 命令,我將無法連接。什麼可能是錯的,我可以檢查什麼?
VM 的網路適配器預設處於 NAT 模式。這意味著您不能從外部 ssh/telnet/etc 到您的虛擬機。在 VM 設置中切換到橋接,它應該可以工作。