38

MIUI 通过硬编码内置了 DNS?

 2 years ago
source link: https://www.v2ex.com/t/838579
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  Android

MIUI 通过硬编码内置了 DNS?

  CirnoSalt · 21 小时 10 分钟前 via Android · 6356 次点击

第 1 条附言  ·  15 小时 15 分钟前

看了眼似乎有很多回复都开始跑偏了……
这个帖子本意有两点:
1:截图中的行为是不是真的存在?是否有实锤?
2:不只是针对 MIUI ,其他厂商如果存在类似情况,硬编码预置的行为是否合适?是否有更加妥当的做法?(如既可以避免普通用户因为 DNS 失效而断网,又不影响开发者&极客用户的使用)
80 条回复    2022-03-08 09:47:16 +08:00

neroxps

neroxps      21 小时 3 分钟前

报告一个现象,小爱同学音箱如果在 ros 挟持了 UDP 53 端口,并分配 DNS 给他不是公网的 DNS 服务器,他链上 wifi 之后发送几个 SYN 之后就会断开 WIFI 。不知道和这个有没有关系。

0o0O0o0O0o

0o0O0o0O0o      21 小时 1 分钟前   ❤️ 31

我觉得不像是单独的 DNS 软件或者是供管理员用的比较专业的系统,MIUI 这样的面向大众的系统提供一个兜底的 DNS 还是可以理解的

gam2046

gam2046      21 小时 1 分钟前   ❤️ 3

本意应该是为了当用户自己设置错误时,仍然可以保持网络连接,而不是直接嗝屁。

这更多的还是出于用户体验的考虑。

mdgwmt0

mdgwmt0      21 小时 1 分钟前   ❤️ 1

反正我是不用国内厂商的机器

showgood163

showgood163      20 小时 51 分钟前 via Android   ❤️ 3

楼主就在问这个情况是否确实存在或者能不能复现,楼上的解释啥啊?

learningman

learningman      20 小时 44 分钟前

@showgood163 #6 反编译 class 的图都有,那就是肯定存在啊。。。

majianglin

majianglin      20 小时 40 分钟前

小米手机还检测我的 app ,我自己下载了一个 app 不让安装,以后再也不买这个品牌的手机了,要买也只买国际版

X0X

X0X      20 小时 33 分钟前

小米变了,不是以前那个小米了。。

murmur

murmur      20 小时 30 分钟前

114 这个 dns 有什么风险么

bitdepth

bitdepth      20 小时 29 分钟前

我是懷疑這個反 machine code 的動作有很多自己的加工,因為 java machine code 肯定是沒有 variable name 的

yanqiyu

yanqiyu      20 小时 24 分钟前

@murmur 不受控的 DNS 可能泄漏你正在访问的地址

majianglin

majianglin      20 小时 24 分钟前

@bitdepth 没有做混淆的话,能拿到变量名的

Mateverse

Mateverse      20 小时 22 分钟前

是这样的。本人亲测,昨天发现的…

最开始我以为部分的域名(.love)打不开,电脑没问题。后来切换了私人 dns 就打开了。然后发现 miui13 会默认添加 dns 。

x500

x500      20 小时 4 分钟前

@majianglin OPPO 也差不多,要么就断开连接,要么一打开就关闭

qiaoqiao1235

qiaoqiao1235      19 小时 55 分钟前

遇到过路由同时开启 ipv4/ipv6 ,然后设置小米 pad5 的 wlan 静态地址为 ipv4 指定网关和 DNS ,实际没有用查询指定的 dns ,关闭 ipv6 后就可以了。

xgfan

xgfan      19 小时 51 分钟前   ❤️ 1

这应该是“真·国内·优化”,可以骂 PM 傻逼拍脑子优化。


114.114.114.114 是 114 的
8.8.8.8 是 Google 的
240c::6666 是互联网国家工程中心的
2001:4860:4860::8888 也是 Google 的

gadfly3173

gadfly3173      19 小时 32 分钟前

@majianglin #8 不存在不能安装的 app 吧,只是会强制检测是否存在“风险”,但是依然可以选择安装

