fakeip-compat:適配 Fake-IP DNS 環境的 Web Fetch 提供者

前言

在使用 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 提供者的拒絕邏輯:

  1. TUN Fake-IP 路徑: 當系統解析返回 Fake-IP 時,插件通過 DoH 重新驗證域名,然後將傳輸 Pin 到 DoH 驗證後的真實 IP 地址集合。
  2. LAN 路徑: 系統解析結果在 lanCidr 範圍內時,直接使用 Pin IP 傳輸,默認保留 TLS 檢查。

注意事項

  • 手動選擇: 插件僅註冊提供者,不會自動選擇。必須通過 Profile YAML 或環境變量顯式指定。
  • 依賴檢查: 安裝前需確認 DSH Peers 和運行時依賴已就緒。
  • 無構建: 該包無構建步驟,安裝後即可運行。
  • 配置完整性: 修改配置文件時,必須同時保留 searchProvider 配置,因爲配置替換是全行進行的。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