dsh-net-switch
在Clash代理与直连间无缝切换网络模式 支持通过状态条、Agent工具或命令实时切换DSH出站流量代理,适合有网络环境切换需求的用户。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:B1aZerr/dsh-net-switch說明文件
閱讀完整 README ↗3. 配置
在 profile 的 cordis.patch.yml 里覆盖(可选,全部有默认值):
- id: net-switch
name: 'dsh-net-switch'
config:
proxy: 'http://127.0.0.1:7897' # 显式代理;省略则依次看环境变量 → verge.yaml → 默认 7897
mode: lan # 启动模式:clash | lan(默认 lan,即保持现状)
autoFallback: true # 代理不通时自动回退直连(false = 严格模式,请求直接失败)
probeIntervalMs: 5000 # 探活间隔
probeTimeoutMs: 2000 # 单次探活超时
noProxy: ['nas.home.arpa'] # 额外绕过项(主机名/IP/CIDR)
persist: true # 记住最后一次选择,重启后恢复
statePath: null # 状态文件路径;默认 $DSH_HOME/storages/dsh-net-switch.json
publishEnvToChildren: true # 同时把代理写进子进程环境(git/curl/npm/pwsh)
enabled: true # false = 整个插件不启用
模式来源优先级:config.mode → 状态文件里记住的选择 → lan。
HTTP 路由
宿主暴露两个仅限回环的路由,GUI 胶囊靠它们工作:
| 方法 | 路径 | 说明 |
|---|---|---|
GET | /dsh-net-switch/state | 返回完整状态 JSON(含 mode / effective / reachable / degraded / proxy / noProxy / summary) |
POST | /dsh-net-switch/mode | 请求体 {"mode":"clash"|"lan"} 或 {"toggle":true},返回新状态 |
安全栅栏:Host 必须是回环地址;POST 还要求 Origin(若浏览器给了)与 Host 同源。别的网页无法通过跨站请求改你的出网路由。