Uruchomiłem serwer Jupyter Notebook na moim serwerze centos6.5 i jupyter działa jak
[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).
Kiedy chcę uzyskać zdalny dostęp do Jupyter w tej samej sieci lokalnej, powiedzmy otwórz http://192.168.1.111:8045/
, w ogóle nie mogę otworzyć strony Jupyter. Nawiasem mówiąc, mogę pomyślnie uzyskać dostęp do zdalnego serwera centos.
Jaki jest możliwy powód?
źródło
jupyter notebook --ip 0.0.0.0
, możesz zdecydować się na środowisko uruchomieniowe z tym samym wynikiem, ale bez potrzeby korzystania z pliku konfiguracyjnego.Udało mi się uzyskać dostęp do mojego lokalnego serwera przez ip za pomocą polecenia pokazanego poniżej:
zamień na
xx.xx.xx.xx
lokalny adres IP serwera jupyter.źródło
jupyter notebook --ip 0.0.0.0 --port 8888
0.0.0.0
umożliwi dostęp do notebooka na wszystkich interfejsach sieciowych, a nie tylko na serwerze lokalnym. Jeśli uruchamiasz go i uzyskujesz do niego dostęp na tej samej maszynie lub masz przed sobą serwer, taki jak nginx, powinieneś ograniczyć go127.0.0.1
tylko doJames023 podał już poprawną odpowiedź. Po prostu formatuję
jeśli nie skonfigurowałeś już pliku jupyter_notebook_config.py
Krok 1: wygeneruj plik, wpisując ten wiersz w konsoli
Krok 2: edytuj wartości
(dodaj w dowolnym miejscu następujące dwie linie, ponieważ wartości domyślne są i tak komentowane)
c.NotebookApp.allow_origin = '*'
# Zezwalaj na wszystkie źródłac.NotebookApp.ip = '0.0.0.0'
# nasłuchuj na wszystkich adresach IPKrok 3: po zamknięciu gedit, na wypadek gdyby twój port został zablokowany
sudo ufw allow 8888
# włącz port tcp: 8888, który jest domyślnym portem jupyterKrok 4: ustaw hasło
jupyter notebook password
# zapyta o hasłoKrok 5 : Uruchom jupyter
i połączyć się jak http://xxx.xxx.xxx.xxx:8888/login ?
źródło
c.NotebookApp.allow_origin
dodaniemc=get_config()
. Również podczas otwierania linku na komputerze osobistym, zamiasthttps
używać gohttp
. więc otworzy się coś takiegohttp://external_ip_from_GCP_console:8888
. użyciehttp
jest ważne, jest to mały szczegół i łatwy do nadpisania. Dzięki @Koushik za skompilowanie odpowiedzi. Głosowałem za twoją odpowiedzią, ponieważ zadziałała dla mnie.W RedHat 7 musimy zezwolić na określony port przed uruchomieniem polecenia Jupiter. Powiedz, że port jest
8080
.Wtedy możemy to normalnie uruchomić. Na przykład, używając:
lub cokolwiek chcesz.
źródło
ip
iport
jest doskonałyAlternatywnie możesz po prostu utworzyć tunel do serwera:
Następnie po prostu otwórz
127.0.0.1:8888
w przeglądarce.Pomijasz również,
-i <your_key>
jeśli nie masz pliku_tożsamości.źródło
8888:127.0.0.1:8888
pierwszym8888
jest port na komputerze lokalnym, a drugim jest port na komputerze zdalnym.ssh your_username@host_ip_address -L your_port:127.0.0.1:remote_port
działa w moim przypadku. Dzięki.Z linii poleceń widzimy, że Twój serwer jupyter działa normalnie. Powodem, dla którego nie możesz uzyskać dostępu do zdalnego serwera Jupyter, jest to, że reguły zapory sieciowej Twojego zdalnego serwera centos6.5 blokują przychodzące żądania z Twojej lokalnej przeglądarki, tj. Blokują Twój tcp: Port 8045.
sudo ufw allow 80 # enable http server
sudo ufw allow 443 # enable https server
sudo ufw allow 8045 # enable your tcp:8045 port
następnie spróbuj ponownie uzyskać dostęp do jupytera.
Może musisz również odkomentować i edytować to miejsce w
jupyter_notebook_config.py
pliku:a nawet wyłącz VPN, jeśli go masz.
źródło
Innym powodem może być firewall. Mieliśmy ten sam problem nawet z
notebook jupyter --ip xx.xx.xx.xxx --port xxxx.
Wtedy okazuje się, że jest to zapora ogniowa w naszym nowym centOS7.
źródło
Używam Anaconda3 w systemie Windows 10. Podczas instalacji pamiętaj o zaznaczeniu opcji „dodaj do zmiennych środowiska”.
Wymaganie wstępne: plik konfiguracyjny notatnika
Sprawdź, czy masz plik konfiguracyjny notebook,
jupyter_notebook_config.py
. Domyślną lokalizacją tego pliku jest folder Jupyter znajdujący się w katalogu domowym:C:\\Users\\USERNAME\\.jupyter\\jupyter_notebook_config.py
/Users/USERNAME/.jupyter/jupyter_notebook_config.py
/home/USERNAME/.jupyter/jupyter_notebook_config.py
Jeśli nie masz jeszcze folderu Jupyter lub jeśli folder Jupyter nie zawiera pliku konfiguracyjnego notatnika, uruchom następujące polecenie:
$
jupyter notebook --generate-config
To polecenie utworzy w razie potrzeby folder Jupyter i utworzy plik konfiguracyjny notatnika
jupyter_notebook_config.py
w tym folderze.Domyślnie Jupyter Notebook akceptuje tylko połączenia z hosta lokalnego.
Edytuj
jupyter_notebook_config.py
plik w następujący sposób, aby zaakceptować wszystkie połączenia przychodzące:c.NotebookApp.allow_origin = '*' #allow all origins
Będziesz także musiał zmienić adresy IP, na których będzie nasłuchiwał notebook:
c.NotebookApp.ip = '0.0.0.0' # listen on all IPs
źródło
jeśli używasz środowiska Conda, powinieneś ponownie ustawić plik konfiguracyjny. Lokalizacja pliku będzie podobna do tego. Nie skonfigurowałem pliku konfiguracyjnego po utworzeniu env w Conda i to był mój problem z połączeniem.
źródło
Jeśli nadal masz problemy i używasz czegoś takiego jak instancja EC2 AWS, może to być przypadek otwarcia portu przez konsolę AWS.
zobacz tę odpowiedź
źródło
Mam ten sam problem, ale żadne z powyższych obejść nie działa dla mnie. Ale jeśli skonfiguruję notebooka jupyter w wersji docker, z tą samą konfiguracją, to działa.
Z mojego punktu widzenia mogą to być problemy z regułami iptables. Czasami możesz po prostu użyć,
ufw
aby zezwolić na wszystkie trasy do twojego serwera. Ale mój tylkoiptables -F
po to, by usunąć wszystkie reguły. Następnie sprawdź,iptables -L -n
czy działa.Problem rozwiązany.
źródło
edytuj w pliku jupyter_notebook_config
rzeczywisty adres IP komputera
c.NotebookApp.ip = '192.168.xx'
c.NotebookApp.allow_origin = '*'
po stronie klienta uruchom notebook jupyter z hasłem logowania hasło
notebooka jupyter
po ustawieniu hasła zaloguj się w przeglądarce, a następnie wpisz adres IP zdalnego serwera i port. przykład 192.168.1.56:8889
źródło
Spróbuj wykonać poniższy krok:
Następujące polecenie naprawia odczyt / zapis
źródło
Czy to twój prywatny adres IP? Jeśli tak, musisz użyć swojego publicznego. Idź do ipchicken, aby dowiedzieć się, co to jest. Wiem, że jesteś w tej samej sieci LAN, ale spróbuj tego, aby zobaczyć, czy to rozwiązuje jakiekolwiek problemy.
źródło
Każdy, kto nadal utknął - postępuj zgodnie z instrukcjami na tej stronie .
Gruntownie:
Postępuj zgodnie z instrukcjami początkowo opisanymi przez AWS.
source activate python3
Nie wycinaj i nie wklejaj niczego. Zamiast tego otwórz nowe okno terminala bez zamykania pierwszego.
W nowym oknie wprowadź komendę SSH zgodnie z opisem w powyższym linku.
Otwórz przeglądarkę internetową i przejdź do http://127.0.0.1:8157
źródło