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?
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.
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.
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 ?
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.
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.
À 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.
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
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.
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é.
Quiconque est toujours bloqué - suivez les instructions sur cette page .
Fondamentalement:
Suivez les étapes décrites initialement par AWS.
source activate python3
Ne pas couper et coller quoi que ce soit. Ouvrez plutôt une nouvelle fenêtre de terminal sans pour autant fermer le premier.
Dans la nouvelle fenêtre, entrez la commande SSH décrite dans le lien ci-dessus.
Ouvrez un navigateur Web et accédez à http://127.0.0.1:8157