1. 当前位置: 网站首页 >  路由器百科 >  连公共WiFi会被别人看到什么?我把自己当旁观者抓了一圈,还裸奔的就三样

连公共WiFi会被别人看到什么?我把自己当旁观者抓了一圈,还裸奔的就三样

连公共WiFi会被别人看到什么:HTTPS锁住的与还裸奔的三样对照

上周在高铁站等车,手机信号只剩一格,我顺手连了候车厅的免费WiFi。旁边一个小伙子瞅了我一眼:「哥,这网你也敢连?旁边坐个懂行的,你干啥他全知道。」

我当时没反驳,回家真干了件事:把我家旧笔记本接进同一个局域网,扮演那个「懂行的旁观者」,对着另一台电脑的正常上网抓了一圈。结论先说——他看不到我的密码,也看不到我聊了啥,但有三样东西,是明晃晃裸在外面的。哪三样,一样一样说。

先把心放回肚子里:HTTPS把最要命的那层锁死了

先给公共WiFi说句公道话,它没有传说中那么可怕。

这几年网站几乎全上了HTTPS。你跟网站之间那条线是加密的,旁观者抓到的密文就是一串乱码——你输的银行卡密码、微信聊天内容、登录后的会话凭证,隔着这把锁他都摸不着。之前我写过一篇讲http和https区别的,那次我抓自家的包,明文响应里连服务器版本号都看得一清二楚;换成https之后,抓出来就剩五个字节的加密告警,啥也读不出。

所以「连了公共WiFi密码就被偷」这种说法,在2026年基本是过时的恐吓。真要偷你密码,得靠别的路子,后面第五节说。

但是——锁只锁了「信的内容」。信封上写了啥、寄给谁、什么时候寄的,这些还是在明面上。这就是裸奔的三样。

第一样:你问了谁,等于在全城广播

打开一个网站前,电脑得先问DNS「这个域名对应的门牌号是多少」。这一问一答走的是UDP 53端口,不加密。同网的旁观者不用任何高端工具,抓到这个包,域名是直接印在报文里的。

我拿自家域名做了个实验。对 www.shunot.com 发起一次DNS查询,把报文里的问题段捞出来,十六进制长这样:

03 777777 06 7368756e6f74 03 636f6d 00

看着是乱码?前面那个03是长度,后面跟着三个字符www;接着06是长度,后面shunot六个字符;再03带com。每个域名段前面就一个字节的长度标记,剩下的全是明文ASCII。旁观者甚至不用解析,把报文里所有可打印字符连起来读,直接就是 .www.shunot.com.

这意味着什么:你在咖啡店刷了什么网站、用了什么App(很多App的域名一看就知道是谁家的)、半夜连了什么不想让人知道的站点——同网的人都看得到清单。内容他不知道,但你「去了哪」这条路标是公开的。

治法也有,把这一问也套上加密就行。手机上开加密DNS:安卓9.0以上在设置里搜「私人DNS」,填 dot.pub;苹果手机走浏览器的安全DNS,或者装描述文件。具体我在这篇加密DNS里写过,此处不展开。开了之后,旁观者抓DNS包只能看到一坨密文,问路这事儿就私密了。

第二样:握手的第一声喊话,带着名字满街跑

就算DNS加密了,还有一处藏不住。HTTPS握手的第一步,浏览器要发一个ClientHello包,里面有项叫SNI(服务器名称指示)——相当于你进大楼之前,先冲着门卫喊一嗓子「我找 www.shunot.com 的张师傅!」。这一嗓子是明文,因为对方服务器得靠它才知道该递哪张证书出来。

我实测的时候数了一下,这次握手的第一个包才248字节,里面就有我要找的完整域名。对旁观者来说,这跟DNS查询一样好认:抓握手包,找明文段,域名又到手了。

所以DNS加密挡得住「问路」,挡不住「喊名」。两层都明着的时候,其实信息是重复的;DNS加密之后,SNI就成了主要的漏点。业界也知道这事,新的ECH(加密Client Hello)技术就是冲它来的,Cloudflare和Firefox那边已经能用,但国内网络环境下普及还得等。

普通人对付这一样,没什么好办法,也不太需要办法——知道「我在哪上网,别人能知道我连了哪些域名」这个事实,比防范本身更重要。真在意的,敏感时候切流量。

第三样:还在跑http的网站,连信带封皮整个裸

前两样是「信封上的信息」。第三样狠一些:到现在还有网站没上HTTPS,纯http跑着。这种站点你在公共WiFi上打开,旁观者看到的不只是你连了谁,而是一切——请求了哪个页面、带了什么参数、服务器回了什么内容。

