V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CirnoSalt
V2EX  ›  Android

MIUI 通过硬编码内置了 DNS?

  •  
  •   CirnoSalt · 121 天前 via Android · 11152 次点击
    这是一个创建于 121 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  121 天前
    看了眼似乎有很多回复都开始跑偏了……
    这个帖子本意有两点:
    1:截图中的行为是不是真的存在?是否有实锤?
    2:不只是针对 MIUI ,其他厂商如果存在类似情况,硬编码预置的行为是否合适?是否有更加妥当的做法?(如既可以避免普通用户因为 DNS 失效而断网,又不影响开发者&极客用户的使用)
    96 条回复    2022-03-15 04:14:57 +08:00
    neroxps
        1
    neroxps  
       121 天前   ❤️ 1
    报告一个现象,小爱同学音箱如果在 ros 挟持了 UDP 53 端口,并分配 DNS 给他不是公网的 DNS 服务器,他链上 wifi 之后发送几个 SYN 之后就会断开 WIFI 。不知道和这个有没有关系。
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       121 天前   ❤️ 41
    我觉得不像是单独的 DNS 软件或者是供管理员用的比较专业的系统,MIUI 这样的面向大众的系统提供一个兜底的 DNS 还是可以理解的
    gam2046
        3
    gam2046  
       121 天前   ❤️ 5
    本意应该是为了当用户自己设置错误时,仍然可以保持网络连接,而不是直接嗝屁。

    这更多的还是出于用户体验的考虑。
    mdgwmt0
        4
    mdgwmt0  
       121 天前   ❤️ 1
    反正我是不用国内厂商的机器
    tanranran
        5
    tanranran  
       121 天前
    @0o0O0o0O0o #2 赞同这种观点
    showgood163
        6
    showgood163  
       121 天前 via Android   ❤️ 3
    楼主就在问这个情况是否确实存在或者能不能复现,楼上的解释啥啊?
    learningman
        7
    learningman  
       121 天前
    @showgood163 #6 反编译 class 的图都有,那就是肯定存在啊。。。
    majianglin
        8
    majianglin  
       121 天前
    小米手机还检测我的 app ,我自己下载了一个 app 不让安装,以后再也不买这个品牌的手机了,要买也只买国际版
    X0X
        9
    X0X  
       121 天前
    小米变了,不是以前那个小米了。。
    murmur
        10
    murmur  
       121 天前
    114 这个 dns 有什么风险么
    bitdepth
        11
    bitdepth  
       121 天前
    我是懷疑這個反 machine code 的動作有很多自己的加工,因為 java machine code 肯定是沒有 variable name 的
    yanqiyu
        12
    yanqiyu  
       121 天前
    @murmur 不受控的 DNS 可能泄漏你正在访问的地址
    majianglin
        13
    majianglin  
       121 天前   ❤️ 1
    @bitdepth 没有做混淆的话,能拿到变量名的
    Mateverse
        14
    Mateverse  
       121 天前
    是这样的。本人亲测,昨天发现的…

    最开始我以为部分的域名(.love)打不开,电脑没问题。后来切换了私人 dns 就打开了。然后发现 miui13 会默认添加 dns 。
    x500
        15
    x500  
       121 天前
    @majianglin OPPO 也差不多,要么就断开连接,要么一打开就关闭
    qiaoqiao1235
        16
    qiaoqiao1235  
       121 天前
    遇到过路由同时开启 ipv4/ipv6 ,然后设置小米 pad5 的 wlan 静态地址为 ipv4 指定网关和 DNS ,实际没有用查询指定的 dns ,关闭 ipv6 后就可以了。
    xgfan
        17
    xgfan  
       121 天前   ❤️ 1
    这应该是“真·国内·优化”,可以骂 PM 傻逼拍脑子优化。


    114.114.114.114 是 114 的
    8.8.8.8 是 Google 的
    240c::6666 是互联网国家工程中心的
    2001:4860:4860::8888 也是 Google 的
    gadfly3173
        18
    gadfly3173  
       121 天前
    @majianglin #8 不存在不能安装的 app 吧,只是会强制检测是否存在“风险”,但是依然可以选择安装
    gadfly3173
        19
    gadfly3173  
       121 天前
    @gadfly3173 #18 哦对 风险检测也是可以关掉的
    Sekai
        20
    Sekai  
       121 天前
    优化吃屎
    Yadomin
        21
    Yadomin  
       121 天前
    复现不了,两个设备,MIUI 12.5 和 13 🤔
    ochatokori
        22
    ochatokori  
       121 天前 via Android
    miui12 wlan 没复现出来
    设置两个不存在的 dns 地址,getprop 能够看到 3 个 dns 地址,不符合反编译代码中 dns 数量小于等于 2 的条件。
    设置一个不存在的地址,getprop 共看到两个 dns 地址,符合反编译代码中的条件但是没看到追加的 dns 。
    wsfmzq
        23
    wsfmzq  
       121 天前
    @majianglin 这个设计本意是给那些不懂的人 or 老人开启的,可以手动关闭
    CirnoSalt
        24
    CirnoSalt  
    OP
       121 天前 via Android   ❤️ 1
    @gam2046 首先目前还不确定这个截图的真实性,所以标题加了问号,楼下也有 V 友反馈无法复现。
    其次个人认为在检测到 DNS 不可用后,弹出“当前 DNS 服务器不可用,是否还原默认或设置为推荐地址?”这种提示让用户来做决定而不是直接静默接管来的更为妥当……
    CirnoSalt
        25
    CirnoSalt  
    OP
       121 天前 via Android
    @qiaoqiao1235 这种情况猜测是因为 DHCPv6 分配了 ipv6DNS ,客户端采取了 v6dns 优先导致的,所以我一直都关掉网关的 DHCPv6 ,只用运营商的 slaac 分配 v6 地址。
    ccppgo
        26
    ccppgo  
       121 天前   ❤️ 7
    @CirnoSalt 小米那么多小白用户你觉得他们能懂什么意思吗, 你这个想法太不可思议了, 小米现在用户群体太丰富了已经
    preach
        27
    preach  
       121 天前
    说实话,如果用户没有 dns 帮你添加一个也算合理吧。
    gadfly3173
        28
    gadfly3173  
       121 天前
    @CirnoSalt #24 事实上对于很多人来说,打开应用要授予应用权限、同意隐私协议这种事情就已经很难理解了。隐私协议里那些收集 cookie 之类的字眼根本让他们无法理解,你再来个 dns 不可用的警告。。。
    clf
        29
    clf  
       121 天前
    我无法复现。前几天就因为 DNS 设置问题导致手机上不了网,但它显然没有走 114 的 DNS 。除非 114 也正好抽风。
    gam2046
        30
    gam2046  
       121 天前   ❤️ 6
    @CirnoSalt #23 我觉得你说的对,但是 [当前 DNS 服务器不可用,是否还原默认或设置为推荐地址] 这种提示,拿去问一下你的男女朋友、父母等各类非计算机从业人员,他们是不明所以的。甚至不知道选是与否的区别是什么,只能瞎点。小米这种做法是不妥,只能说是最终向用户体验低头了。毕竟专业用户占比还是极少数。
    0o0O0o0O0o
        31
    0o0O0o0O0o  
       121 天前
    @CirnoSalt 其实一些应用也会内置 DNS ,这个是很难调和的,专业用户终究要借助专业的方式的。
    blueboyggh
        32
    blueboyggh  
       121 天前   ❤️ 17
    以后手机应该激活的时候加一个选项,客户是极客用户还是小白用户,让客户自己选

    v2 上很多问题,站在占全体用户 95%以上的小白用户的角度考虑一下就很明白了,但是有的人非要站在只占 5%一下的极客用户的角度去考虑问题,徒增烦恼
    diguoemo
        33
    diguoemo  
       121 天前 via Android
    三星港版之前也硬编码 114dns ,后面系统更新取消了这个设置
    zzlatan
        34
    zzlatan  
       121 天前   ❤️ 1
    @blueboyggh 认同
    wy315700
        35
    wy315700  
       121 天前
    @0o0O0o0O0o
    做应用内置 DNS 应该是常见做法了。一般会用 HTTPDNS 。因为你无法预料用户会配置一个什么样的 DNS 导致连不上服务。。。
    FlyingShark
        36
    FlyingShark  
       121 天前
    这个蛮正常的,接触过几个洋垃圾平板,也设置了兜底 DNS ,例如 8.8.8.8 ,而且系统 APP 也不用你的内网 DNS

    安装一个 adguard 就可以在日志中看
    hronro
        37
    hronro  
       121 天前   ❤️ 3
    @0o0O0o0O0o #2
    首先大众就不会自己去动这些专业的设置,因为对于大众来说,大概率他们连 DNS 是什么都不知道。但对于想对这些设置的用户来说,MIUI 却不会按照用户的意愿来设置,这本就是一种强盗逻辑。
    guyuesh2
        38
    guyuesh2  
       121 天前
    @yanqiyu 我记得 DNS 协议好像是不加密的吧?理论上他不需要设计这么多。直接 网卡抓包就好了。DNS over TLS , DNS over HTTPS 协议好像才能避免被监控
    3kkkk
        39
    3kkkk  
       121 天前
    我把红米手机连接公司 wifi,手动设置为 114 也不生效。公司出网是鹏博士还是用的运营商的 dns 服务。
    v2tudnew
        40
    v2tudnew  
       121 天前
    运营商 DNS 一开始也是为了尽量就近解析链接最快节点,看现在都玩成啥用了,动不动封这封那。
    CirnoSalt
        41
    CirnoSalt  
    OP
       121 天前 via Android
    @ccppgo 问题是小白用户连 DNS 是什么都不知道,压根就不会乱动 DNS 设置啊……动了才会出问题,不动都出问题那就是运营商的锅了,出了问题才有这种情况,你这怼人逻辑都不通……→_→
    CirnoSalt
        42
    CirnoSalt  
    OP
       121 天前 via Android
    @gam2046 是的,想了一下,换成「检测到当前 wifi 无法上网,点击尝试自动修复。」似乎更好些
    WuSiYu
        43
    WuSiYu  
       121 天前   ❤️ 1
    常规操作了,我之前就观察到过华为和一加的手机也会有这种行为,有的是会覆盖 DHCP 分配的 DNS ,有的是在 DHCP 分配的 DNS 之后再给你塞一个
    也根本不需要反编译啥的,在路由器防火墙上加条 LOG 规则就能看到,如果你希望自己控制 DNS 可以在路由器上设个 redirect 啥的拦截一下
    CirnoSalt
        44
    CirnoSalt  
    OP
       121 天前 via Android
    @v2tudnew 假如 MIUI 这个情况是真的,截图里设置的也全是 53 端口标准 DNS ,现在很多地区运营商劫持都是整个 DNS53 全部搞事,标准端口 DNS 怎么改都无效,会被劫持回运营商的 DNS ,就很离谱……
    (楼上那位鹏博士用户的症状看上去就蛮像的)
    CirnoSalt
        45
    CirnoSalt  
    OP
       121 天前 via Android
    @WuSiYu 是个好主意
    v2tudnew
        46
    v2tudnew  
       121 天前
    @CirnoSalt #44 就是说嘛,出发点都是好的,但后面就变味了,就不应该搞这些。
    kingjpa
        47
    kingjpa  
       121 天前
    @murmur 114 黑历史还是不少的,现在存不存在就不好说了
    CirnoSalt
        48
    CirnoSalt  
    OP
       121 天前 via Android
    @wy315700 我印象中某小而美 APP 就有类似的设置?隐约记得在哪里看到过分析,预置的 dnspod ,还是 DoH 的……
    learningman
        49
    learningman  
       121 天前
    @CirnoSalt #48 是的,微信会走自己的 httpdns ,之前研究过
    JensenQian
        50
    JensenQian  
       121 天前 via Android
    Danswerme
        51
    Danswerme  
       121 天前
    @neroxps +1 ,这个问题很久以前我也遇到过了,劫持 53 端口后小爱同学就没网了。
    ccppgo
        52
    ccppgo  
       121 天前
    @CirnoSalt 其实人家普通用户根本不懂你这些东西, 就一个标准, 能用就行,你就说买回来的新手机正常使用有没有问题吧, 是你们这帮人跟普通人不一样, 讲究的多, 所以提出乱七八糟的意见都不用动动脑筋大众用户能不能理解
    inoreader
        53
    inoreader  
       121 天前   ❤️ 4
    其实对于 精神洁癖者、google 真香者、国内就是差的用户 ,基本上动手能力不会太差,小米已经给了自由,申请解锁 bootload ,刷自己信任的 rom 就可以了,啥问题都没了。小米已经不仅仅面向手机发烧友了,没必要要求厂家去满足非常小众的用户需求。国内非开发者、中老年人需要的仅仅是一个拿到手就可以用且用着不会出问题的手机。
    zed1018
        54
    zed1018  
       121 天前
    我记得很久以前小米的路由器就搞过流量劫持,可以说是狗改不了吃屎了
    q1angch0u
        55
    q1angch0u  
       121 天前
    冷知识:114dns 的股东是某安信 0. 0
    bclerdx
        56
    bclerdx  
       121 天前
    @inoreader 国内不就是靠这些老忽悠中老年人和小白么?剥脱他们的动手能力和选择权。
    cybird
        57
    cybird  
       121 天前
    > 既可以避免普通用户因为 DNS 失效而断网,又不影响开发者&极客用户的使用

    目前的 DNS 应该都是采用的多重缓存吧。
    iVeego
        58
    iVeego  
       121 天前 via Android
    @blueboyggh 大胆一些,99.9%都不知道
    jim9606
        59
    jim9606  
       121 天前   ❤️ 4
    我倒不觉得这是个什么大问题。
    你看那么多网络排障都是直接叫设置 114.114.114.114 或者 223.5.5.5 而不是按地区找运营商 DNS 的(我甚至怀疑这些运营商 DNS 有没有被文档化过),就知道这方法是可行且可操作性很强的。

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

    而且怕 DNS 泄漏被查水表的我觉得是多虑了,国内都不知有多少 Google Chrome 和带 GMS 的手机天天查 Google 的域名,大部分用户都不知道自己的设备在干啥,闲得蛋疼去查这些人?
    darkengine
        60
    darkengine  
       121 天前
    oppo 应该也是那么干的,我们国外的用户的 oppo 手机就打不开 cloudflare CDN 上的图片,iOS 和小米华为都正常得很,非常蛋疼。
    xxfye
        62
    xxfye  
       121 天前 via Android
    盲猜用于 dot 的域名解析
    ZE3kr
        63
    ZE3kr  
       121 天前 via iPhone
    为什么有人觉得这样做好?

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

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

    此外,企业内网怎么办?合规性怎么办?公司安全部门是否需要全面禁止 MIUI ?
    HolgerHuo
        64
    HolgerHuo  
       121 天前 via Android
    或许本意是好的
    但是 114DNS 真的还能用吗 lol
    这家年久失修 不仅没有 DNS6/DoH/DoT
    就连一些域名都会解析不出来…
    yaott2020
        65
    yaott2020  
       121 天前 via Android
    这种做法可以理解,但我觉着写死 dns 不是很合适,哪知道哪天 240c6666 就不是 dns 了
    Goooooos
        66
    Goooooos  
       121 天前
    @ysc3839 #61 小于 2 个 dns 就给加默认。。。那是不是 8888 ,8844 都加上就没默认了
    inoreader
        67
    inoreader  
       121 天前
    @bclerdx 你去问问你周边的亲戚和非开发的朋友,他们有多少人知道 dns 、dhcp 、root 等,他们只是普通人过普通日子,一个不出问题的手机就行了,他们没意愿也没精力去研究这些,有这时间折腾手机 还不如去刷个抖音、打个麻将、逛个淘宝。
    jpyl0423
        68
    jpyl0423  
       121 天前   ❤️ 2
    小白不知道何为 DNS, 和小白会去动 DNS 这一点都不矛盾.
    你没见过电脑小白瞎折腾, 结果电脑用不了的吗
    wm5d8b
        69
    wm5d8b  
       121 天前 via Android
    早就发现了,而且几个品牌的手机都这样做的,你去网络信息里看,明文告诉你使用的 DNS 的
    q1angch0u
        70
    q1angch0u  
       121 天前 via iPhone   ❤️ 2
    为什么很多人都说是为了方便小白呢?那苹果、三星等品牌的手机难道没有小白使用了吗…个人认为这件事儿的问题的论点应该是 [系统内置第三方 dns 是否侵犯了用户的知情权] ~
    Zy143L
        71
    Zy143L  
       121 天前 via Android
    没感觉有啥问题啊
    而且这是 MIUI11 的 目前 MIUI13 安卓 12 未检查到这部分
    国外 Google 硬编码的还是 8.8.8.8 呢
    国内换成 114 好像没啥不妥的
    对于挂梯的来说都是 DNS 分流处理也没影响
    liuidetmks
        72
    liuidetmks  
       121 天前
    矫情
    aheadlead
        73
    aheadlead  
       121 天前   ❤️ 12
    仅代表个人观点,我曾经在 MIUI 工作过一段时间,和网络无关。
    我也并不是来证实 MIUI 有这样的行为,早已不用手机。

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

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

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

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

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

    仅代表个人观点。
    aheadlead
        74
    aheadlead  
       121 天前
    曾经处理过一大堆工单,投诉红米 6A 的手机打吃鸡卡的… 诸位可以看看这是个什么 CPU
    599 的手机打刺激战场还能 60fps ,那旗舰机切腹自尽算了……(仅代表个人观点)
    jerryjhou
        75
    jerryjhou  
       121 天前 via iPad
    @HolgerHuo 114 是最老牌的公共 DNS ,分区多可用性佳…
    百度腾讯一直有时不时下线的毛病
    AliDNS 是今年才加的节点,在此之前全都要去杭州绕一圈
    CNNIC 只有北京单点,更年久失修了
    jerryjhou
        76
    jerryjhou  
       121 天前 via iPad
    @q1angch0u 唯一的争议是:国产选哪家😓8.8.8.8 被广泛用于谷歌系和非谷歌系的解析,我观测到过 Netflix 也强行绕开系统 DNS
    jerryjhou
        77
    jerryjhou  
       121 天前 via iPad
    @HolgerHuo 我刚查了下 223.5.5.5 居然做了全球 Anycast…这下碾压 114 了
    abc8678
        78
    abc8678  
       121 天前 via Android
    碰过一两次,打开某种网站,变成了红色的页面,写的是什么反诈。不知道是巧合还是另有原因
    czfy
        79
    czfy  
       121 天前
    @aheadlead 只要做过数码产品电商客服性质的工作,就能深切体会到用户可以有多奇葩
    sobigfish
        80
    sobigfish  
       121 天前
    推送 dns 应该是 ISP 完成的,这有点越俎代庖
    EvanQu
        81
    EvanQu  
       121 天前   ❤️ 1
    这个兜底是给那些又菜又爱玩的
    懂的人和不懂人的反而不用关心
    就是一些又菜又爱玩的用户,看了几篇所谓的优化教程,就开始折腾,出了问题就各种 diss 研发人员.
    有兜底我觉得没毛病,你去看看论坛上面问的都是什么沙雕问题就知道了
    还是那句话,你永远也不知道你的用户可以有多奇葩
    zxxufo008
        82
    zxxufo008  
       121 天前
    @abc8678 是用的 miui 自带的浏览器吗
    YY
        83
    YY  
       121 天前
    时间同步服务器不都可以内置吗
    abc8678
        84
    abc8678  
       120 天前 via Android
    @zxxufo008 不记得了,好像是 APP 内置的浏览器
    cubecube
        85
    cubecube  
       120 天前
    @3kkkk 这只能说明某一级防火墙屏蔽了某些 UDP 的 53 端口,直接劫持给响应了
    WebKit
        86
    WebKit  
       120 天前 via Android
    这不是正常操作吗?普通人有几个会设置 DNS 的,随便填错了你给他还回来啊!
    bclerdx
        87
    bclerdx  
       120 天前
    @inoreader 所以这些人也就永远无法提高自己,永远没有自己的思想与想法,就知道刷抖音、打麻将和逛淘宝。被人任人宰割也在情理之中了。出问题就找抖音解决、打麻将解决、淘宝解决好了,不用找技术人员解决。
    bclerdx
        88
    bclerdx  
       120 天前
    @EvanQu 说的太对了,大千世界,无奇不有,只有你想不到的,没有他们做不到的。
    bclerdx
        89
    bclerdx  
       120 天前
    @WebKit 观点不敢苟同,有几个人知道如果发生了地震,自己应该怎么做?难道不应该学习与了解?好吧,啥都不会做,就只能等死或等待救援被。

    另外,在公共场合有几个人知道 AED 是什么,干什么用的,如何快速找到 AED 设备?难道不该自己主动去了解和知晓?啥也不知道,好吧,那就等死或者等待施救。
    27hh
        90
    27hh  
       120 天前
    @bclerdx 哀其不幸,怒其不争
    bclerdx
        91
    bclerdx  
       120 天前
    @27hh 说的好,说的好,说的好。
    leido
        92
    leido  
       120 天前
    @jerryjhou 阿里和腾讯的 dns 基本都实现的全球 anycast, 也实现了 DoH/DoT 和境外无污染解析, 包括带 subnet 的解析.

    114 你去了解就知道他只是瞄准国内 ISP 的 dns 服务器市场, 收服务费罢了, 他本质是 ToB 的公司, 而不是 ToC. 不应该是普通用户的首选.
    leido
        93
    leido  
       120 天前
    @jerryjhou 你要说 114 分区多我更是笑了, 腾讯 dnspod 细分到三大 ISP 每个省都有后端递归, 缓存记录更是细分到 /24 的请求地址(v4)
    titanlpy
        94
    titanlpy  
       119 天前
    @bclerdx 你家老年人还会自己设 dns 呐?
    jerryjhou
        95
    jerryjhou  
       114 天前 via iPad
    @leido 「可用性」三个字看不见吗🙂119.29.29.29 (至少在几年前)动不动就 service down ,它分区一直是最多的,可那又如何,可用性比精确解析重要多了。即使在 223.5.5.5 只有杭州单点的时代,AliDNS 也是吊锤 DNSPod 公共服务的存在
    leido
        96
    leido  
       114 天前 via Android   ❤️ 1
    @jerryjhou 如果你讲稳定性,那最好的毫无疑问是 114 。我认为 119 的稳定性已经提升到了可以接受的范围。当然阿里我也在用,因为成都可以本地接入 anycast 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3245 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 282ms · UTC 04:45 · PVG 12:45 · LAX 21:45 · JFK 00:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.