2017-09-30 5 views
1

J'ai installé une base de données neo4j sur une instance Google Cloud Compute et je souhaite me connecter à la base de données depuis mon ordinateur portable.Configurer le pare-feu Google Cloud Compute pour autoriser l'accès externe au serveur DB

[1] Je Neo4j courir sur 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] J'ai créé une règle de pare-feu sur Google Cloud pour permettre l'accès externe au serveur DB

Le tag de réseau "google-db-server" a été ajouté au serveur Google Cloud Compute.

Mon attente est que la règle ci-dessous permettra une machine externe pour se connecter au port 7474 sur l'instance Google Cloud Compute

[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] Course à pied nmap de l'instance du serveur Google Cloud montre que le port 7474 est disponible sur place, et je peux telnet à ce port localement

[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] Cependant, je suis incapable de se connecter à partir de mon ordinateur portable et NMA p montre le port 7474 comme indisponible

[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 

Ainsi, malgré la règle de pare-feu créé pour permettre une adresse IP pour se connecter à l'instance Google Cloud Compute sur tcp: 7474, je suis toujours incapable d'accéder à ce port de mon portable.

Est-ce que je manque des étapes supplémentaires?

Répondre

2

Il semble que neo4j n'écoute que sur l'interface de bouclage. Cela signifie qu'il n'accepte que les connexions de la même machine. Vous pouvez le vérifier en exécutant sudo netstat -lntp. Si vous voyez 127.0.0.1:7474, il écoute seulement sur le bouclage. Il devrait être 0.0.0.0:7474. Vous pouvez résoudre ce problème dans la configuration neo4j en définissant dbms.connector.bolt.listen_address sur 0.0.0.0:7474. Votre distribution Linux peut également avoir un emplacement différent pour définir cette configuration.

+0

Merci @David, c'était le problème. J'aurais dû lire les docs d'abord à http://neo4j.com/docs/operations-manual/current/ ... – Skilly

+0

Si vous pensiez que mon commentaire répond entièrement à votre question, vous pouvez [accepter] (https: // stackoverflow. com/help/someone-answers) ma réponse pour marquer la question comme une réponse et nous donner à la fois un peu de réputation bosse. – David