Uzak Jupyter Notebook sunucusuna neden erişemiyorum?


94

Centos6.5 sunucumda bir Jupyter Notebook sunucusu başlattım ve jupyter şu şekilde çalışıyor

[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).

Jupyter'e aynı yerel alan ağından uzaktan erişmek istediğimde, açık deyin http://192.168.1.111:8045/, Jupyter sayfasını hiç açamıyorum. Bu arada uzaktaki centos sunucusuna başarıyla erişebiliyorum.

Olası sebep nedir?

Yanıtlar:


151

Jupyter_notebook_config.py dosyasını harici bağlantılara izin verecek şekilde yapılandırdınız mı ?

Varsayılan olarak, Jupyter Notebook yalnızca localhost'tan (örneğin, çalıştığı bilgisayardan) gelen bağlantıları kabul eder. Değiştirerek NotebookApp.allow_origin * 'sen izin Jupyter 'için' default' seçeneğini dışarıdan erişilmesi.

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

Ayrıca, dizüstü bilgisayarın dinleyeceği IP'leri de değiştirmeniz gerekecektir:

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


Ayrıca , bu konudaki sonraki yanıttaki ayrıntılara bakın .

Jupyter Notebook yapılandırma dosyasındaki belgeler.


10
Jupyter'ı birlikte kullanarak jupyter notebook --ip 0.0.0.0, bir yapılandırma dosyasına ihtiyaç duymadan aynı sonuca sahip çalışma zamanına karar verebilirsiniz.
janniks

Başka ek fikir var mı? Kelimenin tam anlamıyla bu soruya verilen her cevabı denedim ve hiçbiri benim için işe yaramadı. Yapılandırmaları ayarladım, harici erişime izin verdim, tüm IP'lere ve kaynaklara izin verdim ... bağlantı hala reddediliyor. Neden bu kadar zor olduğunu anlamıyorum. Windows kullanmak beni gerçekten sinirlendiriyor.
Lucas Lima

73

Yerel sunucuma aşağıda gösterilen komutu kullanarak ip ile erişmeyi başardım:

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

xx.xx.xx.xxJupyter sunucusunun yerel IP'si ile değiştirin .


27
Kullandımjupyter notebook --ip 0.0.0.0 --port 8888
Talha Junaid

1
0.0.0.0sadece localhost değil, tüm ağ arayüzlerinde dizüstü bilgisayara erişimi etkinleştirir. Aynı makinede çalıştırıyor ve ona erişiyorsanız veya önünde nginx gibi bir sunucu çalıştırıyorsanız, bunu 127.0.0.1yalnızca şu şekilde sınırlamalısınız
theferrit32

Ayrıca, EC2 gibi bir bulut bulut sunucusu üzerinde çalışıyorsanız, 8888 numaralı bağlantı noktasından gelen trafiğe izin vermek için güvenlik grubunuzu düzenlediğinizden emin olun.
Mad Scientist

@Teo Kok Keong: Komutu nereye giriyorsunuz? Kabuk isteminde mi?
MSIS

37

James023 zaten doğru cevabı verdi. Sadece biçimlendiriyorum

jupyter_notebook_config.py dosyasını önceden yapılandırmadıysanız

Adım 1: bu satırı konsola yazarak dosyayı oluşturun

jupyter notebook --generate-config

Adım 2: Değerleri düzenleyin

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

(aşağıdaki iki satırı herhangi bir yere ekleyin çünkü varsayılan değerler yine de yorumlanmıştır)

c.NotebookApp.allow_origin = '*' # tüm kökenlere izin ver

c.NotebookApp.ip = '0.0.0.0' # tüm IP'lerde dinle

Adım 3: Gedit'i kapattığınızda, bağlantı noktanızın bloke olması durumunda

sudo ufw allow 8888 # varsayılan jupyter bağlantı noktanız olan tcp: 8888 bağlantı noktanızı etkinleştirin

4.Adım: Bir şifre belirleyin

jupyter notebook password # şifre ister

Step5: Jupyter'ı başlatın

jupyter notebook

ve http://xxx.xxx.xxx.xxx:8888/login gibi bağlanabilir misiniz ?


Bir şey daha. Hala sorunlarla karşılaşıyorsanız, önce c.NotebookApp.allow_originekleyin c=get_config(). Ayrıca httpskullanmak yerine kişisel bilgisayarınızda bağlantıyı açarken http. bu yüzden bir şey açacak http://external_ip_from_GCP_console:8888. kullanarak http, onun küçük bir detay ve overlppk kolay önemlidir. Cevabı derlediğiniz için @Koushik'e teşekkürler. Cevabınızı onayladım çünkü benim için çalıştı.
StatguyUser

