前言
很多時候,當流量不夠用時,看着周圍那么多熱點又連不上,是不是有點心癢癢呢?那么有沒有辦法不需要要通過這些熱點的認證即可上網呢?當然是有的。
另外在此強調一點,本教程僅用於學習測試用途,請勿用於不正當的途徑!
大體思路
連上那些公共熱點,往往都能成功,但是也往往還需要進一步的認證才能夠上網。沒有認證的時,當我們訪問http的網站時,我們的請求會被攔截並跳轉至熱點(下文就以校園網代表熱點了)的登陸認證頁面,如圖所示。
但是,如果直接訪問https的話,就是響應超時了,原因應該是https的一些加密導致的吧。
但是,我們發現,某些udp的端口還是開放的,畢竟由於他們的特殊作用。先看看下圖
上面那個是dns解析的,沒有認證的情況下可以成功的解析到結果,說明dns的端口53是開放的。
而下面的ping命令卻是超時,這就說明了ping的icmp協議被攔截下來了。因此我們就在dns端口53上下功夫。
后面要做的就是在外部服務器上搭建相應的環境,然后在本地也搭建下環境,這樣我們就可以將我們的網絡請求通過53端口發送到外部服務器上,外部服務器解析之后請求目標服務器,再將結果返回到本地,總體流程大致即這樣。
詳細步驟
服務端
這里以我的ubuntu為例,默認gcc環境等依賴安裝完成。
ssh登陸服務器后,下載vpnserver
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.28-9669-beta/softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
解壓
tar -zxvf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
cd到對應目錄,make編譯
make
此時提示輸入,一路輸入1 即yes就是了。
然后啟動該服務
./vpnserver start
緊接着
./vpncmd
輸入1之后兩次回車,后面會提示輸入密碼,這個密碼就當時連接vpnserver的密碼吧。
注意:這時如果端口被占用的話,可能會報錯,就導致沒到密碼那一步提前結束了,還是建議為本應用留着那幾個端口吧,不行的話可以手動更改目錄下的配置文件修改端口。
到這里,服務端的安裝完畢。
本地配置
首先下載 SoftEtherVPN ,按我的理解,這個應該是為我們待會的openvpn生成配置文件准備。
下載完成后安裝,選擇最下面的一個安裝
安裝完成后如下圖
點擊新設置,填寫相關信息。名稱可以隨意填一個,主機名就填你之前的服務器地址,下面端口默認端口443(之前服務端啟動監聽的),右下角密碼就是之前說的那個vpnserver密碼。然后確定。之后再連接
管理虛擬HUB
管理用戶
再新建
其中用戶名和密碼待會在openvpn中登陸要用到的。
確認之后會彈框顯示成功,緊接着
再確認。之后回到管理界面,點擊下圖中的
然后先填寫端口,通常53用的比較多,其次67、68這些。然后點擊下面那個,生成配置文件之后解壓出來。
提取出那個含有remote字眼的文件。
然后還要下載openvpn文件。安裝完成之后打開會在任務欄中出現相應的圖標,鼠標右鍵選擇導入配置文件,再選中之前解壓出來的那個配置文件。然后該圖標右鍵會多了一個選項,選中之后再點擊連接。隨后會出現用戶名密碼的認證框,輸入之前添加的用戶即可。
成功之后如下圖所示。
這時應該就可以未認證免費上網了。速度的話基本取決於你服務器的帶寬。比如我的是1Mb速度,實際也就是100多k吧。如果嫌慢可以選擇國外的大帶寬vps服務。
跨平台三端
剛剛windows上的已經介紹了,還有Android和ios端。
Android端的安裝包,可以在我github中下載,安裝完成之后,把之前windows上准備好的配置文件拷貝到手機,然后手機上進入文件管理器,找到文件,打開方式選擇openvpn即可。
Ios的為openvpn-connect 國區商店自然是下載不到的,自備美區賬號下載吧。下載完成之后,可以先將配置文件通過qq傳送到手機,然后打開方式同樣的選擇openvpn-connect即可。
一些問題
一路上也遇到了不少問題,也簡單說下吧。
openvpn那里老是連接不上,報錯信息大概是握手失敗,多久之后重試之類的。我服務器安全組之前記得放通所有端口了,所以沒太在意,后來發現還是這里的問題。原因在於我放通的是TCP端口,UDP還是被我關了,所以打開之后問題解決。
還有就是中午連接成功,也正常上網,可是大概過了幾十分鍾后,突然又上不了。此時我將端口從53換為67、68皆可以上網,只是速度極慢,看服務器日志顯示這些信息
感覺是校園網那邊檢測到dns端口流量異常,因此直接切斷了我的這些連接。不過此時nslookup命令同樣能工作。
后來到今天晚上,我又試了試53端口,發現又可以成功連接了,而且接下來的幾個小時都沒有出現啥問題。查看服務器日志,發現還是有不少像之前那樣的連接被刪除的信息,這里我就有點迷了!
了解到softether還有加密與網絡 - VPN over ICMP / DNS的功能,我也試了試,發現打開之后生成的配置文件與之前的比較沒啥差別,具體我也仍在探索中。
最后,本文github連接 https://github.com/asche910/FreeWireless
同時,參考文章: