為了避開敏感詞,文中涉及的請按提示替換閱讀:
下文中涉及的V2Yay,Y是R
路徑和配置文件中用到的V2Yay請手動更改為小寫。
樹莓派固件下載:
google drive 或者openwrt:
https://drive.google.com/drive/folders/1_P2RoPbguY99qJxmCU4SKUgP8Kg0Xr03
https://openwrt.cc/releases/targets/bcm27xx/bcm2711/
根據對應的型號下載
我樹莓派4B:
openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz 或者 immortalwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz
建議下載factory版本。
使用balenaEtcher將固件燒寫進SD卡。
插入SD卡開機。
下面講解旁路由設置:
樹莓派開機之后,用網線將樹莓派與PC連接。
樹莓派默認網址是192.168.1.1,請手動設置PC的IP和樹莓派同一網段。
密碼是password。
通過瀏覽器登錄樹莓派系統。
每設置一步點擊一次保存,先不要點擊“保存&應用”。
下面開始設置防火牆
到這里了,點擊保存&應用,不要着急關閉頁面。
等待的同時在瀏覽器中新建一個標簽頁輸入192.168.1.10看看能否進入樹莓派系統。
如果能進入,則證明已經設置成功,否則請返回前一個標簽頁,在 ”網絡->接口“ 頁面點擊”保存&應用“。
成功進入樹莓派openwrt之后請重新檢查一遍設定,有時候保存會失敗,所以需要做double check。
稍等個10秒重復過程看看能否進入192.168.1.10。
成功之后,將PC網線插入到家用路由器,登錄家用路由器,將網關更改為192.168.1.5。
樹莓派關機,使用網線將樹莓派連接到家用路由器,開機。
樹莓派開機完成之后,在PC端瀏覽器輸入192.168.1.10重新登錄到樹莓派管理系統。
在”服務->passwall“右側的頁面點擊 ”百度連接“,測試樹莓派是否已經聯網。
將PC電腦的網關和DNS地址設置為樹莓派地址192.168.1.10。
此時,PC可以通過樹莓派上國內網站了。
我們可以在 ”passwall->節點列表“ 中添加輔助訪問外網的節點。
下面講解如何構建自己的梯子。
梯子需要VPS,請自行購買國外的服務器服務,筆者使用的是搬(刪掉)瓦(刪掉)工的VPS。
速度可以,性能穩定,這里不做廣告了,感興趣的自行購買。
國內的VPS無法訪問外網。
1. 安裝v2yay
使用xshell通過ssh登錄VPS,VPS記得關閉密碼認證,只使用Key認證。
防止惡意試探攻擊。
1.1) // 安裝執行程序和 .dat 資料文件
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2yay/master/install-release.sh)
1.2) 需要卸載程序時,可以使用移除 v2yay命令
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2yay/master/install-release.sh) --remove
1.3) v2yay的文件安裝列表
installed: /usr/local/bin/v2yay
installed: /usr/local/bin/v2ctl
installed: /usr/local/share/v2yay/geoip.dat
installed: /usr/local/share/v2yay/geosite.dat
installed: /usr/local/etc/v2yay/config.json
installed: /var/log/v2yay/
installed: /var/log/v2yay/access.log
installed: /var/log/v2yay/error.log
installed: /etc/systemd/system/v2yay.service
installed: /etc/systemd/system/v2yay@.service
2. 安裝TLS 分流器
bash <(curl -L -s https://raw.githubusercontent.com/liberal-boy/tls-shunt-proxy/master/dist/install.sh)
由於目前單純的VMESS加密已經不太保險,所以使用TLS分流器封裝數據傳輸,這需要一個能夠訪問的域名。
目前4.44以后版本v2yay服務已經開始拒絕單純的VMESS加密數據請求,所以沒有域名的伙計需要找到4.34以下的版本來使用。
老版本搭建和配置方法筆者不贅述了,使用老版本需要承擔很大的被攔截封禁的風險。
3. 購買域名
筆者購買的是www.name.com的域名,也有免費的域名,需要自行決定。
Name.com域名激活設置:
Domain Details 中
NAMESERVERS點擊Use Default Nameservers選擇默認值,點擊Update Save保存結果
Manage DNS Records 添加DNS記錄
第一條HOST留空,ANSWER輸入VPS的IP地址,點擊ADD添加
第二條HOST輸入www,ANSWER輸入VPS的IP地址,點擊ADD添加
第三條HOST輸入*,ANSWER輸入VPS的IP地址,點擊ADD添加
大功告成,現在域名已經可以指向VPS的IP了。
4. 修改TLS配置文件
配置文件路徑:/etc/tls-shunt-proxy/config.yaml
相比TCP,Domain Socket(簡稱DS)更為高效。
所以這里TLS分流器與服務端v2yay的通信使用DS。
客戶端v2yay(手機平板PC)與服務器分流器的通信使用TLS(數據類流似HTTPS)。
TLS over TCP DS
客戶端 v2yay --------------------- TLS 分流器 ----------- 服務端 v2yay
配置文件內容如下:
1 # listen: 監聽地址 2 listen: 0.0.0.0:443 3 4 # vhosts: 按照按照 tls sni 擴展划分為多個虛擬 host 5 vhosts: 6 7 # name 對應 tls sni 擴展的 server name 8 - name: example.com 9 10 # tlsoffloading: 解開 tls,true 為解開,解開后可以識別 http 流量,適用於 vmess over tls 和 http over tls (https) 分流等 11 tlsoffloading: true 12 13 # managedcert: 管理證書,開啟后將自動從 LetsEncrypt 獲取證書,根據 LetsEncrypt 的要求,必須監聽 443 端口才能簽發 14 # 開啟時 cert 和 key 設置的證書無效,關閉時將使用 cert 和 key 設置的證書 15 managedcert: true 16 17 18 # alpn: ALPN, 多個 next protocol 之間用 "," 分隔 19 alpn: h2,http/1.1 20 21 # protocols: 指定 tls 協議版本,格式為 min,max , 可用值 tls12(默認最小), tls13(默認最大) 22 # 如果最小值和最大值相同,那么你只需要寫一次 23 # tls12 僅支持 FS 且 AEAD 的加密套件 24 protocols: tls12,tls13 25 26 # http: 識別出的 http 流量的處理方式 27 http: 28 29 # fileServer 支持 h2c, 如果使用 fileServer 處理 http, 且未設置 paths, alpn 可以開啟 h2 30 handler: fileServer 31 32 # args: 靜態網站的文件路徑 33 args: /var/www/html 34 35 # default: 其他流量處理方式 36 default: 37 38 # handler: proxyPass 將流量轉發至另一個地址 39 handler: proxyPass 40 41 # args: 轉發的目標地址 42 # args: 127.0.0.1:40001 43 args: unix:@v2yay.sock
4. 修改VPS服務器 v2yay 配置文件
v2yay的配置文件路徑:/usr/local/etc/v2yay/config.json
請使用uuid命令生成自己的id,並進行替換。
1 { 2 "log": { 3 "loglevel": "warning", 4 "access": "/var/log/v2yay/access.log", 5 "error": "/var/log/v2yay/error.log" 6 }, 7 "inbounds": [ 8 { 9 "protocol": "vmess", 10 "listen": "127.0.0.1", 11 "port": 40001, 12 "settings": { 13 "clients": [ 14 { 15 "id": "f2435e5c-9ad9-4367-836a-8341117d0a5f" 16 } 17 ] 18 }, 19 "streamSettings": { 20 "network": "ds", 21 "dsSettings":{ 22 "path":"@v2yay.sock", 23 "abstract":true 24 } 25 } 26 } 27 ], 28 "outbounds": [ 29 { 30 "protocol": "freedom" 31 } 32 ] 33 }
5. 重啟服務
systemctl daemon-reload
systemctl restart v2yay
systemctl restart tls-shunt-proxy
6. 查看服務運行狀態
systemctl status v2yay
systemctl status tls-shunt-proxy
7. 本地配置
旁路由openwrt的passwall設置:
地址填寫之前購買的域名地址。
端口填寫443。
協議選擇VMESS。
AlterID需要設置為0。
勾選tls,其它選項填寫與tls配置文件對應的數值。
點擊保存&應用,等待完成之后點擊 “節點檢測” 測試和VPS的連通性。
連通之后點擊 “谷歌連接” 測試數據傳輸的連通性。
在規則管理中點擊手動更新,將梯子策略首先更新一次。
此時無論電腦,手機還是平板,手動將網關和DNS設置樹莓派地址192.168.1.10。
都可以無縫科學獲取網路信息了。
這個旁路由會自動區分國內和國外的IP,國內走直連,國外走VPS。
如果沒有樹莓派或者不想改網關和DNS的話,
需要在手機平板和電腦PC安裝v2yay客戶端並單獨配置。
這就是雞和蛋的問題,沒有客戶端,就用不了梯子。
下載客戶端先要有梯子,所以不太建議客戶端安裝v2yay程序的方式。
當然如果外出不在家也想用梯子,
那么就需要使用家里的旁路由梯子,下載安裝客戶端v2yay梯子。
這樣外出時,手機平板也可以用自己的梯子科學獲取網絡信息。
客戶端配置如下,記得address替換為服務器配置的域名,id替換為服務器匹配的值:
1 { 2 "inbounds": [ 3 { 4 "port": 1080, 5 "listen": "127.0.0.1", 6 "protocol": "socks" 7 } 8 ], 9 "outbounds": [ 10 { 11 "protocol": "vmess", 12 "settings": { 13 "vnext": [ 14 { 15 "address": "example.com", 16 "port": 443, 17 "users": [ 18 { 19 "id": "f2435e5c-9ad9-4367-836a-8341117d0a5f", 20 "security": "none" 21 } 22 ] 23 } 24 ] 25 }, 26 "streamSettings": { 27 "network": "tcp", 28 "security": "tls" 29 } 30 } 31 ] 32 }