我拿 example.com 做了个演示(这是个标准的明文http测试站)。发出的请求原样长这样:

GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0

这就是旁观者在链路上读到的原文,一字不差。服务器回的响应头里,连它用的是 Cloudflare 的缓存、这次命中了哪台节点,都写得明明白白。要是这种明文站点上再带个登录框,那就是账号密码直接写在信纸上传出去。

好在现在浏览器地址栏会给你提示:纯http的站点显示「不安全」三个字。我的习惯就一条——看到「不安全」还让我输密码的页面,直接关。以前也提过一嘴,这里再啰嗦一次:锁的图标看一眼,再输密码不亏。

顺带还有个小的:流量侧写。就算前两样你都治了,你在什么时候、跟哪个IP、说了多大流量的「话」,仍然是可见的。半夜三点一个大流量连接跑了四十分钟,内容看不出,事儿本身是看得出的。这个没法防,知道就行。

比「看」更主动的三招,才是真要防的

前面说的都是被动旁观。真出事的公共WiFi,一般是被人主动下了套,常见就三招。

第一招,假热点双胞胎。攻击者也开一个叫「Starbucks-Free-WiFi」的热点,跟你以为的官方热点名字一模一样。你手机记得这个名字就自动连上去了——手机搜WiFi的逻辑我之前写过,是拿着名字去问的,见手机是怎么搜到附近WiFi的。名字相同就认错人。防法:关掉「自动加入开放网络」,连公共热点时跟店里牌子上的名字逐字核对。

第二招,假登录页。连上之后弹一个「输入手机号验证」的页面,做得跟运营商认证页一模一样。你把手机号和验证码一交,人家转头就去重置你的账号。真正的运营商认证页只会要手机号收验证码,绝不会让你填密码。凡是公共WiFi的弹页让你输密码的,一律是假的。

第三招,让流量绕道他家。同一个局域网里,攻击者可以骗你的电脑「我就是网关」,把你的流量先引到自己机器上过一遍再送出去。这就是ARP欺骗,原理我在ARP那篇里拆过——arp -a一看,网关的MAC跟别人重了就是中招。HTTPS能保证他改不了内容,但他可以做「降级」:把你的https请求偷偷换回http版(不少网站http和https都开着),内容就又能看了。所以看到浏览器突然从绿锁变成「不安全」,别不当回事,赶紧断网。

自保清单,以及两个九成人不知道的细节

说了这么多,落到动作上就几条,我按顺手程度排的:

动作挡住什么代价
地址栏见「不安全」不输密码明文http裸奔、假登录页零
安卓开私人DNS / 浏览器安全DNSDNS问路清单零,设置一次管到底
关「自动加入开放网络」假热点双胞胎连热点多点一下
转账改密码这类操作切流量全部费点流量
证书告警页直接退出中间人伪造证书零

再说两个细节。一个是电脑的共享:Windows把网络分「专用」和「公用」两套配置,专用配置下你的文件夹、打印机是对同网共享的。在家里这是便利,在咖啡店就是全店可逛。连公共WiFi时去设置里看一眼当前网络是不是「公用」,不是就手动切过去。另一个是证书:任何弹窗让你「安装证书」才能上网的,都别装——证书相当于家门钥匙的复印件,装了之后假网站在你浏览器里就是「受信任」的,绿锁都会给它亮。这事我在证书链那篇里写过,12306当年让全国人装根证书,就是走的这个口子。

还有个反直觉的:公共WiFi上如果有「AP隔离」,那不是商家小气,是在保护你。开了隔离,同网的设备互相看不见,旁观者那套抓包直接没戏。我写过家里的AP隔离,家里开了它投屏会搜不到,是麻烦;咖啡店开了它,是善事。同一样东西,两个场景两种评价。

收尾说句实在的:公共WiFi没有传说的那么吓人,HTTPS替你挡掉了最致命的部分。剩下三样裸的——问了谁、喊了谁、明文站点——知道它们存在,你就已经赢过那个吓唬我的小伙子了。真要办要紧事,切流量,一了百了。

展开全文


版权说明 手机扫码阅读
版权所有:《数巢笔记》 => 《连公共WiFi会被别人看到什么?我把自己当旁观者抓了一圈,还裸奔的就三样》
本文地址:https://www.shunot.com/lybk/1271.html
除非注明,文章均为 《SHUNOT》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:master_135

工作日:9:00-23:00,节假日休息

扫码关注