前言¶
在使用 TUN 模式(如 Mihomo 或 Clash)的 DSH 環境中,系統 DNS 解析器通常返回 Fake-IP 地址(例如 198.18.0.11),而非真實 IP。原生的 http fetch 提供者默認會攔截這些請求,因爲它們不屬於公共地址範圍,導致本應生效的流量被阻斷。fakeip-compat 是一個 Fake-IP 感知的 Web Fetch 提供者,它允許流量在 TUN Fake-IP 環境下傳輸,並支持訪問被 Pin 的局域網 CIDR。
核心功能¶
該插件提供以下能力:
* Fake-IP 感知的 Web Fetch 提供者。
* 支持 TUN (Mihomo/Clash) DNS 環境。
* 支持對特定局域網 CIDR 的訪問。
* 使用 DoH(DNS over HTTPS)進行驗證。
* 集成設置界面,支持配置修改。
安裝與啓用¶
插件通過 DSH 插件註冊機制安裝,無需構建步驟。
安裝¶
執行以下命令將插件添加到指定配置文件:
dsh plugin --profile web add github:iwinoid/fakeip-compat
運行時依賴¶
安裝後需確保以下依賴可用:
* DSH Peers: @deepseek-ai/dsh-web, @deepseek-ai/dsh-timeout
* 運行時庫: @deepseek-ai/schemastery, ipaddr.js, undici
啓用方式¶
該插件不會自動選擇自己,必須顯式指定。在配置文件中設置 fetchProvider 爲 fakeip-http。同時需要保留原有的 searchProvider 配置。
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: tavily # 保持原有的搜索提供者
fetchProvider: fakeip-http # 切換爲 fakeip-http
也可以通過環境變量指定:
DSH_WEB_FETCH_PROVIDER=fakeip-http
啓用後,可通過以下命令驗證配置:
dsh --profile <name> --dump-config | grep -A8 fakeip
配置說明¶
插件註冊了 fakeip-compat 配置節,主要參數如下:
| 參數名 | 默認值 | 說明 |
|---|---|---|
lanCidr |
192.168.0.0/16 |
局域網允許列表。系統解析結果在此範圍內時,使用 Pin IP 傳輸。 |
fakeV4Cidr / fakeV6Cidr |
198.18.0.0/16 / fdfe:dcba:9876::/48 |
本地 Fake-IP 池。需與 Clash Verge 配置中的 Fake-IP 範圍保持一致。 |
dohEndpoints |
1.1.1.1/dns-query, 8.8.8.8/resolve |
受信任的 DoH (JSON API) 端點。通過直接 IP 字面量連接,第一個完全成功的端點生效。 |
dohTimeoutMs |
8000 |
DoH 查詢的超時時間。 |
lanInsecure |
false |
僅在局域網路徑上跳過 TLS 檢查。用於自簽名設備的場景。 |
maxResponseBytes / maxBodyChars / timeoutMs / maxRedirects / userAgent |
5000000 / 100000 / 30000 / 5 / 官方 UA |
同官方提供者的含義。 |
設置界面¶
插件註冊了一個名爲 fakeip-compat 的設置卡片(位於 Settings → Plugins → Plugin configuration)。
* 功能: 瀏覽器端的手寫 UI,無構建步驟。
* 生效: 修改配置後立即生效,無需重啓 DSH。
* 容錯: 無效輸入(如錯誤的 CIDR)會阻止保存;運行時修改錯誤會保留上次有效值,不影響正在進行的 Fetch 請求。
API 行爲¶
Provider ID 爲 fakeip-http。該插件主要處理兩種路徑,其餘路徑遵循原生 http 提供者的拒絕邏輯:
- TUN Fake-IP 路徑: 當系統解析返回 Fake-IP 時,插件通過 DoH 重新驗證域名,然後將傳輸 Pin 到 DoH 驗證後的真實 IP 地址集合。
- LAN 路徑: 系統解析結果在
lanCidr範圍內時,直接使用 Pin IP 傳輸,默認保留 TLS 檢查。
注意事項¶
- 手動選擇: 插件僅註冊提供者,不會自動選擇。必須通過 Profile YAML 或環境變量顯式指定。
- 依賴檢查: 安裝前需確認 DSH Peers 和運行時依賴已就緒。
- 無構建: 該包無構建步驟,安裝後即可運行。
- 配置完整性: 修改配置文件時,必須同時保留
searchProvider配置,因爲配置替換是全行進行的。