Scenario
想在上課的時候用筆記本(Windows)遠程回實驗室的臺式機(Windows)工作,TeamViewer 莫名崩掉,尋求另一個方案。有時只要用 ssh 就行,遠程桌面也行。
jupyter notebook/lab、tensorboard 是用瀏覽器訪問的。
Notes
其實 ngrok 在 linux 和 mac 都有,只是我兩臺都是 windows。
用的是一個國內免費服務器(叫小米球?),軟件也是在它那下的,見 [1] 和 [4]。
Steps
使用教程在 [4] 有介紹,幾個平臺的都有。
in desktop
在實驗室被訪問的機器上安裝、配置 ngrok 客戶端,然後啓動,就像開着 teamviewer 等着被連。
-
去 [4] 那下個 ngrok 的客戶端軟件(比如 windows64位 版),解壓。
-
去 [5] 註冊一個帳號,獲取 token。註冊、登錄後,在頁面左邊點開
系統管理
->賬戶管理
->我的賬戶
,就會有一欄顯示小米球Token
。這個 token 等下要寫到配置文件裏。 -
解壓目錄下有給出一個
ngrok.conf
和ngrok1.conf
,都是配置文件的例子。將其中ngrok.conf
內容修改如下:server_addr: "ngrok2.xiaomiqiu.cn:5432" trust_host_root_certs: true inspect_addr: disabled auth_token: "<剛纔獲取的 token>" tunnels: ssh: remote_port: 50022 proto: tcp: 127.0.0.1:22 mstsc: remote_port: 53389 proto: tcp: 127.0.0.1:3389 jupyter: remote_port: 58888 subdomain: jupyter proto: http: 127.0.0.1:8888 tensorboard: remote_port: 56006 subdomain: tensorboard proto: http: 127.0.0.1:6006
其中:
auth_token
改成剛纔獲取的那個小米球 token;tunnels
下面寫上自己需要的隧道(對應一個服務)。其中 ssh 就是用作命令行連接的,mstsc 就是遠程桌面;remote_port
範圍要在50000
~59999
,隨便一個(見 [2],如果是自己配服務器應該就沒這限制);server_addr
默認就是它提供的免費代理服務器,不用改,除非是自己配代理服務器。
保存退出。
-
命令行啓動 ngrok,軟件就是解壓目錄下的
ngrok.exe
,命令:ngrok -config=ngrok.conf -log=ngrok.log start ssh mstsc
命令指明配置文件(就是上一步寫好那個)、日誌文件、啓動什麼隧道(
start
後面跟空格隔開的隧道名,對應配置文件裏寫的,可以一個或多個)。
可以將此命令寫到一個run.cmd
裏,方便以後啓用。
in laptop
實驗室的電腦啓動 ngrok 之後,就可以在筆記本上用 ssh 和 mstsc 遠程了。
ssh
比如用 win10 自帶的 OpenSSH Client(沒有就裝):
ssh -p 50022 <我實驗室主機的用戶名>@ngrok2.xiaomiqiu.cn
-p
指明端口,就是配置文件裏 ssh 隧道指定的remote_port
;網址就是配置文件裏的server_addr
。
mstsc
Win+R 啓動 mstsc(遠程桌面連接),計算機(C):
(即網址)那欄寫的也是配置文件裏的<server_addr>:<remote_port>
:
點連接之後就會讓輸入用戶名、密碼,搞掂。
jupyter & tensorboard
這兩個是用瀏覽起訪問的,網址是<subdomain>.<server_addr>
,其中::<remote_port>
subdomain
是配置文件裏jupyter
和tensorboard
裏設的對應值;server_addr
跟前面一樣,也不要那個端口;remote_port
,配置文件裏對應隧道設的值;
如訪問 jupyter:jupyter.ngrok2.xiaomiqiu.cn
:50002