(mac)VSCode遠程編輯

環境配置

之前就說要搭這樣一個環境,因爲本地調試感覺要修改很多本地的參數什麼的,怕跟Mac自帶的一些配置給衝突,所以就還是想在vps上調試,然後在本地VSCode修改代碼。

發現這個輕量級IDE真的是很強大,我能想到的功能,好像都已經有對應的插件了。

rmate安裝

這個是之前就在vps上安裝過的,應該過程中沒遇到什麼問題。

wget https://raw.githubusercontent.com/sclukey/rmate-python/master/bin/rmate
chmod +x ./rmate
mv ./rmate /usr/local/bin/rmate

Remote VSCode插件安裝

安裝好這個插件,然後重啓使其生效。
Command + Shift + P輸入Remote,點擊Remote: Start Server
在終端連接vps:

ssh -R 52698:127.0.0.1:52698 [email protected] -i private_key  //因爲我是使用密鑰登錄vps,所以要有-i參數

然後在終端(即vps中)輸入指令:
rmate -p 52698 filename
VSCode就會自動打開這個文件。

原理

查了一下,主要是做了一個SSH反向連接。rmate的資料很少,都是使用方面的,沒有找到介紹原理的。
接下來寫的都是我理解的…以後如果發現不對的話,我會再來更正的:

在本地執行
ssh -R [服務器IP或省略]:[服務器端口]:[客戶端側能訪問的IP]:[客戶端側能訪問的IP的端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]
指令,其實是建立了一個反向連接隧道,使得在ssh訪問服務器的52698端口時,會被最終轉發到本地的52698端口,當然這些端口都是可以隨意設置的。
ssh -R 52698:localhost:52698 [email protected]

我感覺應該是vps通過執行rmate -p 52698 filenamefilename文件內容以某種形式通過52698端口發送,然後52698ssh 22端口之間有個映射關係,這些文件又從22端口發送給本地與22端口建立ssh連接的端口(圖中的51127),然後這個端口再將文件內容發送到本地的52698端口,VSCode的插件負責對這個端口接收到的數據進行處理,從而將傳輸過來的內容顯示到文件上。

抓取了一下在vps執行rmate之後的流量包。
在這裏插入圖片描述

??也看不出來啥東西。
在這裏插入圖片描述

這個圖是在發起SSH反向連接時的連接情況,和關閉SSH反向連接後的連接情況。

SSH反向連接經常被用來做內網穿透,網上搜這個的時候會看到很多介紹內網滲透的具體過程的。emm…按那個說的意思,應該是在本地執行了SSH -R指令之後就可以在VPS上請求SSH連接本地了。但是我試了一下不行…不知道是哪裏的問題,沒有再深究了。

(這個原理介紹的好草率。??)

知乎內網穿透:在公網訪問你家的 NAS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章