您现在的位置是:知识 >>正文
fiddler代理ip不同
知识73人已围观
简介Fiddler抓包时换了代理IP,请求却还是从老地址出去的,这事我碰过不下十次。别急着怀疑软件坏了,八成是代理作用域没设对——Fiddler默认只对HTTP流量生效,你换的代理若只配了HTTPS,或者 ...
Fiddler抓包时换了代理IP,请求却还是从老地址出去的,这事我碰过不下十次。别急着怀疑软件坏了,八成是代理作用域没设对——Fiddler默认只对HTTP流量生效,你换的代理若只配了HTTPS,或者反过来,那自然白搭。
上个月调试一个跨境电商的爬虫,目标站封IP封得狠。我在Fiddler的ScriptEditor里写了个规则,让每个请求轮换三个住宅代理。跑起来一看,日志里记录的出口IP纹丝不动,全是本地直连。查了半天,发现是代理认证方式没匹配——那三个代理里有两个需要用户名密码,我在代码里只填了IP和端口,Fiddler默默把认证失败的请求降级成了直连。这种静默降级最坑人,它不报错,就是结果不对。
还有个容易忽略的点:Fiddler的代理设置分两层。一层是全局的,在Tools > Options > Connections里,改的是Fiddler自身作为系统代理的监听端口;另一层是每个会话的,在QuickExec命令行里输`urlreplace`或者用`session[i].["x-overrideHost"]`这类属性。很多人只在第一层改了上游代理,但Fiddler对某些请求会绕过上游,直接走网卡——比如CONNECT隧道建立后的流量,它只转发不解包,这时候你设置的上游代理根本管不着。
具体怎么判断是哪个环节出了问题?最笨也最有效的办法,是在目标服务器上搭个回显脚本,把收到的请求头里的`X-Forwarded-For`和实际TCP连接的对端IP打出来。我之前用Nginx加了两行配置,`add_header X-Real-IP $remote_addr;` 这样就一目了然。如果Fiddler显示的出口IP和Nginx记录的`$remote_addr`对不上,那说明代理链路里还有一层你没看见的转发。
另一个坑是DNS解析。你换了代理IP,但域名解析还是本地DNS的结果。代理服务器拿到的是它自己解析的IP,可Fiddler在发请求前会先做一次本地解析,用来判断是否走代理。如果本地解析结果和代理服务器不一致,某些请求会被Fiddler判定为“不需要代理”,直接本地发出去。解决办法是在Fiddler的Hosts映射里把目标域名固定成代理服务器解析出的那个IP,或者干脆在Script里强制`session[i].bypassGateway = false`。
最后提醒一句,Fiddler的代理轮换别贪多。我试过同时挂五个代理池,结果超时率飙升到40%。因为Fiddler是单线程处理代理切换的,频繁换代理会导致TCP连接复用失效,每次都得重新握手。实际调试中,两三个高质量代理轮换足够用了,再多就是自找麻烦。
Tags:
相关文章
代码先锋网
知识代码先锋网 代码先锋网 凌晨两点,我把一段跑了三天三夜的爬虫代码扔进回收站。不是因为报错——它工作得过于完美,反而让我怀疑自己写它的意义。这种荒诞感,是我在代码先锋网当版主第七年最常有的情 ...
【知识】
阅读更多工具网站集合
知识浏览器书签栏里躺着四十多个链接,真正点开的不到十个。我花了一个下午清理,删掉三十个——剩下这些工具网站,每一个都救过我的命。 先说翻译。DeepL刚出来那会儿我嗤之以鼻,Google翻译用了十年,肌肉 ...
【知识】
阅读更多无线网传设备
知识去年冬天,我在老家的炕头上,用手机给客厅里的电视投屏。路由器在里屋,隔着两堵承重墙,信号弱得可怜。画面卡成幻灯片,声音断断续续。我爸坐在炕梢,看着电视上那个转圈的加载图标,说:“这玩意儿还不如当年那根 ...
【知识】
阅读更多