gadfly3173

gadfly3173      19 小时 31 分钟前

@gadfly3173 #18 哦对 风险检测也是可以关掉的

Sekai

Sekai      19 小时 31 分钟前

Yadomin

Yadomin      19 小时 26 分钟前

复现不了,两个设备,MIUI 12.5 和 13 🤔

ochatokori

ochatokori      19 小时 26 分钟前 via Android

miui12 wlan 没复现出来
设置两个不存在的 dns 地址,getprop 能够看到 3 个 dns 地址,不符合反编译代码中 dns 数量小于等于 2 的条件。
设置一个不存在的地址,getprop 共看到两个 dns 地址,符合反编译代码中的条件但是没看到追加的 dns 。

wsfmzq

wsfmzq      19 小时 23 分钟前

@majianglin 这个设计本意是给那些不懂的人 or 老人开启的,可以手动关闭

CirnoSalt

CirnoSalt      19 小时 13 分钟前 via Android   ❤️ 1

@gam2046 首先目前还不确定这个截图的真实性,所以标题加了问号,楼下也有 V 友反馈无法复现。
其次个人认为在检测到 DNS 不可用后,弹出“当前 DNS 服务器不可用,是否还原默认或设置为推荐地址?”这种提示让用户来做决定而不是直接静默接管来的更为妥当……

CirnoSalt

CirnoSalt      19 小时 6 分钟前 via Android

@qiaoqiao1235 这种情况猜测是因为 DHCPv6 分配了 ipv6DNS ,客户端采取了 v6dns 优先导致的,所以我一直都关掉网关的 DHCPv6 ,只用运营商的 slaac 分配 v6 地址。

ccppgo

ccppgo      19 小时 4 分钟前   ❤️ 7

@CirnoSalt 小米那么多小白用户你觉得他们能懂什么意思吗, 你这个想法太不可思议了, 小米现在用户群体太丰富了已经

preach

preach      19 小时 0 分钟前

说实话,如果用户没有 dns 帮你添加一个也算合理吧。

gadfly3173

gadfly3173      18 小时 55 分钟前

@CirnoSalt #24 事实上对于很多人来说,打开应用要授予应用权限、同意隐私协议这种事情就已经很难理解了。隐私协议里那些收集 cookie 之类的字眼根本让他们无法理解,你再来个 dns 不可用的警告。。。

clf

clf      18 小时 51 分钟前

我无法复现。前几天就因为 DNS 设置问题导致手机上不了网,但它显然没有走 114 的 DNS 。除非 114 也正好抽风。

gam2046

gam2046      18 小时 50 分钟前   ❤️ 5

@CirnoSalt #23 我觉得你说的对,但是 [当前 DNS 服务器不可用,是否还原默认或设置为推荐地址] 这种提示,拿去问一下你的男女朋友、父母等各类非计算机从业人员,他们是不明所以的。甚至不知道选是与否的区别是什么,只能瞎点。小米这种做法是不妥,只能说是最终向用户体验低头了。毕竟专业用户占比还是极少数。

0o0O0o0O0o

0o0O0o0O0o      18 小时 45 分钟前

@CirnoSalt 其实一些应用也会内置 DNS ,这个是很难调和的,专业用户终究要借助专业的方式的。

blueboyggh

blueboyggh      18 小时 4 分钟前   ❤️ 11

以后手机应该激活的时候加一个选项,客户是极客用户还是小白用户,让客户自己选

v2 上很多问题,站在占全体用户 95%以上的小白用户的角度考虑一下就很明白了,但是有的人非要站在只占 5%一下的极客用户的角度去考虑问题,徒增烦恼

diguoemo

diguoemo      17 小时 44 分钟前 via Android

三星港版之前也硬编码 114dns ,后面系统更新取消了这个设置

wy315700

wy315700      17 小时 40 分钟前

@0o0O0o0O0o
做应用内置 DNS 应该是常见做法了。一般会用 HTTPDNS 。因为你无法预料用户会配置一个什么样的 DNS 导致连不上服务。。。

FlyingShark

FlyingShark      17 小时 37 分钟前

