有个做本地生活推广的朋友上周问我:他在三个城市分别看同一批关键词的搜索排名,结果三个城市的页面几乎一模一样,怀疑是代理根本没走通。我让他别急,先花五分钟把本机的网络出口查一遍——结果发现是浏览器插件里挂着一条旧规则,系统设置里其实是空的,而他一直在看系统设置。
这类事很常见。代理配没配上,光看软件界面上的绿灯是不算数的,得从三个地方交叉验证:系统层、浏览器与命令行层、真实出口层。下面按我平时排查的顺序,一步步带你过一遍。
一、先分清:代理可能藏在三个不同的地方
很多人以为"开了代理就是全局",其实电脑上至少有三种互不相干的方式会把你的流量送出去,它们开关位置不同、生效范围也不同:
| 类型 | 在哪里设置 | 影响范围 | 典型表现 |
|---|---|---|---|
| 系统代理 | Windows 设置 / macOS 网络面板 | 大部分走系统网络设置的软件 | 关了代理软件,设置里开关还留着 |
| 浏览器插件代理 | 浏览器扩展的设置页 | 只影响这个浏览器 | 浏览器IP变了,其他软件没变 |
| 软件自带代理 / 环境变量 | 软件内部选项、命令行变量 | 只影响该程序或当前终端 | 命令行能查到的IP和浏览器不一样 |
所以在动手之前先问自己一句:我怀疑的是哪一层?如果是"浏览器里查到的IP不对",重点查第二层;如果是"这台机器的所有程序看起来都在走代理",重点查第一、三层。
二、检查点一:翻系统设置,看开关和注册表
Windows 上最直接的位置是:设置 → 网络和 Internet → 代理。往下看"手动设置代理"那一块,"使用代理服务器"如果是开着的,下面的地址和端口就会显示出来;如果是关着的,说明系统层没设代理。同一页上方还有"自动检测设置",这个选项开着的时候,有些环境会通过脚本自动下发代理,界面上看不出地址,容易被忽略。
但光看界面不够,因为有些安装包或者旧版本软件退出时会留下残留。这时候开一个命令提示符,敲两行命令更靠谱:
# Windows:查看系统(WinHTTP)层面的代理
netsh winhttp show proxy
# 输出 "直接访问(没有代理服务器)" 表示系统层没有代理
# 输出了具体的 IP:端口,说明系统层挂着代理
想看更底层的用户级设置,可以查注册表里那个开关,值 ProxyEnable 是 1 就是开着,0 就是关着:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
macOS 上的位置是:系统设置 → 网络 → 选中当前在用的连接(Wi-Fi 或有线)→ 详细信息 → 代理。里面会列出网页代理(HTTP)、安全网页代理(HTTPS)、SOCKS 代理等几项,哪一项打了勾就是开了。快捷一点的办法还是终端:
# macOS:查看当前系统代理配置
scutil --proxy
# 关注 HTTPEnable / HTTPSEnable / SOCKSEnable 的值
# 1 表示启用,0 表示未启用
这一步的意义在于"排除法"。系统层确认干净,后面查出来的异常IP就一定是浏览器或某个软件自己带出去的。
三、检查点二:浏览器插件、启动参数、环境变量,最容易漏的都在这里
我见过最多的"幽灵代理"就出在这一层。代理切换类插件挂在浏览器右上角,界面小、规则多,切过一次之后忘掉的情况特别普遍。判断方法很简单:打开一个无痕/隐私窗口,再查一次IP。无痕窗口默认不加载扩展(除非你手动允许),如果无痕窗口显示的IP和普通窗口不一样,那基本可以锁定是插件在起作用。
顺手再检查两个地方:
一是浏览器的快捷方式。右键桌面上的浏览器图标 → 属性,看"目标"那一行的末尾有没有类似 --proxy-server= 这样的启动参数。有的话,这个浏览器每次打开都会走代理,跟系统设置和插件都无关。
二是命令行环境变量。Python 脚本、命令行下载工具、自动化程序,很多都会优先读 http_proxy 和 https_proxy 这两个变量,而且它们往往是在某次临时测试时设进去的,之后一直没清:
# Windows 命令提示符
echo %http_proxy%
echo %https_proxy%
echo %all_proxy%
# macOS / Linux 终端
env | grep -i proxy
# 有输出说明变量还在,需要清掉:Windows 用 set http_proxy= ,mac 用 unset http_proxy
顺带说一句,如果你用的是带图形界面的采集工具或者测试工具,它们内部通常也有一个独立的代理填写框,这个框的优先级一般高于系统设置。查的时候别只盯着操作系统,把手上正在跑的那个软件也点开看一眼。
四、检查点三:把出口IP和本机公网IP放在一起对一对
前面两步都是"看设置",这一步才是"看结果"。做法是:换一个干净的浏览器窗口,搜索"我的IP"或者"IP地址查询",记下页面上显示的IP和归属地;然后再用另一个没配代理的浏览器(或者手机连同一个Wi-Fi)查一次,两边一对比就清楚了。
这里有个容易搞混的点:你在查IP网站上看到的IP,就是网站服务器看到的你,但前提是同一个协议、同一条链路。如果电脑同时有 IPv4 和 IPv6,一个网站可能走 IPv6 显示真实地址,另一个走 IPv4 显示代理地址,看着就像"代理时灵时不灵"。
| 你看到的现象 | 大概率的真实情况 | 下一步怎么确认 |
|---|---|---|
| 两个浏览器查出的IP不一样 | 其中一个浏览器挂着插件代理 | 开无痕窗口再查一次,看跟哪边一致 |
| IP 变了,但归属地显示为本地 | 走的是本地机房出口,没换地区 | 核对你配置的地址是不是本地节点 |
| 设置里明明关了,IP 还是外地的 | 软件自带代理或环境变量残留 | 查启动参数和 http_proxy 变量 |
| 一会儿本地一会儿外地,反复跳 | 多条规则并存,或者 IPv6 直连 | 先关掉 IPv6 再测一轮 |
还有一个细节值得记一下:路由器上看到的公网IP,是整条宽带共享的出口;而电脑上查到的IP,是这次请求实际用的出口。两者不一样,恰恰说明电脑这边确实通过代理出去了。想确认代理有没有生效,就对比这两个数——一样说明走的直连,不一样说明中间有转发。
五、几种“看着配好了、其实没生效”的情况
排查到这一步,多数问题已经能定位了。下面这几种是我遇到过频率最高的,按经验从高到低排一下:
DNS 缓存没刷新。刚切换完代理,系统或者浏览器还拿着上一次的解析结果,页面打开的还是老线路。换个没访问过的站点测,或者重启一下浏览器,比反复开关代理有用。
部分流量没走代理。插件里的规则模式(比如只代理某些域名)会把大部分请求放行直连,你查IP时恰好命中直连规则,看起来就"没生效"。临时切成全局模式再测一次,能快速分辨是规则问题还是配置问题。
UDP 类流量绕开了代理。不少程序除了常规请求,还会用 UDP 做一些辅助通信,这类流量常常直接走本地网络,导致"某一项数据明显不对"。这种情况单纯查IP是查不出来的,要靠软件自己的日志。
浏览器之外的进程不受影响。系统代理只对读取系统配置的程序生效,有些程序自带网络栈,压根不读系统设置。所以才会出现"浏览器是代理IP、命令行是本机IP"的现象。
六、确认完出口之后,真正要解决的问题是IP资源够不够
检查点走完,你大概已经能准确说出"我这台机器现在的出口在哪"。如果你的用途只是临时核对一下搜索结果、看看不同地区的页面展示,那到这儿就结束了。
但如果你是要按城市做推广效果核对、做搜索排名测试,或者跑数据采集、多账号独立运营这类需要反复"获取新的IP"的活,那查得清只是第一步,后面还得有一池子稳定、干净、能按城市挑的IP。神龙IP在这块比较对口:200+城市精准定位,想核对哪个城市的展示结果就直接挑那个城市的节点;1000万+纯净IP、自营机房,30ms 级别的响应,切换节点时不会卡在连接上半天。带宽 6-15M 可定制,跑采集、压测这类吃并发的场景也够用。
套餐上有两种比较常用:动态高级适合需要频繁换、按城市轮换的场景,6Mbps 峰值,日更 200 万+ IP,时效 2-360 小时可选;静态高级适合需要长期固定同一个出口的场景,比如账号长期在同一个IP下操作,走的是运营商合作资源,稳定性更好。协议上支持 IKEv2、PPTP、L2TP、SSTP、SOCKS5,配置方式和上面查系统代理的路径一一对得上,配完照着三个检查点再核一遍就能确认到位,数据传输全程加密。
常见问题
Q:系统设置里显示没开代理,为什么查到的IP还是外地的?
先别怀疑系统,八成是浏览器插件、浏览器启动参数或者环境变量在起作用。按检查点二的顺序走一遍:开无痕窗口查一次IP,看"目标"里有没有 --proxy-server,再 env | grep -i proxy 看看变量。三个地方都干净,IP 却还是外地,就查一下是不是路由器或者上游网关做了转发。
Q:用同一个浏览器,在两个查IP网站上看到的结果不一样,哪个准?
都准,只是它们看到的协议不同。一个网站可能优先走 IPv6,另一个只认 IPv4,而你代理的可能是其中一种。判断方法:在同一个网站上多刷两次看是否稳定,再对比另一个只看 IPv4 的查询结果,能对上就说明只是协议差异,代理本身是生效的。
Q:公司电脑上改不了代理设置,提示被管理员锁定,怎么办?
这种情况通常是组策略统一下发的,界面上改不动但实际配置是生效的——也正因如此,"看起来没开"和"实际在走"经常同时存在。判断办法还是回到出口IP对比:拿本机查到的IP和路由器上的公网IP比一下,不一样就说明确实在走代理,不用再去纠结设置面板。
Q:怎么快速确认换上的新IP真的换了地区,而不是只换了号?
两个动作:一是查IP时把归属地一起看,光看数字变化没意义,得看省份城市对不对;二是在目标网站上做一次实际检索,看看返回的内容是不是符合那个地区的展示。一般两次核对就能确认,如果归属地对、内容也对,那这次切换就算成功了。




