Jupyter notebook版本7.4.2(這個版本AI提示我Jupyter7+(底層是 jupyter_server
2.x)
服務器開啟服務
安裝Jupyter notebook 7.4.2成功后,終端輸入
jupyter notebook --generate-config
這將在 ~/.jupyter/
目錄下生成 jupyter_notebook_config.py
文件。
進入目錄將文件名修改為jupyter_server_config.py,內容的注釋全部刪除內容改為下面的
c = get_config()# 網絡與端口設置
c.ServerApp.ip = '0.0.0.0' # 允許任意 IP 訪問
c.ServerApp.port = 8888 # 監聽端口
c.ServerApp.open_browser = False # 禁止自動打開瀏覽器
c.ServerApp.allow_remote_access = True # 允許遠程訪問
c.ServerApp.token = '' # 關閉 token 驗證# 設置密碼(格式:sha1:<salt>:<hashed_password>)
c.PasswordIdentityProvider.hashed_password = ''
然后通過下面的命令開啟服務
jupyter notebook --no-browser --port=8888
這表示在服務器的8888端口開啟服務
主機ssh連接
再打開一個主機的命令行,使用下面的命令
ssh -N -L 9913[這個地方可以自行設定四位十進制數字]:127.0.0.1:8888 ubuntu[這個地方要是你的服務器用戶]@192.168.88.146[這個地方是你的服務器地址]
比如我的
ssh -N -L 9913:127.0.0.1:8888 ubuntu@192.168.88.146
這個命令表示將主機的9913和127.0.0.1? ?ip地址映射到遠端(也就是服務器的8888端口)
然后通過主機瀏覽器輸入下面的命令即可啟用Jupyter的lab或者是輸入tree啟動傳統界面
http://127.0.0.1:9913/lab
注意
在連接過程中遇到許多BUG會使得連接不成功,我記錄一下我遇到的種種BUG
(1)服務器端口已被使用
當我們開啟服務器端口后,希望關閉服務,使用非Ctrl+C的暴力方式退出,比如Ctrl+Z退出(實際上Ctrl+Z沒有退出,只是掛起了程序),再次使用8888端口開啟服務,就會自動在8889端口開啟,如下圖紅框所示,這時我們如果還是拿主機連接,遠端就要改為8889,但我似乎記得配置文件中寫的是8888.。。。所以為了避免這種情況,我們固定拿Ctrl+C退出。
亦或者,emm,你已經一不小心掛起,而且不想重啟服務器(實際上重新連接服務器即可)。那么是我們使用
jupyter notebook list
列出所有用作開啟服務端口
OK,發現兩個端口
逐個關閉所有端口,
#查看進程PID
lsof -n -i4TCP:<port-number>
#強制關閉PID
kill -9 <PID>
等下次使用時候,直接開啟8888端口
(2)主機端口已被使用
就像剛剛所說的服務器8888端口退出不當,在下次使用8888端口開啟服務的時候會默認開啟8889端口,主機如果退出不當,也會產生這種現象。我們重啟主機,或者更改主機ssh連接的端口即可。事實上我的9913也是因為不斷連接而選取的數字,不過不用擔心,當重啟主機一切都會清空,事實上,也可以使用window下面的查看進程PID等操作,不過我不太熟悉,后面沒有過多嘗試
#查看進程PID
netstat -ano | findstr :<port-number>
(3)主機網頁連接命令
看到網上絕大多數教程都是
loaclhost:8888
實際上這個localhost指的也是127.0.0.1(GPT告訴我的額)
我心想那我是不是這樣就行了
loaclhost:9913
之后還是不行,可能是由于我是用版本的特殊性所致
Jupyter notebook版本7.4.2(這個版本AI提示我Jupyter(底層是
jupyter_server
2.x)
總之是一個讓人窒息的版本。。。
(4)登陸密碼
不管怎樣,在配置文件中,我們可以給終端設置登陸密碼
c.NotebookApp.password = 'sha1:fcf7f97ec219:fc3f70d16abf9626f6e8a9b1d84f297feebcf4f1'c.IdentityProvider.hashed_password = 'sha1:fcf7f97ec219:fc3f70d16abf9626f6e8a9b1d84f297feebcf4f1'
notebook是上面的,server是下面的,這里要注意密碼的數值務必是哈希值,不然主機瀏覽器會一直顯示密碼輸入不正確。我這個就是1234的哈希值。但是后來一直沒有成功。配置文件中直接刪除即可,就不用使用密碼登陸了。