web-dev-qa-db-de.com

Wie akzeptiere ich Verbindungen für ipython von anderen Computern?

Ich starte ipython 0.12.1 unter Ubuntu 12.04. Sie können es im Browser über die Notebook-Oberfläche ausführen, indem Sie Folgendes ausführen:

ipython notebook --pylab

Konfigurationsdateien finden Sie in ~/.config/ipython/profile_default/. Es scheint, dass die Verbindungsparameter für jeden Kernel in ~/.config/ipython/profile_default/security/kernel-4e424cf4-ba44-441a-824c-c6bce727e585.json Stehen. Hier ist der Inhalt dieser Datei (neue Dateien werden erstellt, wenn Sie neue Kernel starten):

{
  "stdin_port": 54204, 
  "ip": "127.0.0.1", 
  "hb_port": 58090, 
  "key": "2a105dd9-26c5-40c6-901f-a72254d59876", 
  "Shell_port": 52155, 
  "iopub_port": 42228
}

Es ist ziemlich selbsterklärend, aber wie kann ich einen Server mit einer permanenten Konfiguration einrichten, damit ich die Notebook-Schnittstelle von anderen Computern im LAN verwenden kann?

53
enedene

Wenn Sie eine alte Version des Notebooks verwenden, kann Folgendes weiterhin zutreffen. Neue Versionen finden Sie in den anderen Antworten unten.


Relevanter Abschnitt der IPython-Dokumentation

Der Notebook-Server überwacht standardmäßig localhost. Wenn es für alle Computer in Ihrem LAN sichtbar sein soll, weisen Sie es einfach an, alle Schnittstellen abzuhören:

ipython notebook --ip='*'

Oder eine bestimmte IP-Adresse, die für andere Computer sichtbar ist:

ipython notebook --ip=192.168.0.123

Abhängig von Ihrer Umgebung ist es wahrscheinlich eine gute Idee, HTTPS und ein Passwort zu aktivieren , wenn Sie auf externen Schnittstellen lauschen.

Wenn Sie vorhaben, häufig öffentlich zu dienen, ist es auch eine gute Idee, ein IPython-Profil zu erstellen (z. B. ipython profile create nbserver) und bearbeite die Konfiguration entsprechend. Alles was du tun musst ist:

ipython notebook --profile nbserver

So laden Sie alle Ihre Einstellungen für IP/Port/SSL/Kennwort.

113
minrk

Die akzeptierte Antwort/Information bezieht sich auf eine alte Version. Wie kann ich den Fernzugriff auf mein neues Jupyter-Notebook aktivieren? Ich habe dich gedeckt

Generieren Sie zunächst eine Konfigurationsdatei, falls Sie diese noch nicht haben:

jupyter notebook --generate-config

Beachten Sie die Ausgabe dieses Befehls, da sie Ihnen sagen würde, wo das jupyter_notebook_config.py Datei wurde generiert. Oder wenn Sie es bereits haben, werden Sie gefragt, ob Sie es mit der Standardkonfiguration überschreiben möchten. Bearbeiten Sie die folgende Zeile:

## The IP address the notebook server will listen on.
c.NotebookApp.ip = '0.0.0.0' # Any ip

Geben Sie für zusätzliche Sicherheit eine Python/IPython-Shell ein:

from notebook.auth import passwd; passwd()

Sie werden aufgefordert, eine Kennwortzeichenfolge einzugeben und zu bestätigen. Kopieren Sie den Inhalt des Strings, der vom Formulartyp sein sollte: salt: hashed-password. Suchen und bearbeiten Sie die Zeilen wie folgt:

## Hashed password to use for web authentication.
#  
#  To generate, type in a python/IPython Shell:
#  
#    from notebook.auth import passwd; passwd()
#  
#  The string should be of the form type:salt:hashed-password.
c.NotebookApp.password = 'type:salt:the-hashed-password-you-have-generated'

## Forces users to use a password for the Notebook server. This is useful in a
#  multi user environment, for instance when everybody in the LAN can access each
#  other's machine through ssh.
#  
#  In such a case, server the notebook server on localhost is not secure since
#  any user can connect to the notebook server via ssh.
c.NotebookApp.password_required = True

## Set the Access-Control-Allow-Origin header
#  
#  Use '*' to allow any Origin to access your server.
#  
#  Takes precedence over allow_Origin_pat.
c.NotebookApp.allow_Origin = '*'

Starte dein Jupyter-Notizbuch (neu), voila!

16
cenk