使用 Jupyter Notebooks 構建一個遠程管理控制台
SSH 是一個強大的遠程管理工具,但有些細節還不夠好。編寫一個成熟的遠程管理控制台聽起來好像是一件很費勁的事情。當然,開源社區中肯定有人已經寫了一些東西吧?
是的,他們已經寫出來了,它的名字是 Jupyter。你可能會認為 Jupyter 是那些數據科學家用來分析一周內的廣告點擊趨勢之類的工具。這並沒有錯,它確實是的,而且它是一個很好的工具。但這僅僅刻畫是它的表面。
關於 SSH 埠轉發
有時,你可以通過 22 埠進入一台伺服器。一般你也連接不到其他埠。也許你是通過另一個有更多訪問許可權的「堡壘機」,或者限制主機或埠的網路防火牆訪問 SSH。當然,限制訪問的 IP 範圍是有充分理由的。SSH 是遠程管理的安全協議,但允許任何人連接到任何埠是相當不必要的。
這裡有一個替代方案:運行一個簡單的 SSH 埠轉發命令,將本地埠轉發到一個「遠程」本地連接上。當你運行像 -L 8111:127.0.0.1:8888
這樣的 SSH 埠轉發命令時,你是在告訴 SSH 將你的本地埠 8111
轉發到它認為的「遠程」主機 127.0.0.1:8888
。遠程主機認為 127.0.0.1
就是它本身。
就像在《芝麻街》節目一樣,「這裡」是一個微妙的詞。
地址 127.0.0.1
就是你告訴網路的「這裡」。
實際動手學習
這可能聽起來很混亂,但運行比解釋它更簡單。
$ ssh -L 8111:127.0.0.1:8888 moshez@172.17.0.3
Linux 6ad096502e48 5.4.0-40-generic #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Aug 5 22:03:25 2020 from 172.17.0.1
$ jupyter/bin/jupyter lab --ip=127.0.0.1
[I 22:04:29.771 LabApp] JupyterLab application directory is /home/moshez/jupyter/share/jupyter/lab
[I 22:04:29.773 LabApp] Serving notebooks from local directory: /home/moshez
[I 22:04:29.773 LabApp] Jupyter Notebook 6.1.1 is running at:
[I 22:04:29.773 LabApp] http://127.0.0.1:8888/?token=df91012a36dd26a10b4724d618b2e78cb99013b36bb6a0d1
<刪節>
埠轉發 8111
到 127.0.0.1
,並在遠程主機上啟動 Jupyter,它在 127.0.0.1:8888
上監聽。
現在你要明白,Jupyter 在撒謊。它認為你需要連接到 8888
埠,但你把它轉發到 8111
埠。所以,當你把 URL 複製到瀏覽器後,但在點擊回車之前,把埠從 8888
修改為 8111
。
![Jupyter remote management console](/data/attachment/album/202009/12/115223rq95gpkzsp42aqzp.png "Jupyter remote management console")
這就是你的遠程管理控制台。如你所見,底部有一個「終端」圖標。點擊它可以啟動一個終端。
![Terminal in Jupyter remote console](/data/attachment/album/202009/12/115223v1gl2lq23glgqoag.png "Terminal in Jupyter remote console")
你可以運行一條命令。創建一個文件會在旁邊的文件瀏覽器中顯示出來。你可以點擊該文件,在本地的編輯器中打開它。
![Opening a file](/data/attachment/album/202009/12/115224j7i50v0v90h5gmve.png "Opening a file")
你還可以下載、重命名或刪除文件:
![File options in Jupyter remote console](/data/attachment/album/202009/12/115227jb7s5rkprer2pdew.png "File options in Jupyter remote console")
點擊上箭頭就可以上傳文件了。那就上傳上面的截圖吧。
![Uploading a screenshot](/data/attachment/album/202009/12/115229yppzee2m3mv6mpu2.png "Uploading a screenshot")
最後說個小功能,Jupyter 可以讓你直接通過雙擊遠程圖像查看。
哦,對了,如果你想用 Python 做系統自動化,還可以用 Jupyter 打開筆記本。
所以,下次你需要遠程管理防火牆環境的時候,為什麼不使用 Jupyter 呢?
via: https://opensource.com/article/20/9/remote-management-jupyter
作者:Moshe Zadka 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive