I have an instance of RHEL 6 with a micro-free RHEL level, and after it is installed postgresql 9.2 using the yum instructions: http://yum.pgrpms.org/howtoyum.php
And I can connect locally to the PG server using this on the server:
03:46:20 root@xxx[~]$ psql -hlocalhost -p5432 -Upostgres
However, I never connected to it outside the window. The error message looks like this:
12:11:56 saladinxu@GoodOldMBP[~]$ psql -h ec2-xxx.ap-southeast-1.compute.amazonaws.com -p5432 -Upostgres psql: could not connect to server: Connection refused Is the server running on host "ec2-54-251-188-3.ap-southeast-1.compute.amazonaws.com" (54.251.188.3) and accepting TCP/IP connections on port 5432?
I tried a bunch of different ways. Here's what my configuration files look like:
/var/lib/pgsql/9.2/data/postgresql.conf:
...
/var/lib/pgsql/9.2/data/pg_hba.conf:
# TYPE DATABASE USER ADDRESS METHOD host all pgadmin 0.0.0.0/24 trust host all all [my ip]/24 md5 # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
I tried to make the above address 0.0.0.0/0, but id did not work.
And every time I made changes, I restarted by running this
service postgresql-9.2 restart
In the security group of this EC2 instance, I already see this rule:
TCP Port (Service) Source Action 22 (SSH) 0.0.0.0/0 Delete 80 (HTTP) 0.0.0.0/0 Delete 5432 0.0.0.0/0 Delete
The netstat command shows that the port is already open:
04:07:46 root@ip-172-31-26-139[~]$ netstat -na|grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN tcp 0 0 :::5432 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 14365 /tmp/.s.PGSQL.5432
To answer the bma question:
If I run the nmap command on the server locally, it looks like it is moving through the internal DNS to another host, where 5432 is open:
10:16:05 root@ip-172-31-26-139[~]$ nmap -Pnv -p 5432 ec2-54-251-188-3.ap-southeast-1.compute.amazonaws.com Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-22 10:16 EDT Nmap scan report for ec2-54-251-188-3.ap-southeast-1.compute.amazonaws.com (172.31.26.139) Host is up (0.00012s latency). rDNS record for 172.31.26.139: ip-172-31-26-139.ap-southeast-1.compute.internal PORT STATE SERVICE 5432/tcp open postgresql Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
And the iptables command gives the following output
10:16:14 root@ip-172-31-26-139[~]$ iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 25776 14M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 45 1801 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 251 15008 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 35 2016 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 21695 packets, 5138K bytes) pkts bytes target prot opt in out source destination
[Edited after adding as suggested by bma]
iptables is as follows:
11:57:20 root@ip-172-31-26-139[~]$ iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 26516 14M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 47 1885 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 255 15236 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 38 2208 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 0 0 ACCEPT tcp -- * * [my ip] 54.251.188.3 tcp spts:1024:65535 dpt:5432 state NEW,ESTABLISHED 0 0 ACCEPT tcp -- * * 0.0.0.0/0 54.251.188.3 tcp spt:5432 dpts:1024:65535 state ESTABLISHED Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 5 packets, 1124 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 54.251.188.3 [my ip] tcp spt:5432 dpts:1024:65535 state ESTABLISHED 0 0 ACCEPT tcp -- * * 54.251.188.3 0.0.0.0/0 tcp spts:1024:65535 dpt:5432 state NEW,ESTABLISHED
But I still cannot connect (same error). What could be missing here?