SSH 內(nèi)網(wǎng)穿透實現(xiàn)遠(yuǎn)程桌面

兩個局域網(wǎng)的主機要進(jìn)行遠(yuǎn)程桌面娶视,必須進(jìn)行內(nèi)網(wǎng)穿透告抄。frp 是一個不錯的選項菱皆。但其實不依賴外部的工具汤求,僅僅利用系統(tǒng)的 SSH 也能實現(xiàn),而且在安全性上可能會更好肴楷。

最終架構(gòu)

參與該網(wǎng)絡(luò)的各個機器水由、端口、執(zhí)行的命令及其順序如下圖所示:


實現(xiàn)步驟

假設(shè)我們現(xiàn)在在辦公室有一臺 MacOS 主機 C赛蔫,要連接家里的 MacOS 主機 A砂客。

  1. 購買一臺公網(wǎng)服務(wù)器 B泥张,且具有公網(wǎng) IP。帶寬可能要的比較大鞠值,見下文的說明媚创。假設(shè)公網(wǎng) IP 為 123.1.2.3,其 SSHD 端口為 22彤恶。
  2. 在主機 A 上钞钙,開啟 VNC 服務(wù):前往 System Preferences->Share,勾選 Screen Share声离。它會監(jiān)聽本機的 5900 端口芒炼。
  3. 在主機 A 上,開啟 SSHD 服務(wù):前往 System Preferences->Share术徊,勾選 Remote Login本刽。它會監(jiān)聽本機的 22 端口。
  4. 在主機 A 上赠涮,開啟 SSH 反向隧道:ssh -gNTR 127.0.0.1:7000:127.0.0.1:22 root@123.1.2.3盅安。這里相當(dāng)于在公網(wǎng)服務(wù)器 B 上開了一個新的 SSHD 服務(wù)代理,其端口是 7000(這里是示例端口世囊,可以自己修改别瞭,下同)。
  5. 在公網(wǎng)服務(wù)器 B 上株憾,通過 7000 端口代理的 SSHD 服務(wù)蝙寨,建立一個到主機 A 的 VNC 服務(wù)的反向代理:ssh -p 7000 -N -L 127.0.0.1:5900:127.0.0.1:5900 admin@127.0.0.1(admin 表示主機 A 的登錄用戶名,請改成自己使用的)嗤瞎。這里就相當(dāng)于公網(wǎng)服務(wù)器 B 提供了一個 VNC 服務(wù)墙歪,其端口為 5900。
  6. 在主機 C 上贝奇,建立一個到公網(wǎng)服務(wù)器 B 的 VNC 服務(wù)的反向代理:ssh -N -L 127.0.0.1:5900:127.0.0.1:5900 root@123.1.2.3虹菲。這里就相當(dāng)于主機 C 提供了一個 VNC 服務(wù),其端口為 5900掉瞳。
  7. 在主機 C 上毕源,打開 Finder->Go->Connect to Server,填寫 vnc://127.0.0.1陕习,然后在彈出的用戶密碼框中輸入遠(yuǎn)程主機的登錄用戶名(如示例的 admin)及其密碼霎褐,就可以訪問咯「昧停或者用命令行打開:open vnc://127.0.0.1:5900

當(dāng)用戶進(jìn)行遠(yuǎn)程桌面時冻璃,比如移動一下鼠標(biāo),此時其請求數(shù)據(jù)流向為 C:127.0.0.1:5900 -> B:123.1.2.3:22 -> B:127.0.0.1:5900 -> B:127.0.0.1:7000 -> B:123.1.2.3:22 -> A:127.0.0.1:22 -> A:0.0.0.0:5900。

效果

以上所有的端口都是本地 127.0.0.1 的省艳,除了公網(wǎng)服務(wù)器 B 需要對外暴露 SSHD 端口(22)娘纷,無需再暴露任何其他主機、其他端口跋炕,而且使用 OpenSSH 加密通信數(shù)據(jù)赖晶,相對來說比較安全。當(dāng)然上面用了公網(wǎng)服務(wù)器的 root 用戶枣购,你也可以新建一個低權(quán)限用戶來做這個嬉探,進(jìn)一步提升安全性擦耀。

