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.
Haben Sie Postgres selbst aktiviert, um Remoteverbindungen zuzulassen? Überprüfen Sie Ihre 'pg_hba.conf' – donkopotamus
Ich habe mit den Konfigurationsinformationen aktualisiert. Danke für den Vorschlag. – Escher