精品軟體與實用教程
如何從零開始,使用HomeProxy 進行代理上網
Sing-Box 是一款靈活的代理客戶端,常用於路由器上進行網路代理配置,而HomeProxy 則為使用者提供了簡單易用的代理管理介面。透過將Sing-Box 用戶端與HomeProxy 結合使用,使用者可以在路由器上實現全域代理,確保區域網路內的所有裝置都能共享相同代理服務。配置流程包括安裝Sing-Box 用戶端、設定代理協定與伺服器訊息,然後在HomeProxy 中進行代理的管理與監控。此方案不僅能提升網路隱私,還能繞過地理限制,優化網路連線速度。
luci-app-homeproxy是Sing-Box客戶端,可以在OpenWrt 23.05+上運作。是基於homeproxy重新開發的。是homeproxy 的一個分支,增加了對選擇器、urltest、規則集和衝突的支持,專門針對自訂路由而量身定制
相容於Socks5、HTTP(S)、Shadowsocks、Vmess、Trojan、Wireguard、Hysteria(2)、Vless、ShadowTLS、TUIC等協議,透過靈活的規則配置實現策略代理。
HomeProxy 作為一款OpenWrt 平台的sing-box 代理工具,以其優異的性能,豐富的協議支援以及細緻的分流策略配置,逐漸成為路由器代理工具的新寵。
HomeProxy 安裝
HomeProxy 路由系統版本需求OpenWrt 23.05+ 或ImmortalWrt 23.05+ 且僅支援firewall4,晶片支援ARM64/AMD64。
下載地址:https://github.com/douglarek/luci-app-homeproxy/releases/tag/2024050500
HomeProxy 的安裝比較簡單,下載對應的“ipk” 軟體包,然後進入路由器的“系統”->”軟體包”介面,點擊”上傳軟體包”,將下載的ipk 檔案上傳至路由器並安裝即可。 HomeProxy 本身並不需要其他依賴軟體包,可以直接安裝成功。但是由於其工作的代理模式需要使用”ip-full”和”kmod-tun”,否則工作不正常。使用路由器的軟體包管理工具,更新清單後,直接安裝這兩個軟體包即可。
HomeProxy 安裝成功後,路由器的服務選單中會增加”HomeProxy」選單項目。如果安裝後沒的顯示,則重新啟動路由器。
HomeProxy 配置
進入HomeProxy 的主介面,由上到下會看到兩排Tab 標籤,第一排為”客戶端設定”、”節點設定”、”伺服器設定”和”服務狀態”,第二排則為第一排標籤的詳細設定項目。
主介面會顯示HomeProxy 的運作狀態,點選」開啟控制面板」按鈕,則會開啟metacubexd 控制台,這是一個類型於Clash Web UI 面板的網頁工具,用於顯示HomeProxy 的運作狀態以及節點、路由規則等資訊。
「客戶端設定」標籤頁用來設定sing-box 作為代理客戶端時的設定項,這也是HomeProxy 的核心功能。
「節點設定」標籤頁用於新增代理節點,可以手動新增也可以訂閱新增。
「伺服器設定」標籤頁用於設定sing-box 代理伺服器的設定項,可以啟動並新增代理協議,從而讓路由器成為代理伺服器。
「服務狀態」標籤頁可以顯示即時日誌,並進行連線測試,以驗證是否可以成功科學上網。
HomeProxy 作為客戶端的設定邏輯是先新增節點,然後進行客戶端的配置,最後進行連線測試驗證配置是否正常運作。
新增節點
「節點設定」包含」節點」和」訂閱」兩個標籤頁,用於手動和訂閱方式新增節點。
「訂閱」標籤包含一些新增訂閱節點的設定項,在」訂閱位址」中增加代理機場的訂閱位址,就會將訂閱位址增至設定項中。至於」自動更新」、」使用代理更新」以及」允許不安全連線」等設定項,則依實際使用需求鉤選完成設定即可。所有訂閱新增完成後,點選」儲存並套用」就會將訂閱位址中的代理節點新增至節點清單。
「節點」標籤頁會清單顯示所有的代理節點,這些節點對應於sing-box 配置的」outbounds」項目。
此時,也可以透過匯入分享連結或手動新增方式增加節點內容。
輸入框輸入節點名稱後,點選」新增」按鈕,就可手動增加節點了:
在」類型」下拉方塊中選擇節點的協定類型,然後根據協定對應的設定項,輸入對應的配置內容,最後點選儲存,就完成了手動節點的新增。
“Selector”和”URLTest”是sing-box 支援兩種群組節點,分別代理手動選擇和自動測試選擇。群組節點會將現有多個節點編組成為虛擬節點,透過對應的選擇策略從群組中選擇使用某些節點,以達到最佳效果的目的。群組節點根據實際情況添加,如果節點比較少或具有詳細的路由策略,則可以不設定。
如果HomeProxy 中任何」出站」設定項中使用了下拉方塊中的」直連」項,則需要在節點中新增一個類型為」直連」的節點,否則會因為sing-box 找不到路由造成HomeProxy 出錯而停止運作。
客戶端設定
客戶端設定是HomeProxy 最複雜難懂的部分,主要原因在於sing-box 的配置內容過於精細。事實上HomeProxy 已經將配置分門別類,大大簡化了配置的複雜程度。只要注意一些預設事項,都可以獨立完成一個功能完善的客戶端設定。
如圖.1 所示,HomeProxy 的客戶端設定包含」路由設定」、」路由節點」、」路由規則」、」規則集」、「DNS 設定」、「DNS 伺服器」、「DNS 規則」、」存取控制」以及「控制面板」九項內容。
HomeProxy 的客戶端設定項,可分為路由、DNS 和控制台三個部分,而規則集則是供路由和DNS 共同使用的規則項。由於HomeProxy 內建如下規則集,如無特別需要,規則集部分可以不設置,直接使用內建規則集即可:
- hp-geoip-cn
- hp-geoip-private
- hp-geosite-cn
- hp-geosite-microsoft-cn
- hp-geosite-netflix
- hp-geoip-netflix
由於」規則集」是路由規則和DNS 規則的條件項,需要先行設置,其餘內容則按自左至右順序設置,就基本上不會出現大的問題。
手動新增規則集,在」規則集」標籤頁輸入框中輸入規則集名稱,然後點選新增按按鈕,就會彈出新增規則集頁面:
規則集類型分為本地和遠端兩種,分別代表本地規則集文件或互聯網上提供的規則集文件,本地規則集需要給出文件路徑,而遠端規則集文件則需要輸入規則集文件訪問的網址並指定出站節點;規則集文件分格式為源地址格式和二進制格式,代表文本格式和二進製文件格式,與規則集文件分格式為源地址格式和二進制格式,代表文本格式和二進製文件格式,與規則集文件分格式相關,此規則集的話想要新增規則集,可以從網路找到對應規則集文件,然後再加入即可。
規則集新增完成後,就可以進行路由和DNS 設定了。
首先設定路由,路由的設定項分為路由設定、路由節點、路由規則三個部分。其中路由設定是sing-box 路由配置的基本規則設定;路由節點是將代理節點標識成路由項供路由規則使用的內容;而路由規則是根據規則條件為不同的流量設定對應的存取規則,從而達到流量分流的目,提升代理使用體驗。
路由設定項說明如下:
- 路由模式:是HomeProxy 的工作模式,只能使用自訂路由模式
- 路由端口:用於指定哪些端口的流量可以被代理,可以選擇所有端口,也可以使用預設的僅常用端口
- 代理模式:用於指定HomeProxy 的工作模式,預設是TCP/UDP 全部轉發,會將5030 5031 和5333 的流量進行轉發,當然也可以使用其他模式,這基於對sing-box 的充分了解
- IPv6 支援:用於設定HomeProxy 是否支援IPv6 網絡,建議取消鉤選,這裡設定的不支援並不影響之後設定IPv6 的路由規則
- 繞過中國流量:用於設定是否使用防火牆規則來直接透過防火牆將流量NAT 轉發,從而減輕HomeProxy 的效能消耗,並根據需要自行選擇是否啟用
- 覆蓋目標位址:用於設定是否使用嗅探到的網域覆蓋連線目標,用於防止DNS 污染,根據需要自行選擇是否啟用,但建議不啟用
- 預設出站:用於設定預設的出站流量路由,就是出站流量未匹配到所有路由規則時,保底使用的出站路徑,注意如果默認同站選擇”禁用”,則表示HomeProxy 停止工作
之後設定路由節點,新增好的路由節點會在路由設定的預設出站中體現為下拉框的下拉列表,但是系統會預設含有直連和封鎖兩個路由節點,這就十分坑了,路由節點設定不對,HomeProxy 就死活啟動不起來,日誌也顯示的莫名其妙,所以設定時要多加留意細節內容。
先前說過,路由節點即是將代理節點與路由節點建立連結的過程,所有的代理節點都可以建立對應的路由節點,作為出路由來使用。已經新增好的路由節點會在節點清單中顯示,需要新增節點的話,可以在輸入框輸入路由節點名稱,然後點選新增按鈕,就會跳出如下新增節點頁面:
新增路由節點時,選擇好出站的代理節點,其他保持默認,之後點選儲存即可新增路由節點。有特殊要求時,可以對設定項進入調整,但這基於於sing-box 設定檔的充分理解,否則很容易出錯。
路由節點設定完成後,就可以設定路由規則了。需要新增路由規則時,只需要在輸入框輸入路由規則名稱,然後點選新增,就會進入路由規則設定頁面,由於設定的可選項非常多,範例只選擇使用規則集中的中國大陸IP 和網站,並使用反選功能表示非符合內容,使用代理出站的」route_Default」路由節點。
路由規則設定完成後,點選儲存按鈕就會增加一條路由規則,已經新增成功的路由規則會清單顯示在路由頁面上:
注意路由規則是有先後順序的,在上面的規則優先匹配,分別對應sing-box 配置項出站的block 、direct、和各類型出站節點,對於使用了出站類型為直連的規則,則需要設定出站節點為直連的路由規則。範例中設定了封鎖quic 流量的規則,但不需要設定封鎖節點,規則即可生效。
至於更細緻的路由規則,則可以根據個人需要自行設置,根據複雜的路由規則條件組合,就可以為不同應用設置不同的出站路徑,以達到精確分流的目的。範例就沒有做更為細緻的設置,大概規則描述可以總結為封鎖quic 流量、屬於規則集中中國大陸的網站和IP以及私網IP則直連訪問、其他流量則通過代理訪問。而這個代理存取則使用了節點群組,透過URL 測試來選擇最佳節點。
然後設定DNS,由於代理需要進行大量DNS 查詢,並且DNS 也可以使用不同的伺服器,所以需要對其進行精細設定。
DNS 設定先要對解析原則等內容進入設定:
設定好DNS 解析策略以及預設DNS 伺服器後,根據需要選擇是否停用DNS 緩存,全部完成後儲存配置就設定了DNS 的基本項目。
由於境內DNS 伺服器存在某些網站解析不正確的問題,一般需要設定多個DNS 伺服器來處理境外伺服器的網域請求。進入DNS 伺服器標籤頁,在輸入框輸入DNS 伺服器的名稱,點選新增按鈕,就會進入DNS 伺服器設定頁面:
範例新增了一個GOOGLE 的TCP DNS 伺服器(DoT),由於普通的DNS 請求是透過UDP 來發送的,如果出站使用的是代理節點路由,而代理節點如果不支援UDP 轉發,則會造成網域解析失敗,所以才使用TCP 連接DNS 伺服器。而配置項目中的」位址解析器」是為了因應使用網域名稱作為DNS 伺服器的情況(例如:https://dns.alidns.com/dns-query),那麼就需要使用位址解析器對這個DNS 伺服器的網域進行解析了。
全部DNS 伺服器新增成功後,就會在DNS 伺服器標籤頁清單顯示對應資訊:
最後設定DNS 規則,也就是存取DNS 伺服器時所使用的路由規則和解析規則。與路由設定類似,需要精細的條件組合,才能設定精確的DNS 規則項,全部規則設定完成後,會在DNS 標籤頁清單顯示。由於DNS 規則設定內容與路由規則類似,這裡不再過度贅述。
以上設定內容完成後,就完了HomeProxy 主要的設定項,至於存取控制和控制面板則是設定使用Web UI 網頁的,如無特別要求,保持預設即可。
HomeProxy 的使用
HomeProxy 的使用與其他代理客戶端沒有區別,啟動後即可正常使用。
可以進入服務狀態標籤頁,查看HomeProxy 以及sing-box 的運作日誌,也可以點選內外網站的測試按鈕查看代理程式是否正常運作。
查看HomeProxy 呼叫sing-box 偵聽訊息,就可以發現,其偵聽了5330、5331、5333端口,其中5330是一個mixed 端口,即同時支援HTTP 和SOCKS 代理,我們只需要將瀏覽器的網絡代理設置為路由器的IP 地址,端口使用5330,便可以通過HomeProxy 代理。至於其他模式,使用方法也類似。
至此,HomeProxy 的詳細使用教學就完成了,希望可以幫助大家了解HomeProxy 以及sing-box 的配置邏輯以及細節調整,能多充分享受優秀代理工具帶來的便利。