2017-09-30 3 views
1

Ich habe eine neo4j-Datenbank in einer Google Cloud Compute-Instanz installiert und möchte von meinem Laptop aus eine Verbindung zur Datenbank herstellen.Konfigurieren Sie die Google Cloud Compute-Firewall für den externen Zugriff auf den DB-Server

[1] Ich Neo4j haben laufen auf Google Cloud

● neo4j.service - Neo4j Graph Database 
    Loaded: loaded (/lib/systemd/system/neo4j.service; disabled; vendor preset: enabled) 
    Active: active (running) since Sat 2017-09-30 09:33:39 UTC; 1h 3min ago 
Main PID: 2099 (java) 
    Tasks: 41 
    Memory: 504.5M 
     CPU: 18.652s 
    CGroup: /system.slice/neo4j.service 
      └─2099 /usr/bin/java -cp /var/lib/neo4j/plugins:/etc/neo4j:/usr/share/neo4j/lib/*:/var/lib/neo4j/plugins/* -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+U 
nlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC -Djdk.tls.ephemeralDHKeySize=2048 -Dunsupported.dbms.udc.source=debian -Dfile.encoding=UTF-8 org.neo4j.server.Commu 
nityEntryPoint --home-dir=/var/lib/neo4j --config-dir=/etc/neo4j 
Sep 30 09:33:40 neo4j-graphdb-server neo4j[2099]: certificates: /var/lib/neo4j/certificates 
Sep 30 09:33:40 neo4j-graphdb-server neo4j[2099]: run:   /var/run/neo4j 
Sep 30 09:33:40 neo4j-graphdb-server neo4j[2099]: Starting Neo4j. 
Sep 30 09:33:42 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:33:42.948+0000 INFO ======== Neo4j 3.2.5 ======== 
Sep 30 09:33:42 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:33:42.988+0000 INFO Starting... 
Sep 30 09:33:44 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:33:44.308+0000 INFO Bolt enabled on 127.0.0.1:7687. 
Sep 30 09:33:47 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:33:47.043+0000 INFO Started. 
Sep 30 09:33:48 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:33:48.160+0000 INFO Remote interface available at http://localhost:7474/ 
Sep 30 09:39:17 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:39:17.918+0000 WARN badMessage: 400 No URI for [email protected]{r=0,c=false,a=IDLE,uri=-} 
Sep 30 09:46:18 neo4j-graphdb-server neo4j[2099]: 2017-09-30 09:46:18.374+0000 WARN badMessage: 400 for [email protected]{r=0,c=false,a=IDLE,uri=-} 

[2] ich eine Firewall-Regel auf Google Cloud erstellt haben externen Zugriff auf den DB-Server

zu ermöglichen Das Netzwerk-Tag von "google-db-server" wurde dem Google Cloud Compute-Server hinzugefügt.

Meine Erwartung ist, dass die Regel unten wird jede externe Maschine ermöglicht Port 7474 auf der Google Cloud Compute-Instanz zu verbinden

[email protected]:~/home$ gcloud compute firewall-rules create custom-allow-neo4j --action ALLOW --rules tcp:7474 --description "Enable access to the neo4j database" --direction IN --target-tags google-db-server 

[email protected]:~/home$ gcloud compute firewall-rules list --format json 
[ 
    { 
    "allowed": [ 
     { 
     "IPProtocol": "tcp", 
     "ports": [ 
      "7474" 
     ] 
     } 
    ], 
    "creationTimestamp": "2017-09-30T00:25:51.220-07:00", 
    "description": "Enable access to the neo4j database", 
    "direction": "INGRESS", 
    "id": "5767618134171383824", 
    "kind": "compute#firewall", 
    "name": "custom-allow-neo4j", 
    "network": "https://www.googleapis.com/compute/v1/projects/graphdb-experiment/global/networks/default", 
    "priority": 1000, 
    "selfLink": "https://www.googleapis.com/compute/v1/projects/graphdb-experiment/global/firewalls/custom-allow-neo4j", 
    "sourceRanges": [ 
     "0.0.0.0/0" 
    ], 
    "targetTags": [ 
     "google-db-server" 
    ] 
    }, 

[3] Lauf nmap aus dem Beispiel Google Cloud-Servers zeigt, dass Port 7474 lokal verfügbar ist, und ich kann auf diesem Port telnet lokal

[email protected]:~$ nmap -p 22,80,443,7474 localhost 
Starting Nmap 7.01 (https://nmap.org) at 2017-09-30 10:46 UTC 
Nmap scan report for localhost (127.0.0.1) 
Host is up (0.000081s latency). 
PORT  STATE SERVICE 
22/tcp open ssh 
80/tcp open http 
443/tcp closed https 
7474/tcp open unknown 
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds 

[email protected]:~$ telnet localhost 7474 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 

[4] aber ich bin nicht in der Lage von meinem Laptop und NMA zu verbinden p zeigt Port 7474 als nicht verfügbar

[email protected]:~/home$ nmap -p 22,80,443,7474 35.201.26.52 

Starting Nmap 7.01 (https://nmap.org) at 2017-09-30 20:50 AEST 
Nmap scan report for 52.26.201.35.bc.googleusercontent.com (35.201.26.52) 
Host is up (0.28s latency). 
PORT  STATE SERVICE 
22/tcp open ssh 
80/tcp open http 
443/tcp closed https 
7474/tcp closed unknown 

Nmap done: 1 IP address (1 host up) scanned in 0.75 seconds 

So trotz der Firewall-Regel jede IP-Adresse zu ermöglichen, erstellt werden auf die Google Cloud Compute-Instanz auf tcp zu verbinden: 7474, bin ich immer noch nicht in der Lage diesen Port für den Zugriff auf von meinem Laptop.

Fehle ich einige zusätzliche Schritte?

Antwort

2

Es sieht so aus, als würde neo4j nur die Loopback-Schnittstelle abhören. Dies bedeutet, dass nur Verbindungen von derselben Maschine akzeptiert werden. Sie können dies überprüfen, indem Sie sudo netstat -lntp ausführen. Wenn Sie 127.0.0.1:7474 sehen, hören Sie nur Loopback. Es sollte 0.0.0.0:7474 sein.

können Sie dies in der neo4j-Konfiguration beheben, indem Sie dbms.connector.bolt.listen_address auf 0.0.0.0:7474 setzen. Ihre Linux-Distribution kann auch einen anderen Ort haben, um diese Konfiguration festzulegen.

+0

Dank @David, das war das Problem. Ich hätte die Dokumente zuerst unter http://neo4j.com/docs/operations-manual/current/ ... lesen sollen. – Skilly

+0

Wenn Sie meinen, dass mein Kommentar Ihre Frage vollständig beantwortet, können Sie [akzeptieren] (https: // stackoverflow. com/help/someone-answer) meine Antwort, um die Frage als beantwortet zu markieren und uns beide ein wenig Ansehensschwäche zu geben. – David

Verwandte Themen