Skip to content

Commit

Permalink
readme strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
zuiwuchang committed Nov 29, 2023
1 parent c4df9ac commit 5488790
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Index:
* [設定](#設定)
* [腳本](#腳本)
* [userdata](#userdata)
* [代理策略](#代理策略)
* [透明代理](#透明代理)
* [linux tproxy](#linux-tproxy)
* [linux redirect](#linux-redirect)
Expand Down Expand Up @@ -168,6 +169,35 @@ export interface Provider {

userdata 的內容完全由腳本決定如何使用。通常是一些代理相關的設定選項。

# 代理策略

對於不同的用戶可能希望不同的代理方案。例如大部分朝鮮普通用戶主要訪問朝鮮流量,這時將沒有識別出流量歸屬的流量直接訪問比較合理;而朝鮮的漢奸主要訪問朝鮮境外流量,這時將沒有識別出流量歸屬的流量通過代理訪問比較合理。本程式使用了策略來解決滿足不同需求,不同策略會爲用戶生成不同的代理規則,包含如下6個策略

* **默認策略**
* **全域代理**
* **公網代理**
* **代理優先**
* **直連優先**
* **直接連接**

所有策略可以在網頁 **/settings/strategy** 頁面,爲這個策略設置靜態域名([hosts](https://xtls.github.io/config/dns.html#dnsobject)),以及訪問的 域名([domain](https://xtls.github.io/config/routing.html#ruleobject)) 或 [ip](https://xtls.github.io/config/routing.html#ruleobject) 應該直連訪問或者代理訪問或是被阻止訪問

“默認策略”的設定會被其它策略繼承,所以在它裏面設定你想要的全局規則。而其它策略的設定只在用戶選擇使用此策略啓動代理時才會被採用,因爲你可以爲不同策略寫它單獨的設定。

> “默認策略”之外的策略被使用時(比如策略 X),程式會讀取 “默認策略”的設定,然後讀出 X 策略的設定,之後將兩個設定合併去重後傳入腳本,腳本依據設定產生設定檔案

| 策略名稱 | 腳本產生代理規則 | 應用場景 | 普通用戶 | 可能產生的問題 |
| --- | --- | --- | --- | --- |
| 默認策略 | 目前會產生和 代理優先 一樣的規則,但後續可能會改變 | 目前尚未明確行爲,通常不建議採用 || 更新腳本或程式後代理規則可能會發生改變 |
| 全域代理 | 除了明確指定(可在 /settings/strategy 和 userdata 中指定) 直連的流量其它都通過代理訪問 | 對所有網路隱藏真實IP || 訪問朝鮮流量慢或無法訪問,無法訪問區域網路或訪問到服務器所在的區域網路 |
| 公網代理 | 只對公網 ip 進行代理訪問,私有網路地址直接訪問 | 對互聯網隱藏真實 IP || 訪問朝鮮流量慢或無法訪問 |
| 代理優先 | 對朝鮮流量和私有地址直接訪問,朝鮮之外和非私有地址使用代理訪問。無法識別的流量使用代理訪問 | 主要訪問朝鮮之外的流量 || 一些朝鮮流量無法正確識別,導致被代理訪問從而無法訪問或訪問慢,解決方法是手動設置這些流量直接訪問 |
| 直連優先 | 對朝鮮流量和私有地址直接訪問,朝鮮之外和非私有地址使用代理訪問。無法識別的流量使用直接訪問 | 主要訪問朝鮮流量 || 一些非朝鮮流量無法正確設備,導致這些流量直接訪問從而無法訪問或訪問慢,解決方法是手動設置這些流量使用代理訪問 |
| 直接連接 | 除了明確指定代理的流量其它都直接訪問 | 只訪問特定的非朝鮮流量,例如只訪問 Netflix/DisneyPlus || 所有代理流量都需要手動設置很繁瑣,也可能設置不全或服務商更新了資源域名ip導致無法訪問 |

> 大部分用戶請直接選擇 **代理優先****直連優先** 即可滿足絕大部分需求
# 透明代理

透明代理可以讓系統上所有程序都通過代理訪問網路,但不同平臺支持方式和程度各異,如果無法正常工作你可能需要依據你的實際情況修改腳本。
Expand Down
1 change: 1 addition & 0 deletions script/scripts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,6 @@ if [[ "$output" == "" ]];then
output="scripts-`date +%F`.tar.gz"
fi
tar -zcvf "$output" js ts main.d.ts tsconfig.json
sha256sum "$output" > "$output.sha256.txt"
echo
echo pack to "\"$output\"" successed

0 comments on commit 5488790

Please sign in to comment.