最近在工作中需要用到遠端的伺服器來做多GPU并行的學習與測試,想采用jupyter來編輯文檔和代碼。由VScode的遠端開發功能,我突然想jupyter是不是也支援這個功能。搜了一下,果然是有的。折騰了一番,把過程記錄下來,希望幫到大家(參考網頁:https://hsaghir.github.io/data_science/jupyter-notebook-on-a-remote-machine-linux/):
1. 給遠端伺服器配置ssh免密通路
由于這是正常操作,我不重複啰嗦了,給一個參考連結:https://blog.csdn.net/cynthrial/article/details/82319498。
假定我們給遠端伺服器的别名為 GPU_remote,下面會引用這個名稱。
2. 在遠端主機上運作(前提是在遠端伺服器上安裝好jupyter哈):
jupyter notebook --no-browser --port=8889
這行指令的意思是,在遠端主機端口8889上打開jupyter notebook服務,而不打開浏覽器,因為我們需要在本地的機器上連接配接到遠端伺服器。
3. 在本地機器上運作下面的指令做端口轉發(前提是裝好ssh哈):
ssh -N -L localhost:8888:localhost:8889 GPU_remote
這行指令的意思是,将遠端伺服器的8889端口轉發到本地機器8888端口,也就将遠端伺服器的jupyter服務映射到了本地機器上了。
4. 然後打開本地浏覽器,在網址欄輸入:
localhost:8888
浏覽器跳出這個界面:

這裡需要驗證,我們可以回到遠端伺服器上,運作指令:
jupyter notebook list
在輸出中,找到token字段,将後面的一串字元複制粘貼到上述頁面上,然後login,就可以直接打開遠端jupyter了。