web-dev-qa-db-fra.com

Pourquoi je ne peux pas accéder au serveur Jupyter Notebook distant?

J'ai démarré un serveur Jupyter Notebook sur mon serveur centos6.5. Et jupyter fonctionne comme

[I 17:40:59.649 NotebookApp] Serving notebooks from local directory: /root
[I 17:40:59.649 NotebookApp] 0 active kernels 
[I 17:40:59.649 NotebookApp] The Jupyter Notebook is running at:https://[all ip addresses on your system]:8045/
[I 17:40:59.649 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Lorsque je veux accéder à Jupyter à distance dans le même réseau local, disons ouvrir http://192.168.1.111:8045/, je ne peux pas ouvrir une page Jupyter du tout. En passant, je peux accéder au serveur centos distant avec succès.

Quelle est la raison possible?

24
Peng He

Avez-vous configuré le fichier jupyter_notebook_config.py pour autoriser les connexions externes? 

Par défaut, Jupyter Notebook n'accepte que les connexions de localhost (par exemple, du même ordinateur que celui sur lequel il tourne). En modifiant l'option NotebookApp.allow_Origin de l'option par défaut '' à '*', vous autorisez l'accès à Jupyter en externe.

c.NotebookApp.allow_Origin = '*' #allow all origins 

Vous devrez également modifier les adresses IP sur lesquelles le portable va écouter:

c.NotebookApp.ip = '0.0.0.0' # listen on all IPs


Documentation sur le fichier de configuration Jupyter Notebook.

54
James023

J'ai réussi à obtenir l'accès à mon serveur local par ip en utilisant la commande ci-dessous:

jupyter notebook --ip xx.xx.xx.xx --port 8888

remplacez le xx.xx.xx.xx par votre adresse IP locale du serveur jupyter.

22
Teo Kok Keong

James023 a déjà indiqué la bonne réponse . 

si vous n'avez pas déjà configuré le fichier jupyter_notebook_config.py 

Step1: générer le fichier en tapant cette ligne dans la console

jupyter notebook --generate-config

Step2: modifier les valeurs

gedit  /home/koushik/.jupyter/jupyter_notebook_config.py

(ajoutez les deux lignes suivantes n'importe où car les valeurs par défaut sont quand même commentées)

c.NotebookApp.allow_Origin = '*' #allow toutes les origines 

c.NotebookApp.ip = '0.0.0.0' # listen sur toutes les adresses IP

Step3: une fois que vous avez fermé le gedit, au cas où votre port serait bloqué 

Sudo ufw allow 8888 # active votre port tcp: 8888, qui est votre port jupyter par défaut

Step4: _ définir un mot de passe

jupyter notebook password # il sera demandé mot de passe

Step5: lance jupyter 

jupyter notebook

et vous connecter comme http://xxx.xxx.xxx.xxx:8888/login

4
Koushik Paul

L'autre raison peut être un pare-feu. Nous avons eu le même problème, même avec 

jupyter notebook --ip xx.xx.xx.xxx --port xxxx. 

Ensuite, il s’agit d’un pare-feu sur notre nouveau centOS7.

3
Dhanas chenniappan

Dans RedHat 7, nous devons autoriser le port spécifique avant d'exécuter la commande Jupiter. Dites que le port est 8080.

iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

Ensuite, nous pouvons l'exécuter normalement. Par exemple, en utilisant:

jupyter notebook --ip 0.0.0.0 --no-browser --port=8080 --allow-root

ou ce que vous aimez.

3
Vikas Gupta

À partir de votre ligne de commande, nous pouvons voir que votre serveur jupyter fonctionne normalement. La raison pour laquelle vous ne pouvez pas accéder à votre serveur jupyter distant est que les règles de pare-feu de votre serveur centos6.5 distant bloquent la demande entrante de votre navigateur local, à savoir. bloquez votre port tcp: 8045.
Sudo ufw allow 80 # enable http server
Sudo ufw allow 443 # enable https server
Sudo ufw allow 8045 # enable your tcp:8045 port
puis essayez d’accéder à nouveau à votre jupyter.

2
Hu Xixi

si vous utilisez l'environnement Conda, vous devez reconfigurer le fichier de configuration. Et l'emplacement du fichier sera quelque chose comme ça. Je n'ai pas configuré le fichier de configuration après avoir créé env dans Conda et c'était mon problème de connexion.

C:\Users\syurt\AppData\Local\Continuum\anaconda3\envs\myenv\share\jupyter\jupyter_notebook_config.py
0
scyrt

Est-ce votre adresse IP privée? Si c'est le cas, vous devrez utiliser votre version publique. Allez sur ipchicken pour savoir ce que c'est. Je sais que vous êtes sur le même réseau local, mais essayez ceci pour voir si cela résout des problèmes.

0
Lucas Buhl-Nielsen

Sinon, vous pouvez simplement créer un tunnel vers le serveur:

ssh -i <your_key> <user@server-instance> -L 8888:127.0.0.1:8888

Ensuite, ouvrez simplement 127.0.0.1:8888 dans votre navigateur.

Vous omettez également le -i <your_key> si vous n'avez pas de fichier d'identité.

0
Jordan

Quiconque est toujours bloqué - suivez les instructions sur cette page .

Fondamentalement:

  1. Suivez les étapes décrites initialement par AWS.

    1. Ouvrez SSH comme d'habitude. 
    2. source activate python3 
    3. Jupyter Notebook 
  2. Ne pas couper et coller quoi que ce soit. Ouvrez plutôt une nouvelle fenêtre de terminal sans pour autant fermer le premier.

  3. Dans la nouvelle fenêtre, entrez la commande SSH décrite dans le lien ci-dessus. 

  4. Ouvrez un navigateur Web et accédez à http://127.0.0.1:8157

0