şifre nerede saklanıyor? jupyter_notebook_config.py4. adımda şifreyi ayarladıktan sonra bulamıyor gibi görünüyor
liang

19

RedHat 7'de Jüpiter komutunu çalıştırmadan önce belirli bağlantı noktasına izin vermemiz gerekiyor. Liman olduğunu söyle 8080.

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

O zaman normal şekilde çalıştırabiliriz. Örneğin, şunu kullanarak:

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

ya da ne istersen.


teşekkürler, benim sistemim Centos 7 ama jupyter hizmet etmekte sorun yaşıyor. ilk önce güvenlik duvarını devre dışı bıraktım ama yine de hizmet edemiyorum ama özellikle ikinci satırı uygulayarak ===> jupyter notebook --ip 0.0.0.0 - tarayıcı yok --port = 8080 --allow-root sorunu çöz. Şu an çalışıyor.
RedArrow

dizüstü bilgisayarı belirtilen ipve portmükemmel bir şekilde çalıştırın
Wenmin Wu

Bu benim için jupyterhub ile erişim sorunlarını da çözdü. Jupyterhub'ın kullandığı standart bağlantı noktası 127.0.0.1 dışındaki bağlantılara izin vermiyor
Eduardo Pignatelli

Ec2 bulut sunucuları için de çalışır. Bu biraz kafa karıştırıcı çünkü güvenlik grubunun bu bağlantı noktasına izin vermesi ancak bu parametrelerle çalıştırılana kadar sunucu kullanılamaz.
Vadim

10

Komut satırınızdan, jupyter sunucunuzun normal şekilde çalıştığını görebiliriz.Uzaktaki jupyter sunucunuza erişememenizin nedeni, uzaktaki centos6.5 sunucunuzun güvenlik duvarı kurallarının yerel tarayıcınızdan gelen isteği engellemesi, yani tcp'nizi engellemesidir: 8045 bağlantı noktası.
sudo ufw allow 80 # enable http server
sudo ufw allow 443 # enable https server
sudo ufw allow 8045 # enable your tcp:8045 port
sonra jupyter'ınıza tekrar erişmeyi deneyin.


Belki de jupyter_notebook_config.pydosyanızda o yeri açıklamanız ve düzenlemeniz gerekiyor :

c.NotebookApp.allow_remote_access = True

ve hatta kapatmaya VPN eğer varsa.


8

Alternatif olarak, sunucuya bir tünel oluşturabilirsiniz:

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

Ardından 127.0.0.1:8888tarayıcınızda açın .

Ayrıca bir kimlik_dosyanız -i <your_key>yoksa atlarsınız .


Birinin farklı bağlantı noktalarını kullanması durumunda 8888:127.0.0.1:8888, birincisi 8888yerel makinedeki bağlantı noktası, sonuncusu uzak makinedeki bağlantı noktasıdır.
Yuen Tau

4

Diğer neden bir güvenlik duvarı olabilir. Aynı sorunu yaşadık bile

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

Ardından yeni centOS7'mizde bir güvenlik duvarı olduğu ortaya çıkıyor.


2

Windows 10'da Anaconda3 kullanıyorum. Kurduğunuzda "Çevre Değişkenlerine ekle" seçeneğini işaretlemeyi unutmayın.


Önkoşul: Bir dizüstü bilgisayar yapılandırma dosyası

Bir dizüstü bilgisayar yapılandırma dosyanız olup olmadığını kontrol edin jupyter_notebook_config.py. Bu dosyanın varsayılan konumu, ana dizininizde bulunan Jupyter klasörünüzdür:

  • Pencereler: C:\\Users\\USERNAME\\.jupyter\\jupyter_notebook_config.py
  • OS X: /Users/USERNAME/.jupyter/jupyter_notebook_config.py
  • Linux: /home/USERNAME/.jupyter/jupyter_notebook_config.py

Zaten bir Jupyter klasörünüz yoksa veya Jupyter klasörünüz bir dizüstü bilgisayar yapılandırma dosyası içermiyorsa, aşağıdaki komutu çalıştırın:

$ jupyter notebook --generate-config

Bu komut, gerekirse Jupyter klasörünü oluşturacak jupyter_notebook_config.pyve bu klasörde dizüstü bilgisayar yapılandırma dosyasını oluşturacaktır .


Varsayılan olarak, Jupyter Notebook yalnızca localhost'tan bağlantıları kabul eder.

jupyter_notebook_config.pyTüm gelen bağlantıları kabul etmek için dosyayı aşağıdaki gibi düzenleyin:

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

Ayrıca, dizüstü bilgisayarın dinleyeceği IP'leri de değiştirmeniz gerekecektir:

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


0

Conda ortamını kullanıyorsanız, yapılandırma dosyasını yeniden kurmalısınız. Ve dosya konumu böyle bir şey olacak. Conda'da env'i oluşturduktan sonra yapılandırma dosyasını kurmadım ve bu benim bağlantı sorunumdu.

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


