2014-06-30 17 views
5

Sto provando a eseguire un notebook ipython dal mio server remoto (Ubuntu 14.04 64 bit su Amazon EC2).Esegui notebook ipython da un server remoto

ho posso accesso a ipython notebook tramite SSH tunneling, come descritto nella coderwall blog:

remote$ipython notebook --no-browser --port=8889

local$ssh -N -f -L localhost:8888:localhost:8889 [email protected]_host

Comunque non può avere un facile accesso tramite il protocollo http, come descritto nel official doc o questo tutorial

remote$ipython notebook --no-browser --port=8889

E puntare il browser locale su http://mypublicip:8889, il browser non funziona senza preavviso.

risposta

18

Per risolvere questo problema, avevo bisogno di:

  1. eseguire il server notebook in ascolto su tutti gli indirizzi IP aggiungendo cli bandiera --ip = *:

    remote$ipython notebook --no-browser --ip=* --port=8889

  2. Aggiungi la regola in entrata all'istanza di Amazon ec2 per ascoltare la porta 8889. +-----------------+----------+------------+-----------+ | Type | Protocol | Port Range | Source | +=================+==========+============+===========+ | Custom TCP Rule | TCP | 8889 | 0.0.0.0/0 | +-----------------+----------+------------+-----------+

Certo, ora è meglio aggiungere l'autenticazione come il porto è in ascolto a tutti ip Indirizzi

+0

Sfuggire alla stella è necessario per alcune conchiglie. –

3

Come Monkpit scritto qui di seguito, la shell potrebbe tentare di glob * carattere. In tal caso si dovrebbe scrivere --ip=\* - in modo esplicito aggiungendo l'indirizzo IP a localhost anche aiutato:

ipython notebook --no-browser --ip=localhost --port=7777 
+0

Il motivo per cui questo non funziona è perché la shell prova ad espandere il glob '*'. Sostituisci con '--ip = \ *' per uscire dal glob e puoi accettare connessioni da qualsiasi IP. – Monkpit

+0

Risposta perfetta! Basta cambiare '--ip = localhost' a' --ip = yourip' e dovrebbe essere buono. – Rafay

Problemi correlati