这个蛮正常的,接触过几个洋垃圾平板,也设置了兜底 DNS ,例如 8.8.8.8 ,而且系统 APP 也不用你的内网 DNS

安装一个 adguard 就可以在日志中看

hronro

hronro      17 小时 27 分钟前   ❤️ 3

@0o0O0o0O0o #2
首先大众就不会自己去动这些专业的设置,因为对于大众来说,大概率他们连 DNS 是什么都不知道。但对于想对这些设置的用户来说,MIUI 却不会按照用户的意愿来设置,这本就是一种强盗逻辑。

guyuesh2

guyuesh2      17 小时 26 分钟前

@yanqiyu 我记得 DNS 协议好像是不加密的吧?理论上他不需要设计这么多。直接 网卡抓包就好了。DNS over TLS , DNS over HTTPS 协议好像才能避免被监控

3kkkk

3kkkk      17 小时 22 分钟前

我把红米手机连接公司 wifi,手动设置为 114 也不生效。公司出网是鹏博士还是用的运营商的 dns 服务。

v2tudnew

v2tudnew      17 小时 18 分钟前

运营商 DNS 一开始也是为了尽量就近解析链接最快节点,看现在都玩成啥用了,动不动封这封那。

CirnoSalt

CirnoSalt      16 小时 7 分钟前 via Android

@ccppgo 问题是小白用户连 DNS 是什么都不知道,压根就不会乱动 DNS 设置啊……动了才会出问题,不动都出问题那就是运营商的锅了,出了问题才有这种情况,你这怼人逻辑都不通……→_→

CirnoSalt

CirnoSalt      16 小时 5 分钟前 via Android

@gam2046 是的,想了一下,换成「检测到当前 wifi 无法上网,点击尝试自动修复。」似乎更好些

WuSiYu

WuSiYu      15 小时 57 分钟前   ❤️ 1

常规操作了,我之前就观察到过华为和一加的手机也会有这种行为,有的是会覆盖 DHCP 分配的 DNS ,有的是在 DHCP 分配的 DNS 之后再给你塞一个
也根本不需要反编译啥的,在路由器防火墙上加条 LOG 规则就能看到,如果你希望自己控制 DNS 可以在路由器上设个 redirect 啥的拦截一下

CirnoSalt

CirnoSalt      15 小时 51 分钟前 via Android

@v2tudnew 假如 MIUI 这个情况是真的,截图里设置的也全是 53 端口标准 DNS ,现在很多地区运营商劫持都是整个 DNS53 全部搞事,标准端口 DNS 怎么改都无效,会被劫持回运营商的 DNS ,就很离谱……
(楼上那位鹏博士用户的症状看上去就蛮像的)

CirnoSalt

CirnoSalt      15 小时 50 分钟前 via Android

@WuSiYu 是个好主意

v2tudnew

v2tudnew      15 小时 46 分钟前

@CirnoSalt #44 就是说嘛,出发点都是好的,但后面就变味了,就不应该搞这些。

kingjpa

kingjpa      15 小时 38 分钟前

@murmur 114 黑历史还是不少的,现在存不存在就不好说了

CirnoSalt

CirnoSalt      15 小时 34 分钟前 via Android

@wy315700 我印象中某小而美 APP 就有类似的设置?隐约记得在哪里看到过分析,预置的 dnspod ,还是 DoH 的……

learningman

learningman      15 小时 10 分钟前

@CirnoSalt #48 是的,微信会走自己的 httpdns ,之前研究过

Danswerme

Danswerme      14 小时 11 分钟前

@neroxps +1 ,这个问题很久以前我也遇到过了,劫持 53 端口后小爱同学就没网了。

ccppgo

ccppgo      13 小时 40 分钟前

@CirnoSalt 其实人家普通用户根本不懂你这些东西, 就一个标准, 能用就行,你就说买回来的新手机正常使用有没有问题吧, 是你们这帮人跟普通人不一样, 讲究的多, 所以提出乱七八糟的意见都不用动动脑筋大众用户能不能理解

inoreader

