抓包看对方服务器IP,最直接的方法是用抓包工具拦截一次完整的网络请求,从请求目的地或响应来源中提取真实的IP地址。你会发现,网页或App上显示的域名其实只是“门牌号”,而IP才是服务器真正的“坐标”,这篇文章会手把手教你在电脑和手机上用Wireshark、Fiddler等工具定位到它。
为什么你在抓包里看不到“服务器IP”
很多朋友第一次抓包会懵:明明抓到了数据,但列表里全是看不懂的乱码和域名,IP到底藏哪了?这是因为现代网络通信默认使用域名而不是裸IP,你的设备在发出请求前,会先通过DNS服务器把域名翻译成IP,然后才建立连接,翻译的过程在系统底层完成,所以你在应用层抓包时,往往只能看到域名。
另一个让新手困惑的点是代理和CDN生态,如今绝大多数网站都挂了CDN或云加速,如果你的抓包工具走了系统代理,那么你看到的其实是就近CDN节点的IP,而不是源站服务器IP,行业内称这种IP为“边缘节点”,它和真正的“源站IP”是两回事。
搞清楚这两个底层逻辑后,再来看具体的抓取方法和查看技巧。
核心实操:用Wireshark抓包怎么看对方服务器ip地址
Wireshark是网络层抓包神器,它不关心你用什么软件,只看进出网卡的数据包,用它来找服务器IP,逻辑非常简单:顺着三次握手的链路,找到那个非本机的、非局域网网关的陌生IP。
第一次筛选:过滤掉无效流量
打开Wireshark,选择你正在上网的网卡(通常叫“WLAN”或“Ethernet”),别急着点开始,先应用一个基础过滤条件,避免数据乱到看不清:
tcp.port == 80 || tcp.port == 443 || udp.port == 53
tcp.port == 443是HTTPS流量tcp.port == 80是HTTP流量udp.port == 53是DNS解析流量
这样过滤后,抓包界面会清爽很多,接着去浏览器或App里操作一次目标功能,让数据包产生。
第二步:顺着DNS找目标域名
在过滤栏输入dns,回车,这时你会看到一排DNS查询记录,里面显示着你要访问的网址,比如www.example.com。在DNS响应包(标注为“Standard query response”)里,展开“Answers”区域,直接能看到该域名解析出来的IP地址。
把这个IP复制下来,这一步其实就已经完成抓包看IP的任务了。
第三步:通过IP对话锁定服务器
回到Wireshark主界面,在过滤栏清空之前的内容,输入:
ip.addr == 你刚复制的那个IP
回车后,所有和这台服务器交互的数据包都会列出来,随便点开一条,看“Source”和“Destination”列,凡是跟你本机IP(通常是192.168.x.x或10.x.x.x)不同的那个IP,就是对方服务器IP,如果目标较大,你可以点开菜单栏的“统计”→ “端点”,在弹出的窗口里按“Bytes”排序,流量最大的那个非本地IP,就是服务器的真实IP。
第四步:验证IP归属地以防被坑
为了防止抓到的是代理或CDN IP,可以查询一下这个IP的归属地,如果显示“本地电信”“本地联通”,且和你所在城市一致,那大概率是CDN节点,如果显示“简米云”“酷番云”或某数据中心的机房地址,那就是服务器数据中心的位置,这一步对后续业务判断很有用。
应用层抓包:用Fiddler看服务器IP
Wireshark虽然强大,但很多非技术人员更习惯用Fiddler或Charles这类应用层工具,这类工具抓的是HTTP/HTTPS明文请求,查看IP更直观,以Fiddler为例,核心方法是看“Host”列和“Gateway”列。
打开Fiddler后,确保左下角“Capturing”状态为开启,然后操作目标App或网页,抓到的每个会话都会显示在列表里:
- Host列:显示的是域名,但一般来说这是入口。
- Inspectors面板:点击任意一条会话,右侧切换到“Inspectors”标签,在上半部的“Headers”选项卡里,往下拉找到“X-Host”或“X-Forwarded-Host”字段,这里往往藏着真实的服务器IP地址。
如果用手机抓包,就是下面这个思路的延伸。手机抓包查看服务器地址的正确姿势是:让手机和电脑连同一个WiFi,Fiddler开启“Allow remote computers to connect”选项,手机代理设为电脑IP:8888,此时抓到的包和电脑端的操作完全一样,同样看Inspectors面板,只不过手机系统的代理会接管所有流量,所以你在列表里看到的IP地址范围会更广,需要留意区分哪些是系统推送服务的IP,哪些是目标服务器的IP。
如何穿透HTTPS加密,看到加密前的IP
现在超过九成的网站都是HTTPS加密的,抓包后显示的是“TLSv1.3”之类的加密协议,看不到HTTP请求头里的IP关键词,此时需要做一次中间人解密操作:
- 在Fiddler中点击菜单“Tools”→“Options”→“HTTPS”。
- 勾选“Capture HTTPS CONNECTs”和“Decrypt HTTPS traffic”。
- 点击“Actions”→“Trust Root Certificate”,安装证书到电脑信任区。
- 如果用手机抓包,还需要把生成的
FiddlerRoot.cer文件发送到手机并安装,然后在手机设置里信任该证书。
完成这一步后,Fiddler就能看到HTTPS明文流量,此时再找IP,直接看会话列表的“Remote IP”或“Gateway”列即可。在Fiddler中,你可以在“Customize Rules”里添加一行代码OnBeforeRequest事件处理器,将oSession["x-my-ip"] = oSession.oRequest.pIPAddress;写入日志,这样IP地址直接会显示在会话列表的自定义列中,免去手动点开的麻烦。
线上环境限时场景:看不了包的时候怎么办
有时候环境不允许你装抓包工具,或者目标是物联网设备,没法在设备上抓包,但tcpdump和netstat可以帮你应急。
用tcpdump抓服务器IP:在Linux服务器或路由器的命令行输入:
tcpdump -i eth0 tcp port 443 -c 100 -nn
其中-nn参数会禁止反向DNS解析,直接显示IP数字,观察IP 192.168.x.x > 目标IP: Flags [S]这段,箭头后面的那个IP就是发起连接的目标服务器IP。
用netstat命令寻找实时连接IP:在Windows命令行或Linux终端输入:
netstat -ano | findstr "ESTABLISHED"
这时会列出所有正在连接的IP地址,如果你刚操作了某个软件,最新建立连接的那个IP所在行就是对方服务器的地址,这个方法不需要装任何工具,系统自带,应急足够。
常见误区:为什么抓到的IP时不时就变
有些朋友按上述步骤操作后,发现昨天抓的IP和今天抓的不一致,怀疑自己操作有问题,这个疑虑可以打消,因为服务器IP变动在当下是常态,而非异常:
- CDN调度:根据你的地理位置和运营商,同一天不同时刻访问同一个网站,CDN会自动调度到不同节点。
- 负载均衡:大型业务会在多个机房部署多台服务器,通过负载均衡器分发请求,导致每次连接的IP都可能不同。
- IPv6与IPv4差异:如果你的设备优先使用IPv6,抓到的可能是IPv6地址,而之前抓的是IPv4地址,看起来自然就变了。
行业共识认为,判断服务器IP是否有效,不能只看单次结果,要结合DNS解析记录和响应时间综合评估,如果你需要的是源站IP(比如做域名解析迁移),单纯抓包往往不够,还需要结合证书透明度日志或历史DNS记录倒查。
抓包怎么看对方服务器ip地址常见问题
Q:抓包会暴露我的行为吗?对方能看到我的IP吗?
抓包是本地操作,数据包在你自己电脑或手机里被复制一份用于分析,没有发送给第三方,但对于服务器端来说,它本来就能看到你的IP地址,因为这是TCP/IP协议的基本规则,也就是说,你看得到对方IP,对方也看得到你的IP,这是对等的。
Q:对方服务器IP和域名解析出来的IP一致吗?
多数情况下是一致的,尤其是没有使用CDN的小型网站,但使用CDN的网站,域名解析出来的是CDN节点IP,而你自己抓包抓到的也大概率是这个CDN节点IP,只有你成功绕过CDN或者通过特定接口抓到的才是源站IP,源站IP往往不会出现在常规的DNS解析结果里。
Q:微信小程序或App抓包抓不到请求,是哪里出了问题?
大部分App和微信小程序在开发时开启了证书固定(Certificate Pinning),即App只信任自己内置的证书,不信任你安装的中间人证书,此时抓包工具无法解密HTTPS流量,自然也就看不到IP,解决方案是使用支持SSL Proxying的抓包工具,并在App的Android模拟器或越狱设备中安装“JustTrustMe”这类绕过模块才能继续查看。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774947.html