0

Aynı sorunu yaşıyorum ama yukarıdaki geçici çözümlerin hiçbiri benim için işe yaramıyor. Ama aynı konfigürasyona sahip bir docker versiyonu jupyter notebook kurarsam, benim için çalışır.

Durumum için, iptables kuralı sorunları olabilir. Bazen sadece ufwsunucunuza giden tüm yollara izin vermek için kullanabilirsiniz. Ama benimki sadece iptables -Ftüm kuralları temizlemek için. Ardından iptables -L -nçalışıp çalışmadığını kontrol edin .

Sorun çözüldü.


0

jupyter_notebook_config dosyasında aşağıdakileri düzenleyin
gerçek bilgisayar IP adresini girin
c.NotebookApp.ip = '192.168.xx'
c.NotebookApp.allow_origin = '*'

istemci tarafında oturum açma parolası ile
jupyter dizüstü bilgisayarı başlatın jupyter dizüstü bilgisayar parolası

Tarayıcıda şifre girişi ayarladıktan sonra uzak sunucunun ip adresini ve ardından bağlantı noktasını yazın. örnek 192.168.1.56:8889


0

Aşağıdaki adımı yapmayı deneyin:

Aşağıdaki komut okuma / yazmayı düzeltir

    sudo chmod -R a+rw /home/ubuntu/certs/mycert.pem

0

Benzer bir sorunla karşılaştım ve aşağıdakileri yaptıktan sonra bunu çözdüm:

  1. jupyter yapılandırma dosyanızı kontrol edin: bu, burada ayrıntılı olarak açıklanmıştır; https://testnb.readthedocs.io/en/stable/examples/Notebook/Configuring%20the%20Notebook%20and%20Server.html

- jupyter sunucusunun yerel makine IP'nizi nasıl dinleyeceğini öğrenmek için yukarıdaki bağlantıdan ihtiyacınız olacak - yerel makine IP'nizi bilmeniz gerekecek (bunu öğrenmek için ubuntu'da "ifconfig -a" kullanıyorum) - lütfen centos6'yı kontrol edin

yapılandırmanızı ayarlamayı bitirdikten sonra, jupyter dizüstü bilgisayarı yerel IP'nizde çalıştırabilirsiniz: jupyter dizüstü --ip = * - tarayıcı yok

lütfen * yerine IP adresinizi yazın: jupyter notebook --ip = 192.168.xx - tarayıcı yok

artık jupyter sunucunuza bu ip: bağlantı noktasını kullanarak yönlendiriciye bağlı herhangi bir aygıttan erişebilirsiniz (bağlantı noktası genellikle 8888'dir, yani benim durumumda, sunucuma diğer aygıtlardan erişmek için "192.168.xx: 8888" kullandım)

şimdi bu sunucuya genel IP'den erişmek istiyorsanız, yapmanız gerekenler:

  1. genel IP'nizi bulun (google'a IP'm nedir yazın)
  2. Aynı yönlendiriciye bağlı olmayan herhangi bir cihazdan sunucuya erişmek için yerel IP'niz yerine bu IP adresini kullanın lütfen unutmayın: linux sunucunuz Sanal makine üzerinde çalışıyorsa, yönlendiricinizi VB'nize genel IP'lerden erişime izin verecek şekilde ayarlamanız gerekir, ayarlar, yönlendirici türüne bağlıdır. aksi takdirde, yönlendiricinize bağlı olmayan herhangi bir cihazdan genel IP ve onun için ayarlanan portu kullanarak veya aynı yönlendiriciye bağlı herhangi bir cihazdan yerel IP'nizi ve port setini kullanarak sunucuya erişebilmelisiniz!

-1

Bu sizin özel IP adresiniz mi? Öyleyse, herkese açık olanı kullanmanız gerekir. Ne olduğunu öğrenmek için ipchicken'a gidin. Aynı LAN'da olduğunuzu biliyorum, ancak herhangi bir sorunu çözüp çözmediğini görmek için bunu deneyin.


-2

Hala takılı kalan herkes - bu sayfadaki talimatları izleyin .

Temel olarak:

  1. Başlangıçta AWS tarafından açıklanan adımları izleyin.

    1. SSH'yi normal şekilde açın.
    2. source activate python3
    3. Jupyter Defter
  2. Hiçbir şeyi kesip yapıştırmayın. Bunun yerine yeni bir terminal penceresi açın olmadan ilkini kapanış.

  3. Yeni pencerede, yukarıdaki bağlantıda açıklandığı gibi SSH komutunu girin.

  4. Bir web tarayıcısı açın ve http://127.0.0.1:8157 adresine gidin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.