1499501762/dsh-web-fetch-proxy ↗★ 0

dsh-web-fetch-proxy

DSH 插件:让内置 web_fetch 经由本地代理(Clash/Mihomo 等)出网,绕过 TUN fake-ip 假地址被 SSRF 防护拦截的问题。 / DSH plugin that routes the built-in web_fetch through a local proxy, so TUN fake-ip addresses stop tripping the SSRF guard. 适合使用Clash等代理且遇到TUN模式SSRF拦截问题的用户。

Package
dsh-web-fetch-proxy
Compatibility
Unverified
Harness peer range
>=0.1.5-rc.2
Version
0.2.0
License
MIT
Last updated
Sep 17, 2026

Other repositories with this package name

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:1499501762/dsh-web-fetch-proxy

配置页面

重启 DSH 后,设置 → 常规 里会出现「Web Fetch 代理」一栏:

控件作用
自动检测 / 手动代理 / 关闭写 web-fetch-proxy settings 命名空间的 proxy 字段,立即生效,无需重启
代理地址输入框手动模式下填 http://127.0.0.1:7897 或 127.0.0.1:7897;主机端会校验,非法地址在保存前就被拒绝
绕过列表追加 noProxy 条目;localhost、127.0.0.1、::1 由 dsh-http-proxy 强制绕过
状态行 / 重新检测读宿主实时状态(当前路由、来源、失败原因),并可按需重新探测一次

状态行显示的是宿主真正生效的结果,例如:

已生效  http://127.0.0.1:7897  (via: clash-config:C:\Users\...\config.yaml)

页面读的是一个带围栏的只读接口 POST /web-fetch-proxy/api(仅接受 loopback / 受信 Host、同源请求): 请求体 {"action":"status"} 取状态,{"action":"redetect"} 触发一次重新探测。

页面不需要「重启后生效」:设置走的是 applies: live 的 settings 命名空间,改动通过 scope.watch() 直接驱动路由重建(旧的策略先释放,再按新配置重新探测安装)。

配置(cordis 层)

页面写的是同一份配置;cordis.patch.yml 的 config 提供部署级基线与默认值(settings 的 base 层), 页面上没有暴露的字段只能在这里改:

- insert:
    - id: web-fetch-proxy
      name: dsh-web-fetch-proxy
      config:
        enabled: true        # false 则完全不介入
        proxy: auto          # auto | off | http://host:port | host:port
        noProxy: ""          # 额外的不走代理的域名,逗号分隔
        retryMs: 15000       # 自动发现失败后的重试间隔,0 = 不重试
        maxRetries: 20       # 最大重试次数
        probeTimeoutMs: 400  # 单个候选代理的 TCP 探测超时
字段类型默认说明
enabledbooleantrue部署级总开关;false 时插件不安装任何路由(页面无法覆盖)
proxystringautoauto 自动发现;off/none/direct 不安装;也可以写死代理地址。页面可改
noProxystring""追加到绕过列表(localhost、127.0.0.1、::1 由 dsh-http-proxy 强制绕过)。页面可改
retryMsnumber15000代理客户端比 DSH 晚启动时,按此间隔重试
maxRetriesnumber20重试上限(约 5 分钟)
probeTimeoutMsnumber400候选代理的 TCP 连接超时

也可以直接用环境变量指定,优先级高于自动发现:

set DSH_WEB_FETCH_PROXY=http://127.0.0.1:7897