手机上网偶尔会碰到奇怪情况,WiFi信号满格,微信消息正常发送,浏览器却打不开网页;或者某一个App提示网络异常,切换其他App又一切正常。这类故障不一定是宽带故障,DNS缓存异常是很常见诱因。DNS的作用就是把网址翻译成IP地址,手机为了加快访问速度,会把解析结果临时保存。一旦网站更换服务器、IP变更,或是缓存记录损坏,手机依旧拿着旧地址尝试访问,自然连接失败。遇到这种问题,清理DNS缓存,往往比重启路由器见效更快。
安卓手机最简单的办法是开启飞行模式。下拉顶部状态栏,点击飞行模式图标,等待十秒左右关闭。这个操作会断开手机全部无线连接,系统一般会重新初始化网络,连带DNS缓存一起清空。单次操作无效就重复两三次,或者直接重启手机。重启操作安卓和iPhone都适用,系统重启会清空临时网络状态,DNS缓存也一并清除。很多人觉得重启操作太普通,但网络解析故障场景下,它是最简单高效的办法。

iPhone没有直接清除DNS缓存的按钮。可以打开控制中心,开启飞行模式,等待三十秒之后关闭;或者进入设置,关闭WiFi再重新连接。依旧无效就重启手机。想要更彻底处理,可以选择还原网络设置,路径:设置、通用、传输或还原iPhone、还原、还原网络设置。这个操作会清除已保存WiFi密码、蓝牙配对信息以及VPN配置,不会删除照片和App数据。还原之后手机网络参数恢复出厂状态,DNS缓存随之清除。操作前最好确认自己记得常用WiFi密码。
WiFi环境下,还可以选择忘记网络重连。进入设置无线局域网页面,点击当前WiFi旁边的信息图标,选择忘记此网络,之后重新搜索WiFi,输入密码连接。这个过程手机会重新执行DHCP和DNS解析流程,旧缓存记录基本被替换。家里路由器长时间不关机的话,可以拔掉路由器电源,等待一分钟通电重启。路由器本身同样存在DNS缓存,重启路由器相当于刷新整条网络链路。
修改DNS服务器是另一种解决思路。手机自动获取的DNS,有时候响应缓慢或者不稳定,手动切换公共DNS,可以绕开本地异常缓存。安卓手机在WiFi设置页面,点开当前网络,IP设置从DHCP修改为静态,DNS1和DNS2填写114.114.114.114或者8.8.8.8。iPhone在WiFi详情页点击配置DNS,切换为手动,添加相同地址。安卓系统支持私人DNS的机型,可以在设置搜索私人DNS,填写dns.google或者dot.pub,解析走加密通道,规避运营商缓存污染。修改DNS之后,开关一次飞行模式,让配置生效。
部分故障根源是浏览器自身缓存。手机浏览器打开设置,清除浏览数据,勾选缓存和Cookie。如果仅仅单个App无法联网,打开应用管理找到对应App,清除缓存,注意不要点击清除数据,否则登录信息会丢失。操作完成之后重新打开网页测试。全部方法尝试完毕依旧无法解决,可以更换网络对比,WiFi切换移动数据,或者拿另一台手机连接同一个WiFi。其他设备正常,故障就在本机;别的设备同样异常,大概率是路由器或者宽带侧问题,需要联系运营商报修。
DNS缓存本身不是缺陷,作用就是提升上网速度,只是偶尔信息更新不及时。手机不像电脑,可以直接执行ipconfig /flushdns清理缓存,但是飞行模式、重启、重连WiFi、还原网络设置组合使用,绝大多数解析故障都能解决。不用频繁清理,碰到网页打不开、App网络报错、更换路由器之后访问异常的时候再处理就可以。