어디서나 네트워크 연결을 허용하도록 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
5433으로 들어오는 TCP 연결을 허용하도록 iptables를 구성했습니다.
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
가상 머신의 SSH 세션에서 실행할 수 있고 telnet 10.0.2.15 5433
작동합니다. 전체 psql 클라이언트를 연결할 수도 있습니다. 내 호스트에서 동일한 telnet 명령이나 동일한 psql 명령을 실행하면 연결할 수 없습니다.
무엇이 잘못되었을 수 있으며 무엇을 확인할 수 있나요?
답변1
가상 머신의 네트워크 어댑터는 기본적으로 NAT 모드입니다. 이는 외부에서 ssh/telnet/etc를 통해 가상 머신에 연결할 수 없음을 의미합니다. VM 설정에서 브리지로 전환하면 작동합니다.