免費內網穿透工具分析

引言

雖然買了一個騰訊雲的學生機搭建一些環境,比如博客,jupyter,寶塔等。但畢竟是廉價的學生機,配置還不如幾十塊的N1(4核2G)。服務器的負載可想而知,截了張圖感受一下:
在這裏插入圖片描述

cpu的消耗都是來自寶塔的程序,我也不清楚寶塔在運行着什麼。所以就想着在我本地的機器搭建這些服務,但奈何家裏沒有外網IP,因爲是租房帶的寬帶,總不能打電話要一個吧,如果是自己辦的寬帶完全可以打運營商的電話要一個公網IP,萬一有了呢。

這裏我遇到了一個很奇怪的問題,我在路由器上看到的IP和百度出來的IP是一樣的,開始我還以爲有公網IP,但做了一下端口映射發現,外網並不能直接訪問,也不是說不能吧,因爲如果訪問的機器自己擁有公網IP是可以遠程到我的臺式機。

很難理解是吧,詳細點說就是:我在Windows用xshell使用路由器的IP連接內網的虛擬機是無法連接的,但是在騰訊雲的服務器上使用ssh命令是可以連接到我內網的虛擬機的,換了連接軟件也不行,但換一臺有公網的服務器又是能連接的。這個問題糾結了我很久,到底是有公網IP,還是沒有呢?如果有,那麼外網的機器應該都能訪問,如果沒有,服務器爲什麼能訪問到。

開始正題(這裏只測試支持免費的,付費的不考慮)

cpolar

使用步驟:像這種半付費的產品一般都是很人性化的,使用起來非常簡單。先下載官網給的應用程序,然後直接解壓,在程序路徑下運行cmd或者Linux終端,先執行./cpolar authtoken <YOUR_AUTH_TOKEN>(這個token官網手機註冊一下就有),然後執行./cpolar http 80,會在終端顯示被映射到了哪個地址,你訪問一下就行了。如果不是http協議的,比如ssh,3389等可以運行./cpolar tcp 22,因爲這些協議都是基於tcp的。

使用感受:映射3389端口,雖然能連接,但是卡的無法操作,畢竟顯示界面需要傳輸的數據比較大,免費的帶寬肯定支持不了;映射22端口,勉強能用,但使用一點都不流暢,體驗很差;映射http協議(寶塔的8888端口):加載速度也很慢,但相對於ssh來說好一點,因爲只需要加載一次,後面有緩存操作起來也還行。

總結: 無法滿足我的要求,http一個人訪問就這麼慢,是無法搭建博客的,ssh也很慢。但是可以考慮映射jupyter供我自己使用。

NATAPP

使用步驟:和cpolar差不多,不過映射端口需要在官網操作,免費的只能有兩個。而且不僅僅需要手機註冊,還需要實名認證(感覺並沒有驗證接口,隨便填不知道能不能通過)。

使用感受:3389,感覺還行,雖然比不上本地的機器,但還挺流暢。我覺得免費有這種程度很不錯了;22,很流暢;http:也挺快的

總結:如果先用了cpolar再來使用這個工具,那這工具真不錯。不過限制很多,比如只能映射兩個,而且地址會一直變(最難受的),流量雖然沒有說有限制,但付費的都有限制,免費的怎麼可能沒有,估計只有不到1個G。無法滿足我的要求,但雖然搭建不了博客,也可以作爲3389的備選工具使用。

Serveo

使用步驟ssh -R mybt:80:localhost:8888 serveo.net,在內網機器輸入這個。然後看輸出信息,如果沒有報錯,則你內網的8888端口就被映射到了mybt.serveo.net這個域名上了,直接瀏覽器輸入即可訪問內網8888端口的服務。

使用感受:一個字,卡。

Sakura Frp

使用步驟:官網註冊一個賬號,下載客戶端。打開客戶端看提示操作

使用感受:我只試了3389,發現還行,挺流暢。其他的應該也不會卡,待選

以上是我發現的可以免費使用內網穿透工具,如果還有其他還不錯的可以告訴我,我測試一下。接下來就是使用自己的服務器搭建穿透了。

nps(https://github.com/cnlh/nps/)

使用教程可以參照官網,寫的很詳細。

使用感受:3389,總是斷線,無法正常使用;22:很流暢;http:速度還可以,一個人使用的話和我搭建在服務器感覺沒什麼區別

總結:工具還行,作爲http和tcp代理都還不錯,待選

holer(https://github.com/wisdom-projects/holer)

使用感受:使用上和nps沒什麼區別,但是配置較爲繁瑣。我使用的是自己搭建服務的方式,需要在服務端安裝java、mysql、nginx,沒有nps人性化。速度上和nps一樣,3389一直斷線(不過這裏使用的是虛擬機,上面測試的是公司的電腦,網絡環境變了,可能不太準確),ssh沒什麼問題。最致命的缺點是,只能做一次映射,所以我選擇nps。

Frps一鍵安裝腳本(https://github.com/dylanbai8/frpspro)

frp的配置也有點繁瑣,我們先試試這個一鍵安裝腳本,不過只支持服務端是Linux,客戶端是Windows

使用步驟wget -N --no-check-certificate git.io/f.sh && chmod +x f.sh && bash f.sh install,直接服務端運行這個命令會下載並安裝服務。然後安裝完之後會顯示web地址和客戶端程序的下載地址。在客戶端配置一下ini文件,運行bat文件就行了(出現了一個小錯誤,把ini文件的編碼從utf-8改成ANSI就成功了)。

使用感受:3389速度還行,沒有natapp流暢,但屬於能使用的範圍,可以考慮使用。只支持Windows基本限定了只能使用遠程桌面了。

LanProxy(https://github.com/ffay/lanproxy)

配置和nps一樣簡單,無需使用源碼,使用發佈包運行一下即可。

使用感受:3389:,速度還行,能使用但不算太流暢;ssh,很流暢;http,網頁有一小段大概5-10秒的加載時間,然後就很流暢了,不知道這個加載時間是我的網絡問題還是工具的原因

總結:可以和nps媲美,待選

以上就是我測試的一些自建服務器穿透工具,至於其他就不一一去嘗試了,如果有更好的請推薦給我。下面我們看另一個工具-zerotier,和上面不同的是,這個工具並不算真正意義上的內網穿透,僅僅是在幾個客戶端之間建立局域網。也就是隻有加入局域網的機器才能互相訪問,當然它也需要中繼的服務器,由zerotier官方提供(官網說的帶寬是10M, 實際使用上也挺快的),也可以自建。

官方登錄的話好像是要翻牆才能訪問,不翻牆的話加載很慢(不知道是不是我網的問題)。而且安卓客戶端還只提供Google Play的下載地址,真不想安裝谷歌三件套,什麼時候有閒心裝在模擬機上再下一個吧。

使用上來說其實和nps這些工具差不多,至於速度的話,測試了一下ssh和http速度很快,而且這個工具一般用來做NAS(可以理解爲私有網盤)的穿透,所以速度應該慢不了,下次測一下遠程桌面,虛擬機開Windows10是真卡。

總結

如果你沒有服務器的話,想用別人使用的服務,首推Sakura frp,其次是natapp。如果你有自己的外網服務器(或者有外網IP),推薦nps和lanproxy,lanproxy功能簡單,nps功能多一點,但不是專業人其他功能基本用不到。如果你只是想遠程自己的Windows或者Linux電腦的話,推薦zerotier。使用的話直接搜GitHub或者官網都有很詳細的教程。

另外,如果有更好的內網穿透工具請推薦給我。

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