inoreader      12 小时 38 分钟前   ❤️ 1

其实对于 精神洁癖者、google 真香者、国内就是差的用户 ,基本上动手能力不会太差,小米已经给了自由,申请解锁 bootload ,刷自己信任的 rom 就可以了,啥问题都没了。小米已经不仅仅面向手机发烧友了,没必要要求厂家去满足非常小众的用户需求。国内非开发者、中老年人需要的仅仅是一个拿到手就可以用且用着不会出问题的手机。

zed1018

zed1018      12 小时 34 分钟前

我记得很久以前小米的路由器就搞过流量劫持,可以说是狗改不了吃屎了

q1angch0u

q1angch0u      11 小时 59 分钟前

冷知识:114dns 的股东是某安信 0. 0

bclerdx

bclerdx      11 小时 37 分钟前

@inoreader 国内不就是靠这些老忽悠中老年人和小白么?剥脱他们的动手能力和选择权。

cybird

cybird      11 小时 27 分钟前

> 既可以避免普通用户因为 DNS 失效而断网,又不影响开发者&极客用户的使用

目前的 DNS 应该都是采用的多重缓存吧。

iVeego

iVeego      11 小时 22 分钟前 via Android

@blueboyggh 大胆一些,99.9%都不知道

jim9606

jim9606      11 小时 14 分钟前   ❤️ 3

我倒不觉得这是个什么大问题。
你看那么多网络排障都是直接叫设置 114.114.114.114 或者 223.5.5.5 而不是按地区找运营商 DNS 的(我甚至怀疑这些运营商 DNS 有没有被文档化过),就知道这方法是可行且可操作性很强的。

而且提醒一句,Google Chrome 也会在域名解析故障时无视用户和系统设置使用 8.8.8.8 解析域名。MIUI 也不过是同等方案而已。

而且怕 DNS 泄漏被查水表的我觉得是多虑了,国内都不知有多少 Google Chrome 和带 GMS 的手机天天查 Google 的域名,大部分用户都不知道自己的设备在干啥,闲得蛋疼去查这些人?

darkengine

darkengine      9 小时 50 分钟前

oppo 应该也是那么干的,我们国外的用户的 oppo 手机就打不开 cloudflare CDN 上的图片,iOS 和小米华为都正常得很,非常蛋疼。

xxfye

xxfye      7 小时 24 分钟前 via Android

盲猜用于 dot 的域名解析

ZE3kr

ZE3kr      4 小时 28 分钟前 via iPhone

为什么有人觉得这样做好?

以前,改了个网络设置,上不去网了,那就知道某个参数改错了

现在,就算 DNS 设置错了,还是有可能能上网。然而,问题就来了:某些网络环境下无法连接 114/6666 ,114/6666 宕机,114/6666 被针对性劫持等等,导致的结果就是时好时坏,用户还很难定位问题

此外,企业内网怎么办?合规性怎么办?公司安全部门是否需要全面禁止 MIUI ?

HolgerHuo

HolgerHuo      3 小时 7 分钟前 via Android

或许本意是好的
但是 114DNS 真的还能用吗 lol
这家年久失修 不仅没有 DNS6/DoH/DoT
就连一些域名都会解析不出来…

yaott2020

yaott2020      2 小时 6 分钟前 via Android

这种做法可以理解,但我觉着写死 dns 不是很合适,哪知道哪天 240c6666 就不是 dns 了

Goooooos

Goooooos      1 小时 53 分钟前

@ysc3839 #61 小于 2 个 dns 就给加默认。。。那是不是 8888 ,8844 都加上就没默认了

inoreader

inoreader      1 小时 32 分钟前

@bclerdx 你去问问你周边的亲戚和非开发的朋友,他们有多少人知道 dns 、dhcp 、root 等,他们只是普通人过普通日子,一个不出问题的手机就行了,他们没意愿也没精力去研究这些,有这时间折腾手机 还不如去刷个抖音、打个麻将、逛个淘宝。

jpyl0423

jpyl0423      1 小时 30 分钟前   ❤️ 1

