从 Fiddler 提示 "system proxy was changed" 开始:一次 Windows 进程、服务与代理排查实战
很多人第一次用 Fiddler 抓包时,都会遇到一个经典问题:
the system proxy was changed
刚开始我以为只是 Fiddler 的普通提示,但后来发现:
- 系统代理被反复修改
- 某个进程一直自动重启
- 明明杀掉了进程,却还能自己恢复
最后一路排查,定位到了:
ECAgent.exe(EasyConnect)
这篇文章就用这次经历,完整总结一下:
- Windows 中"进程 / 服务 / 详细信息"的区别
- 如何定位是谁在修改系统代理
- 为什么有些进程"杀不掉"
- 如何找到"是谁在托管这个进程"
- 正确关闭一个会自动恢复的进程
一、问题起点:Fiddler 一直提示代理被修改
当时打开 Fiddler 后,不断弹出:
the system proxy was changed
意思其实很简单:
系统代理设置被其他程序改了
因为 Fiddler 工作原理是:
浏览器
↓
系统代理(127.0.0.1:8888)
↓
Fiddler
↓
真实网站
也就是说:
👉 Fiddler 必须"接管系统代理"才能抓包。
所以当有别的软件也在改代理时,就会冲突。
二、第一步:如何定位"是谁在改代理"
这里我用到了微软官方工具:
Process Monitor(ProcMon)
它可以监控:
- 注册表
- 文件
- 进程
- 网络行为
非常适合查:
是谁在修改系统代理
三、ProcMon 排查步骤
1. 打开 ProcMon
运行:
Procmon.exe
第一次会出现大量滚动日志。
2. 清空日志
点击:
Clear(橡皮擦)
避免历史信息干扰。
3. 设置过滤条件
核心过滤:
Path contains Internet Settings
以及:
Operation is RegSetValue
含义:
监控谁在修改系统代理相关注册表
四、找到元凶:ECAgent.exe
很快日志中出现:
ECAgent.exe
它在不断修改:
ProxyServer
ProxyEnable
Internet Settings
到这里就能确认:
👉 是它在抢系统代理。
五、什么是 ECAgent.exe
后来发现:
ECAgent.exe = EasyConnect(深信服)
即使我已经没有在使用 EasyConnect:
- 它依然常驻后台
- 自动修改系统代理
- 并且无法直接结束
于是我想要直接杀掉ECAgent进程,可是发现每次杀掉进程之后其一下子又起来了。根本杀不掉
六、为什么"杀掉进程"没用
这里就涉及 Windows 一个很重要的概念:
进程 ≠ 服务
很多人会混淆:
- 任务管理器中的"进程"
- "详细信息"
- "服务"
其实它们不是一回事。
七、Windows 中三者的区别
1. 进程(Processes)
任务管理器第一页看到的:
Chrome
微信
QQ
Fiddler
属于:
简化后的运行程序列表
更偏"用户视角"。
2. 详细信息(Details)
这里才是真正的:
所有运行中的 exe
包括:
- chrome.exe
- ECAgent.exe
- svchost.exe
每个都有:
- PID
- CPU
- 内存
这是查问题最核心的位置。
3. 服务(Services)
services.msc 中看到的:
Sangfor
Windows Update
DHCP Client
它们本质是:
系统级后台守护程序
负责:
- 自动启动
- 长期运行
- 拉起子进程
八、为什么 ECAgent.exe 杀不掉
真正结构其实是:
Sangfor Service(服务)
↓
启动 ECAgent.exe(进程)
↓
监控 ECAgent 是否存在
↓
如果被杀 → 自动重启
所以:
你杀的是"进程"
但真正控制它的是"服务"
九、正确关闭方法
最开始我只是:
taskkill /F /IM ECAgent.exe
结果:
几秒后自动恢复
原因就是:
👉 Sangfor 服务还在。
十、正确的处理顺序
正确流程应该是:
1. 停止服务
2. 禁用服务
3. 再结束进程
具体步骤
1. 打开服务管理器
Win + R
services.msc
找到:
Sangfor
EasyConnect
ECAgent
2. 停止服务(找到对应的服务,右键鼠标转到服务选线)
右键:
停止(Stop)
3. 禁用自动启动
属性 → 启动类型:
禁用 / 手动
4. 再结束进程
此时再:
taskkill /F /IM ECAgent.exe
进程就不会复活了。
十一、如果还是会自动恢复怎么办
说明还有:
- 计划任务(Task Scheduler)
- 开机启动项
- watchdog 守护程序
继续检查:
taskschd.msc
以及:
任务管理器 → 启动应用
十二、这次最大的收获
这次最大的认知变化是:
以前:
"杀掉进程" = 关闭程序
后来才发现:
很多进程只是"服务托管的执行体"
真正控制它们的:
是后台服务。
十三、以后遇到类似问题的万能排查流程
以后再遇到:
- 代理被改
- 杀不掉进程
- 软件自动恢复
- Fiddler 冲突
- VPN 抢代理
我会按下面流程排查:
Step 1:先找是谁在修改系统
工具:
- ProcMon
重点看:
RegSetValue
Internet Settings
ProxyServer
Step 2:找到进程
定位:
PID
exe 名称
Step 3:判断是否有服务托管
检查:
services.msc
Step 4:检查计划任务
taskschd.msc
Step 5:按正确顺序关闭
服务
↓
计划任务
↓
启动项
↓
进程