但是也存在一些需要關(guān)注的問題棉圈、優(yōu)化的地方。最大的一個問題就是卡頓眷蜓。在 1Mbit/s(其實只有 100KB)的公網(wǎng)帶寬服務(wù)器上分瘾,效果一般。打字什么的沒什么問題吁系。要是傳送文件德召,擠占帶寬后會導(dǎo)致屏幕完全沒法操作。瀏覽網(wǎng)頁比較卡頓汽纤,可以看到明顯的延遲(尤其是滾動頁面時)上岗。這一點相比 TeamViewer 免費版來說都差很多。很大的原因可能還是 VNC 的協(xié)議不如 TeamViewer蕴坪,OpenSSL 的加密也比較重肴掷。公網(wǎng)帶寬提升到 10Mbit/s 可能會比較流暢,當(dāng)然還要確保家里的電腦的上傳帶寬也足夠(>=10Mbit/s)背传,可以用 http://www.speedtest.cn/ 測試下網(wǎng)速呆瞻。

其他的一些問題:

  1. SSH 有時候不太穩(wěn)定,容易斷掉径玖〕掌ⅲ可以考慮使用 autossh 之類。
  2. 輸入文字時會有一個大的光標(biāo)梳星,可能是協(xié)議實現(xiàn)的問題赞赖。
  3. 使用 MacOS 自帶的 VNC 客戶端,復(fù)制文件只能通過拖拽方式冤灾,無法直接 CMD+C薯定、CMD+V。但復(fù)制文字可以用快捷鍵瞳购。
  4. 如果遠(yuǎn)程主機配置了屏保话侄,有時候取消屏保特別慢。這個時候可以先斷開連接,重新連年堆⊥毯迹可能還是帶寬不足的并發(fā)癥。

這個方式一般來說作為 TeamViewer 免費版的一個備份還可以变丧。有時候 TeamViewer 在電腦屏毖抗罚或鎖屏或最小化時,無法連接上痒蓬⊥妫可以通過本方法先登錄遠(yuǎn)程主機來排查解決。Windows 及其 RDP 協(xié)議的也差不多類似攻晒,只是把上面 VNC 的部分替換成 RDP顾复,使用 Microsoft Remote Desktop 等客戶端來連接即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲁捏,一起剝皮案震驚了整個濱河市芯砸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌给梅,老刑警劉巖假丧,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異动羽,居然都是意外死亡包帚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門运吓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渴邦,“玉大人,你說我怎么就攤上這事羽德〖该В” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵宅静,是天一觀的道長章蚣。 經(jīng)常有香客問我,道長姨夹,這世上最難降的妖魔是什么纤垂? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮磷账,結(jié)果婚禮上峭沦,老公的妹妹穿的比我還像新娘。我一直安慰自己逃糟,他們只是感情好吼鱼,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布蓬豁。 她就那樣靜靜地躺著,像睡著了一般菇肃。 火紅的嫁衣襯著肌膚如雪地粪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天琐谤,我揣著相機與錄音蟆技,去河邊找鬼。 笑死斗忌,一個胖子當(dāng)著我的面吹牛质礼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播织阳,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼眶蕉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了陈哑?” 一聲冷哼從身側(cè)響起妻坝,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤伸眶,失蹤者是張志新(化名)和其女友劉穎惊窖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厘贼,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡界酒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嘴秸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毁欣。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岳掐,靈堂內(nèi)的尸體忽然破棺而出凭疮,到底是詐尸還是另有隱情,我是刑警寧澤串述,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布执解,位于F島的核電站,受9級特大地震影響纲酗,放射性物質(zhì)發(fā)生泄漏衰腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一觅赊、第九天 我趴在偏房一處隱蔽的房頂上張望右蕊。 院中可真熱鬧,春花似錦吮螺、人聲如沸饶囚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萝风。三九已至熊咽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闹丐,已是汗流浹背横殴。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卿拴,地道東北人衫仑。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像堕花,于是被迫代替她去往敵國和親文狱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353