為樹莓派4B刷OpenWRT固件,打造旁路由科學獲取網絡信息


為了避開敏感詞,文中涉及的請按提示替換閱讀:

下文中涉及的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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM