2016-04-10 9 views
0

Ich habe zwei VPSes:psycopg2/psql nicht an den Postgres verbinden db

  • Webserver 10.0.0.5
  • dbserver 10.0.0.6

ich einige Firewall-Regeln auf festgelegt haben sie:

#webserver to allow for the 10.0.0.6 dbserver 
iptables -A INPUT -p tcp -s 10.0.0.6 --dport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p tcp -d 10.0.0.6 --sport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT 

und

#dbserver to allow for the 10.0.0.5 webserver 
iptables -A INPUT -p tcp -s 10.0.0.5 --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p tcp -d 10.0.0.5 --sport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT 

Ich verwende Azure VMs mit statischen IPs. Ich glaube nicht, dass ich irgendwelche Sicherheitsregeln für ihre Firewall definieren muss, weil der Datenverkehr innerhalb der Hypervisor-Gruppe liegt (ich kann von einer VM zur anderen übergehen).

Ich kann nicht ./manage.py migrate meine Django-App, weil psycopg2 keine Verbindung zum Datenbankserver herstellen kann. (Ich glaube, meine settings.py korrekt ist.)

Der entsprechende Eintrag in pg_hba.conf:

#accept connections from the 10.0.0.0 subnet 
local all 10.0.0.0/24 trust 

Der entsprechende Eintrag in postgresql.conf:

listen_addresses = 'localhost, 10.0.0.5' 

ich mit psql auf die Verbindung herstellen können dbserver lokal. Ich kann keine Verbindung mit psql -h 10.0.0.6 -U postgres -W über das Netzwerk vom Webserver herstellen. Nur um sicherzustellen, dass es nicht die Firewall-Regeln, wenn ich alle Regeln aus dem DB-Server spülen und versuchen, aus dem Webserver zu verbinden, es sagt mir:

psql: could not connect to server: Connection refused 
Is the server running on host "10.0.0.6" and accepting 
TCP/IP connections on port 5432? 

nmap 10.0.0.6 -p5432 sagt, dass:

Starting Nmap 6.47 (http://nmap.org) at 2016-04-11 05:42 UTC 
Nmap scan report for 10.0.0.6 
Host is up (0.0026s latency). 
PORT  STATE SERVICE 
5432/tcp closed postgresql 

So hört Postgres natürlich nicht auf 5432 zu, wie es sein soll. Ich denke ich habe etwas falsch mit pg_hba.conf oder postgresql.conf, aber ich kann nicht sehen was.

Edit: Ich öffnete Port 5432 in das Subnetz 10.0.0.0/24 in der Hypervisor-Firewall für alle Fälle. Hat keinen Unterschied gemacht.

+0

Haben Sie Postgres selbst aktiviert, um Remoteverbindungen zuzulassen? Überprüfen Sie Ihre 'pg_hba.conf' – donkopotamus

+0

Ich habe mit den Konfigurationsinformationen aktualisiert. Danke für den Vorschlag. – Escher

Antwort

0

Ich habe postgresql.conf getestet und es scheint, dass listen_addresses ist die Liste der Zieladressen, nicht Quelladressen. Durch Ändern dieses Eintrags in 10.0.0.6 wurde das Problem behoben.

Verwandte Themen