使用Jupyter Notebooks構(gòu)建一個遠程管理控制臺
把 Jupyter 變成一個遠程管理控制臺。
SSH 是一個強大的遠程管理工具,但有些細(xì)節(jié)還不夠好。編寫一個成熟的遠程管理控制臺聽起來好像是一件很費勁的事情。當(dāng)然,開源社區(qū)中肯定有人已經(jīng)寫了一些東西吧?
是的,他們已經(jīng)寫出來了,它的名字是 Jupyter。你可能會認(rèn)為 Jupyter 是那些數(shù)據(jù)科學(xué)家用來分析一周內(nèi)的廣告點擊趨勢之類的工具。這并沒有錯,它確實是的,而且它是一個很好的工具。但這僅僅刻畫是它的表面。
關(guān)于 SSH 端口轉(zhuǎn)發(fā)
有時,你可以通過 22 端口進入一臺服務(wù)器。一般你也連接不到其他端口。也許你是通過另一個有更多訪問權(quán)限的“堡壘機”,或者限制主機或端口的網(wǎng)絡(luò)防火墻訪問 SSH。當(dāng)然,限制訪問的 IP 范圍是有充分理由的。SSH 是遠程管理的安全協(xié)議,但允許任何人連接到任何端口是相當(dāng)不必要的。
這里有一個替代方案:運行一個簡單的 SSH 端口轉(zhuǎn)發(fā)命令,將本地端口轉(zhuǎn)發(fā)到一個“遠程”本地連接上。當(dāng)你運行像 -L 8111:127.0.0.1:8888
這樣的 SSH 端口轉(zhuǎn)發(fā)命令時,你是在告訴 SSH 將你的本地端口 8111
轉(zhuǎn)發(fā)到它認(rèn)為的“遠程”主機 127.0.0.1:8888
。遠程主機認(rèn)為 127.0.0.1
就是它本身。
就像在《芝麻街》節(jié)目一樣,“這里”是一個微妙的詞。
地址 127.0.0.1
就是你告訴網(wǎng)絡(luò)的“這里”。
實際動手學(xué)習(xí)
這可能聽起來很混亂,但運行比解釋它更簡單。
$ 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
<刪節(jié)>
端口轉(zhuǎn)發(fā) 8111
到 127.0.0.1
,并在遠程主機上啟動 Jupyter,它在 127.0.0.1:8888
上監(jiān)聽。
現(xiàn)在你要明白,Jupyter 在撒謊。它認(rèn)為你需要連接到 8888
端口,但你把它轉(zhuǎn)發(fā)到 8111
端口。所以,當(dāng)你把 URL 復(fù)制到瀏覽器后,但在點擊回車之前,把端口從 8888
修改為 8111
。
Jupyter remote management console
這就是你的遠程管理控制臺。如你所見,底部有一個“終端”圖標(biāo)。點擊它可以啟動一個終端。
Terminal in Jupyter remote console
你可以運行一條命令。創(chuàng)建一個文件會在旁邊的文件瀏覽器中顯示出來。你可以點擊該文件,在本地的編輯器中打開它。
Opening a file
你還可以下載、重命名或刪除文件:
File options in Jupyter remote console
點擊上箭頭就可以上傳文件了。那就上傳上面的截圖吧。
Uploading a screenshot
最后說個小功能,Jupyter 可以讓你直接通過雙擊遠程圖像查看。
哦,對了,如果你想用 Python 做系統(tǒng)自動化,還可以用 Jupyter 打開筆記本。
所以,下次你需要遠程管理防火墻環(huán)境的時候,為什么不使用 Jupyter 呢?