前言:本文是寫給在校大學生的(畢竟資金有限),不過對遠程桌面控制感興趣的朋友也可以瞭解一下。
以下是主筆的碎碎念:
- “快要開學了,準大一的你是不是要為自己的大學生活準備一臺能戰四年甚至出來工作後還能再撐幾年的電腦呢?”
- "上大學後我可是要變大忙人!我肯定要一臺方便攜帶配置不需要太高的電腦就行了"
- “大學不就是換個地方玩電腦嘛,而且臺式又比較便宜,同樣的價格,筆記本配置又不如臺式機,同類的配置,筆記本性能頂多就臺式機的百分之七八十,我要上滿血配置又買不起”(一般桌面級配置,macbookpro頂配了解一下,不貴嘛!前者普遍一兩萬,後者也就五萬多,學生還能優惠兩三千買多一個妙控鍵盤和妙控板。也就是說原價的macbookpro還送妙控外設套裝,賺翻了!買到就是賺到。)
- 那麼小夥伴你是屬於哪一種呢?
- 難道我們就不能以適合的預算支出既能獲取臺式機的高性能又兼顧筆記本輕便攜帶的特點麼?當然可以!接下來就和“技術哥”一起來了解一下桌面遠程連接。
注:本篇文章我們將以外網來怎麼通過openvpn來實現非內網環境下的遠程連接著重來講。順便傳授一些額外知識。
一:市面上的那些遠程連接桌面工具
- 首先給大家介紹市面上公眾認可的幾款遠程連接桌面軟件工具:
![OpenVPN|實現遠程桌面控制](http://p2.ttnews.xyz/loading.gif)
- AnyDesk 都說最流暢 ,是teamviewer前員工基於UDP協議做的,通過服務器協商,最後數據連接通過服務器中轉,連接速度由本地網絡和遠程網絡決定。
- Splashtop 商業版每年60刀,外網連接反饋速度還可以但幀率不高 有明顯延遲感 並且需要購買付費 私人版ios軟件30RMB買斷制但是XX助手你懂的 體驗要比商業版遭得不行
- Teamviewer 目前是免費,不管是內網還是外網連接體驗都不錯。對電腦和移動設備配置有一定要求(筆者用iPhone 6P和ipadmini 1體驗下來,一句話:兩個世界)
- Top last:向日葵 體驗幾分鐘後就刪掉了
- 還有很多等等......
但這就這些軟件也有它存在的弊端:
- AnyDesk是國外軟件,服務器在國外。因此外網體驗不能說太理想,基本連不上沒有黑屏功能 即使內網體驗很棒 但完全沒意義了。
- Splashtop 需要收費,而且延遲雖然不算高但是即便是兩三秒的延遲也是很難接受的
- Teamviewer 確實強大,外網延遲很小,基本可以說是同步了
最終的總結:雖說遠程桌面連接的技術已經有很成熟的軟件公司在營運,並且都有黑屏功能和禁止被控端輸入可以一定程度保護自己的隱私。但也有一些電腦不知道為何不能使用黑屏功能,而這類軟件終究只是普通的畫面捕捉傳輸工具,並且還要容忍被軟件套死的約束,作為一個程序猿的角度來說這樣的實現方式我是拒絕的。
![OpenVPN|實現遠程桌面控制](http://p2.ttnews.xyz/loading.gif)
二:接下來是技術哥的方案
(1)我們需要的設備配置
- 首先 ,電腦使用win10的遠程桌面連接功能(一般中等的配置已經可以完全滿足作為輸出端的性能要求了)
- 系統 :win10專業版、企業版(家庭版雖然沒有自帶這個功能,當然是可以通過修改策略組和創建註冊表來補充這個功能,但這又是一個巨坑,作為經常摔坑的人來說,好好的幹嘛非得去找坑踩呢。)
- 移動設備使用window的RemoteDesktop client的app 因為我們的電腦一般都是用window系統那麼對於移動設備來說我用微軟家的Remote Desktop clients是為了最大的兼容支持。並且當你移動設備連接電腦的時候,電腦是會進入鎖定模式的。也就是要麼你用電腦操作桌面要麼是自己的電腦跟移動設備連接。奔著這一點去,遠程桌面連接確實是是我的不二之選。
注意:只有給電腦登錄賬號設置密碼,才可以成功遠程連接到電腦。這就是微軟自帶功能和自家軟件相比那些第三方軟件的優勢所在,至少安全性和隱私權是掌握在自己手裡而不是第三方來的承諾。
(2)我們需要連接外網
- 那麼最基本的軟件(Remote Desktop client)我們有了,電腦和移動設備我們也有了。那麼我們就可以通過內網環境體驗一下我們在最順暢的網絡環境下設備硬件配置是否達到符合我們流暢操作的要求。事實證明流暢度是要比top前三還要絲滑的,並且當你移動設備登陸的時候,電腦就會進入鎖屏狀態,這樣在操作隱私上就得到了保護。
- 萬事俱備只欠東風,接下來我們重中之重就是要解決外網的問題了,而這也是最難最令人頭痛的事情。因為我們知道在複雜的網絡世界中層層疊疊,根據tcp/ip的網絡結構你永遠不知道有多少個上層路由服務器在駕馭著你。稍微細想就如你兩臺電腦放在一起,連著不一樣的內網。假如它們的網絡節點在上面七層、八層、十層的路由服務器中,那它們直接交換數據是不是就要A電腦往上走,走到節點路由服務器然後又往下傳到B電腦?看似近在眼前,實則遠在天邊。
- 那麼要實現這個遠程連接我們就要根據上述情況在電腦上設置走一遍這條路?相信我,瞭解一下局域網、廣域網、城域網、因特網。你就不會這麼幹了,並且也十分不科學。
(3)搭建服務器的重重困難
- 那麼有人說了不就是一個內網穿透技術嘛。是的,目前市面上有花生殼、nat123(主流軟件)提供內網穿透服務。但別忘了這些軟件也是要需要收費,就如花生殼開通服務貴就算了,帶寬還少,如果要實現teamviewer 的順暢千兆的帶寬都不為過,何況人家teamviewer還不是靠這來盈利,而你在花生殼提帶寬就要加錢,還不是一般的貴,一般人明顯消費不起。
- 所謂羊毛出自羊身上,不管是上述的直接提供遠程連接軟件還是內網穿透服務軟件,最終的成本費用還不是讓消費者自己付麼?雖然有便有貴,但長期來講對個人來說是一筆不划算的費用。這也是遠程桌面連接技術明明是一個這麼好的技術但也無法普及大眾更無法一絲動搖筆記本電腦市場的無奈。
- 既然這些軟件的實現原理,內網穿透原理都知道了,那麼我們只要有一個自己的服務器在 搭建ngrok服務器進行端口映射實現內網穿透不就可以了嘛。且不說ngrok服務器容不容易搭建還需要懂得一點GO語言的開發以便將來出現問題的時候進行維護。對於沒有學過編程的人來說十分的不友好。
- 當然講到服務器當然離不開現成的NATAPP隧道,NATAPP可以註冊用戶購買免費的穿透域名來使用實現遠程控制。但是由於是免費的隧道帶寬必然是很小的。因此遠程操作體驗必然也是糟糕的。其實還有sunny-Ngrok這家隧道公司哦,相比NATAPP,sunny的帶寬比較良心10塊錢就能租用200兆帶寬的Ngrok服務器。
(4)實現方案選用OPENVPN
- 其實講了這麼多,不管我們是用現成的軟件,還是去找提供內網穿透服務的運作商。整套原理的實現方案是不變的,無非就是你實現的過程逐層簡化,中間流經服務器交換的次數減少而已。那麼最後就來講一下為什麼我們會採用OPENVPN的實現方案吧:
- VPN相信大家也不陌生,最常用的就是翻牆去看外面的世界。除此之外就沒有人著重其他用途了。使用VPN不僅將中間服務器交換次數降到最低,還相比繁瑣的搭建設置配置更加的簡化。其實treamviewer之所以能將外網延遲實現得跟內網相似其實也是大致用了VPN的原理。只需要一臺有一臺服務器作為VPN服務端,再將電腦和手機作為客戶端。就能直接構成一個局域網。而且服務器我們選擇一些國外的VPS一般都擁有千兆的網絡帶,不過考慮到畢竟是國外服務器由於距離遠的問題會有延遲這種的東西(一般國內電信延遲1~30MS),所以在挑選VPS的時候儘量選擇近的地區例如香港、新加坡、日本是比較理想的,最重要的是可以順便翻牆啊!像一些美國洛杉磯的服務器對亞洲地區有優化也是不錯的。筆者現在所用的就是洛杉磯的VPS延遲在170ms左右。
OK!服務器既然選好了就開始進行我們的重頭戲OPENVPN服務器的搭建吧!
- 由於幾天折騰下來裡裡外外試過各種vps服務器,最終確定了遠程桌面的反饋速度因素是以延遲為主要因素,次要是電腦硬件配置和網絡帶寬。
- 因此筆者這裡以學生為群體,可以使用騰訊、阿里的學生雲服務器,不僅可以作為個人專屬雲盤還可以良好體驗遠程操作的便捷。
- 第一步 : 購買服務器,公眾號先前已經有相關web服務器搭建教程,同樣有介紹怎麼購買學生雲服務器。目前學生優惠的服務器有很多,像阿里、騰訊、華為這些國內服務器延遲基本都在10ms內,大家可以自由選擇。
- 1.系統我就儘量選擇Centos,因為這在實現過程中筆者遇到坑最少的。
- 2.先提前在服務器控制檯的安全策略(防火牆)打開相應的端口,在這裡我們只需要使用VPN的默認的UDP協議端口1194即可。
- 第二步 : 購買服務器成功後等待開通就可以在控制檯裡找到公網IP。服務搭建寶塔,寶塔不僅可以作為一個web環境的管理後臺,還可以作為普通的使用界面,後面在用到配置文件上傳下載我們用得上。那麼用SSH連接工具putty來進行連接。
- 當你成功進入就可以開始負責粘貼代碼去安裝了。
- 選擇y,等待。
- 安裝成功,登錄地址輸入賬號密碼,記憶力不好的同學一定要在設置改賬號密碼。
- 在寶塔安全選項再一次開放端口1194。因為當你安裝寶塔後又相當於給服務器的端口拉了一道閘,因此你需要再一次開閘。(不知道寶塔的同學請自行復習技術哥第一篇文章)
- 之後開始安裝OPENVPN。複製命令行wgethttps://git.io/vpn -O openvpn-install.sh&& bash openvpn-install.sh (這是國外大神做的一鍵腳本,在IT行業要懂得用輪子,雖然我們可以一步一步安裝環境依賴,服務端文件配置。但明顯是不明智的。)
- 這一步要將IP地址重新改為外網。因為國內服務器還有一個大一點的局域網,
- 協議選擇UDP,一定要UDP!因為遠程桌面連接流暢度的秘訣就是要UDP協議。
- 端口默認1194,可以改,但新手的話其實也沒有必要。
- NDS選擇默認第一個,如果選擇其他也不是不可以,但多多少少會有坑。筆者就試過用谷歌DNS要麼就使用客戶端連不上VPN要麼連上也打不開其他網站,所以最哈默認選擇根據服務器自己的DNS來設置。
- 最後一步就是輸入命名生成客戶端配置文件,
- 在這裡改不改也沒關係,因為後面我們還會再執行腳本創建新的配置文件來使用,任意鍵開始執行一鍵操作,接下來只要等待就可以了。
- 接下來我們就要在自己的手機和電腦安裝OPENVPN客戶端。由於客戶端下載需要翻牆到官網,我們已經為你準備好下載地址。(由於限制,地址鏈接技術哥會放在第一條評論中)
- 然後右鍵客戶端使用管理員權限運行,如果不使用管理員權限也會有連接不上VPN的坑。
- 再次運行腳本就可以創建新用戶。一個用戶生成一個配置文件,一個配置文件只能一個客戶端使用。因此我們根據我們的設備至少生成兩個文件。
- 電腦連接大功告成獲得分配內網IP10.8.0.2!
- 接下來就是手機,筆者手機為ios,由於手機軟件OPENVPN在中國大陸商店下架,因此需要讀者自己準備一個國外APPLE ID,其實只要網上搜一下也有一些網站、公眾號分享。
- 當下載好後怎麼將配置文件導入手機?
- 我們可以通過發email的方式。比如筆者就是通過QQ郵箱附件發送
- 將文件發給自己就好,然後手機微信進入郵箱打開郵件下載文件。
- 打開
- 添加
- 連接
- 獲取IP10.8.0.3。
這時候就成功搭建成一個局域網了。接下來手機測試一下吧!
由於學生雲服務器分配的帶寬只有一兆,即便是在延遲十秒左右的環境也難免會有將近0.1~0.25秒直接的延遲,但是作為在校遠程“工作”來說,確實不錯的哦!
閱讀更多 Tdata技術哥 的文章