小白不知道何为 DNS, 和小白会去动 DNS 这一点都不矛盾.
你没见过电脑小白瞎折腾, 结果电脑用不了的吗

wm5d8b

wm5d8b      1 小时 27 分钟前 via Android

早就发现了,而且几个品牌的手机都这样做的,你去网络信息里看,明文告诉你使用的 DNS 的

q1angch0u

q1angch0u      55 分钟前 via iPhone

为什么很多人都说是为了方便小白呢?那苹果、三星等品牌的手机难道没有小白使用了吗…个人认为这件事儿的问题的论点应该是 [系统内置第三方 dns 是否侵犯了用户的知情权] ~

Zy143L

Zy143L      49 分钟前 via Android

没感觉有啥问题啊
而且这是 MIUI11 的 目前 MIUI13 安卓 12 未检查到这部分
国外 Google 硬编码的还是 8.8.8.8 呢
国内换成 114 好像没啥不妥的
对于挂梯的来说都是 DNS 分流处理也没影响

liuidetmks

liuidetmks      45 分钟前

aheadlead

aheadlead      43 分钟前   ❤️ 4

仅代表个人观点,我曾经在 MIUI 工作过一段时间,和网络无关。
我也并不是来证实 MIUI 有这样的行为,早已不用手机。

我想说,你永远无法想象用户会怎么用你的产品,你永远无法想象会有什么稀奇古怪的 jira 工单开到你的头上。
我接触了相当一部分真正的用户后,才意识到我曾经根本不懂用户。

根据当时 MIUI 研发电话回访的情况,说句不好听的,有相当一部分用户属于懂但又不完全懂。折腾一下手机弄坏了然后一个客诉。

对用户体验而言,在这种极端情况下,DNS 泄漏风险和彻底上不了网,孰轻孰重?
根据我的经验,可以推测这种方案是来源于一堆奇葩的工单。
比如用户自己改了个 DNS ,或者 DHCP 只下发一个 DNS ,然后刚好这个 DNS 坏了,用户投诉。

研发内心 OS:我能怎么办??? 我也很无奈啊。。。
手上永远还有一万个高优先级的活。可我也想给用户提供一个更友好的提示,但这过程中要 invovle 的人和各方资源,谁来出???一个卑微弱小无助的研发,自己 drive 做一套交互根本不是一个简单的事情。
再说吧,即便你弄一个提示出来,用户也真不一定能顺着这个提示自己把网络弄好。(过去安全中心 app 就有真实案例)

楼主位的方案虽然有点草台,但这才是在 MIUI 资源极其有限的情况下,最简单有效且合理的做法。

仅代表个人观点。

aheadlead

aheadlead      41 分钟前

曾经处理过一大堆工单,投诉红米 6A 的手机打吃鸡卡的… 诸位可以看看这是个什么 CPU
599 的手机打刺激战场还能 60fps ,那旗舰机切腹自尽算了……(仅代表个人观点)

jerryjhou

jerryjhou      40 分钟前 via iPad

@HolgerHuo 114 是最老牌的公共 DNS ,分区多可用性佳…
百度腾讯一直有时不时下线的毛病
AliDNS 是今年才加的节点,在此之前全都要去杭州绕一圈
CNNIC 只有北京单点,更年久失修了

jerryjhou

jerryjhou      37 分钟前 via iPad

@q1angch0u 唯一的争议是:国产选哪家😓8.8.8.8 被广泛用于谷歌系和非谷歌系的解析,我观测到过 Netflix 也强行绕开系统 DNS

jerryjhou

jerryjhou      35 分钟前 via iPad

@HolgerHuo 我刚查了下 223.5.5.5 居然做了全球 Anycast…这下碾压 114 了

abc8678

abc8678      32 分钟前 via Android

碰过一两次,打开某种网站,变成了红色的页面,写的是什么反诈。不知道是巧合还是另有原因

czfy

czfy      22 分钟前

@aheadlead 只要做过数码产品电商客服性质的工作,就能深切体会到用户可以有多奇葩

sobigfish

sobigfish      21 分钟前

推送 dns 应该是 ISP 完成的,这有点越俎代庖

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK