CClash 下载中心下载入口

配置笔记

Clash 电脑端:临时终端代理变量怎样在测试后恢复

Clash 电脑端:临时终端代理变量怎样在测试后恢复。了解适用条件、操作步骤与常见问题的排查方法。

更新于 2026/10/4 · Clash 编辑组

适用条件

电脑端使用 Clash 内核的 http、https、socks 或 mixed 入站做临时连通测试时,经常在当前终端导出代理环境变量。这些变量只作用于本会话和它拉起的子进程,不会改写全局配置里的运行模式、局域网开关或用户验证。测试结束后,要恢复的是终端不再自动指向入站,而不是去改 mode、allow-lan 或 bind-address。

请同时满足:变量由本窗口手工写入;目标是本机入站;你要让后续命令停止自动走代理。若变量写在 shell 启动文件中,只在当前窗口撤销一次并不能从文件里消失。手册中 skip-auth-prefixes 默认包含 127.0.0.1/8 与 ::1/128,本机即使不带账号,只要变量仍指向入站,流量仍会进入内核。若已配置 authentication,变量里还可能带有账号,恢复时必须整项去掉。会话级变量一旦被导出,随后在该窗口启动的子进程都会继承;恢复是否完成,只能以该窗口内再次列出环境项的结果为准,而不能以控制页面是否仍能打开为准。

核对当前会话里的变量

在同一窗口列出代理相关环境项。Linux 与 macOS 用 env 过滤名称中含 proxy 的项。Windows 可在 PowerShell 中筛选环境变量名包含 proxy 的条目。判断依据是:出现 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、NO_PROXY 或小写同名键,则子进程仍会继承;完全没有这些键,则终端变量层已经空白。

不要把内核是否在运行当成变量是否存在。内核已退出但变量仍在,程序只会连接失败,这不叫已经恢复。也不要只看大写键,部分工具只读小写键。列出结果应作为是否执行下一节取消赋值的依据。已经在运行的子进程继承的是启动瞬间的环境,只改父 shell 不会让旧进程丢掉旧值,必须结束这些子进程后再查。

取消赋值并复查

在 POSIX shell 中对大小写两套代理变量执行 unset。Windows 命令提示符将同名变量赋为空。必须在当初设置变量的窗口操作。新开终端不能证明旧窗口已恢复。取消后立即重复列出命令,判断依据是列表中不再出现这些键。

运行模式仍可能是 rule、global 或 direct,这只影响已经进入内核的流量如何处理,不能代替取消变量。allow-lan 为 false 时其他设备不能使用入站,与本机终端是否恢复无关。bind-address 限制的是入站监听地址,同样不是恢复变量的手段。lan-allowed-ips 与 lan-disallowed-ips 只在 allow-lan 为 true 时约束其他设备,也不能用来关掉本机终端变量。

仍异常时的下一步

若取消后程序仍走向入站,按顺序处理。先关闭该终端再开新会话复查环境,排除进程继承。接着检查命令行参数是否把代理写死。然后把 log-level 调到 info 或 debug,看控制台有无该进程的新连接。若当前是 silent,控制台不输出,不能用来判断变量是否恢复;error 或 warning 也可能看不到普通连接。find-process-mode 为 always 会强制匹配进程,为 strict 由内核判断,为 off 时不要用进程名当作唯一证据。

日志已无新连接而程序仍提示代理错误,应去查程序自己的配置,停止重复取消变量。若提示认证失败,对照 authentication 与 skip-auth-prefixes,确认本机前缀是否应跳过验证。external-controller 与 secret 用于接口控制,不是终端变量恢复步骤。ipv6 为 false 时,仅 IPv6 目标失败也不代表变量没清干净。若新会话环境是干净的而旧窗口仍有变量,只说明两个进程互不影响,旧窗口仍需单独取消。

参考资料: https://wiki.metacubex.one/config/general/

← 返回全部文章