2
我一直试图通过网络使Postgres可用,但迄今为止一直无法这样做。Postgresql的开放端口
据netstat的,Postgres的监听的正确的端口上:
#netstat -anltp | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 2385/postgres
但是,当我试图从nmap的其他设备,端口似乎被关闭。
#nmap -p 5432 marvin
Starting Nmap 6.40 (http://nmap.org) at 2014-10-31 10:31 CET
Nmap scan report for marvin (*.*.*.*)
Host is up (0.00048s latency).
rDNS record for *.*.*.*: marvin.*.*
PORT STATE SERVICE
5432/tcp closed postgresql
我的猜测是,它必须做一些事情的事实,我使用主机名代替IP,但由于IP经常变化在这里每一个,我宁愿使用的主机名。
我已经设置了listen_addresses ='*',这是我在这里找到的另一个类似问题的解决方案,但无济于事。我也尝试了pg_hba.conf中的不同设置,但端口仍然关闭。
host all all .jarvis trust
host all all jarvis trust
host all all 0.0.0.0/24 trust
我也用过几个例子,我发现我的iptables,但没有运气那里。
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:postgresqlflags: FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere Marvin tcp spts:1024:65535 dpt:postgresql state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:postgresql
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- Marvin anywhere tcp spt:postgresql dpts:1024:65535 state ESTABLISHED
最后,我试图通过telnet连接,没有运气或者
telnet marvin 5432
Trying *.*.*.*...
telnet: Unable to connect to remote host: Connection refusedo connect to the port
然而,上有22
telnet marvin 22
Trying *.*.*.*...
Connected to marvin.*.*.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0p1 Debian-3ubuntu1
谁能告诉我没有问题如果有某个地方的设置被误解或使用主机名存在问题?
更具体地说,在postgresql.conf中,更改为'listen_addresses ='*'' – jishi 2014-10-31 12:17:23
已经这样做了,就像我在原文中所说的那样。 – Herder 2014-11-04 13:15:50
显然不是,否则netstat会说“0.0.0.0:5432”。所以 - 再次检查你的配置文件并重新启动postgres。 – 2014-11-04 13:59:01