市面上越來越多有關 VPN 的廣告,至於使用 VPN 的用途我們在此就不贅述了,但總之使用付費公共的 VPN,不管是在隱私權等等方面其實都有著一定的疑慮,此外多數付費 VPN 對外的 IP 地址也已經被大多數的資料庫標記為「VPN」來源,因此在訪問某些網站時也有可能會被阻擋或出現問題。
同時,如果是位於中國大陸境內,大多數境外的 VPN 幾乎都已經被封鎖,導致完全無法連上線,或是只能斷斷續續的連上線,因此自主搭建 VPN,擁有屬於自己 VPN 的節點的這個想法,就越來越風行了。
這次我們要介紹的是「Trojan」這套方案,經過「Trojan」目前在安裝上已經算是相當簡化,透過在目標 VPS、甚至是目標的實體機,以簡單的安裝過程,就可以搭建出屬於自己的 VPN。此外 Trojan 能夠將流量偽裝成使用者正常造訪網頁時的 HTTPS 流量,原則上針對防火城牆會有比較好的反偵測性,當然實際效果還是得看當下是否在所謂的敏感時期,以及當地運營商/省份城市的因素。
這次在 VPS 機器的部分我們還是用了 AWS EC2 香港的機器來作為示範,原因是為了方便,但請注意,如果您是要實現翻牆或是解鎖當地有區域限制的相關資源,會建議使用擁有針對中國運營商優化的海外加速線路的 VPS,還有擁有當地原生 IP 的 VPS 資源,才能夠比較實現使用 VPS 的目的。
資源需求
首先當然要先準備好對應的資源,原則上就是 :
首先我們在設定好 AWS EC2 的前置作業後 (詳細的機器規格等等看使用需求,這裡我們就拿規格較低、較常見的 t3.micro 作為示範,以一般個人或家庭來說,t3.micro 作為 VPS 機器已經足以使用)。AWS 註冊和開設機器的方式網路上的教學應該不少,可以搜尋 “開 EC2“。
硬碟的部分,也是採用預設的 8G 即足夠,作業系統這裡選擇 Ubuntu Server 目前最新的 LTS 版本 : 22.04 LTS。
會比較不建議使用像是其他發行版本的作業系統,或是用 ARM 架構的,例如 Amazon Linux 等等,因為可能會在網路設定上預設有所差距,或是有不可預期的錯誤,但如果你抱著想要嘗試看看的精神當然也可以,記得上來回報一下。
網路設定記得這裡要開啟允許所有流量,因為屆時會用到隨機通訊端口。另外為了先求有再求好,這裡只先用預設的 IPv4 的方式創建網路連線相關,如果會希望你的 VPN 可以走 4/6 dual stack,這個我們之後有機會再慢慢討論。
這時候另外再綁上 EIP,同時在購買的域名的 DNS 設定上設定一條 A 紀錄,名稱為你想要的域名 (這裡我們用 vpntest.2etrial.com,在 GoDaddy 上購買的),紀錄值設定你綁在機器的對外 EIP,這裡是 18.163.x.x 這一隻。
其他的域名註冊商或 DNS 服務商設定方法應該都大同小異,可以自己去摸索一下。
透過 macbook 內建的終端機用 SSH 連線過去這台機器 (如果不知道怎麼做的,AWS 上面有 Connect 按鈕可以按,按下去就會教你,其他的雲服務、雲主機廠商應該也會有),windows 則是可以用 putty 或是 MobaXterm,先例行性地做 sudo apt update、sudo apt upgrade、sudo vi /etc/hostname 改 hostname 這些必要流程。
因為中間有很多地方需要用到 su 權限,因此直接切換至 sudo su - 帳號來安裝,避免安裝出權限問題卡在中間。
sudo su -
安裝方式有三種,bash、curl、wget,我這裡使用 curl 來處理,如果遇到問題可以嘗試使用其他兩種
bash <(curl -Lso- https://git.io/oneclick)
curl -O https://raw.githubusercontent.com/jinwyp/one_click_script/master/trojan_v2ray_install.sh && chmod +x ./trojan_v2ray_install.sh && ./trojan_v2ray_install.sh
wget --no-check-certificate https://raw.githubusercontent.com/jinwyp/one_click_script/master/trojan_v2ray_install.sh && chmod +x ./trojan_v2ray_install.sh && ./trojan_v2ray_install.sh
這裡我們選擇中文。
下一步就有密密麻麻的選項,這裡我們先選 44 設定時區為 UTC+8,再選 2,安裝 trojan。
有很多可以調整的地方,但這些之後可能有機會再慢慢說明。
這裡直接按下 enter 即可。
申請證書的部分,email 可以隨便填寫,因為 LetsEncrypt 不用驗證 email,有些證書商會需要,另外證書商這裡建議就直接 enter 預設用 LetsEncrypt 的。
接著直接兩個 enter 即可,沒意外用 http 的方式驗證域名所有權就能正常簽發證書了。
反代的部分這裡也直接先 enter 不設置。
這裡也先直接按 enter 下去連續四次,高端口的部分在中國有可能會被阻擋常見的,因此可以考慮用其他大於 10000 的高端口,但這裡先用 443 預設。
到這裡就是成功了。
記得這一頁的登入密碼、網址這些資料都要完整複製保留下來,並且在本機端開啟紅框處這個網址,會出現一個 QRCode。
客戶端的部分,上面已經預設幫我們包裝好了,直接訪問那個網址就能夠下載,我是用 macbook,因此下載 mac 版本的,裡面就有一個 dmg 檔。
安裝好會開不起來,這是蘋果的安全性設置,因此要來設定這裡手動允許開啟。
裝好後,先去更新一下,也能夠從這裡取得最新版:
https://github.com/yanue/V2rayU/releases
目前我使用 4.0 預覽版
安裝好之後上面會有一個 “掃描屏幕上的二維碼”,開啟剛剛那個 QR 碼的網頁,點這裡,允許存取對應的螢幕權限,就能夠把你的 VPN 的參數自動匯入進去。
添加成功後,服務器列表就會出現連接的延遲、還有配置的參數也能看到被成功導入。
上方記得選擇全局模式。
此時用這台電腦可以看到,訪問的 IP 地址已經變為我們 AWS EC2 當時綁上去的 EIP,此時我們就成功實現了自己架設 VPN 這檔事情。
當然這樣出去的 IP 地址還是 DCH 的,畢竟我們是從 AWS 的 IP 集區拿取的 IP,當然如果您是自己在當地有實體機器,接入當地的頻寬,或是透過 BYOIP 的方式把 IP 託管給 AWS 並 attach 上去了話,那麼就能夠實現原生 IP 的 VPN 訪問了。
以上就是小小的自己架設 VPN 的心得,當然如果是在中國境內要翻牆可能還需要更多手段和調整參數,牽扯層面也會更大 (例如地區封鎖、敏感時期封鎖) 等等,這部分等後續我們有時間再來討論吧。
參考資料 : https://github.com/jinwyp/one_click_script/blob/master/README2_CN.md