Ubuntu

Virtualbox + Ubuntu 14.04 中的基本託管 Postgresql

  • August 24, 2020

我已將 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 設置中切換到橋接,它應該可以工作。

引用自:https://unix.stackexchange.com/questions/243517