V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
a719114136
V2EX  ›  OpenWrt

OpenWrt 导致小米音响网络连接失败,帮忙分析下可能是什么原因

  •  
  •   a719114136 · 2022-11-16 20:57:42 +08:00 · 2048 次点击
    这是一个创建于 724 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说下环境:

    • 硬件:香橙派 r1 plus lts
    • 系统:immortalwrt 21.02.3
    • 连接方式:路由器 lan 口接开发板 wan 口,平时只有自己的手机电脑把网关、dns 设为开发板的地址
    • immortalwrt 软件如下,目前只有 AdGuard 与 Turbo ACC 在用

    现象

    小米音响提示网络连接失败,其他智能家居(包括摄像头,门锁,微波炉,电视等)以及手机电脑都没问题。

    就这个小米音响一旦开发板插上电就网络连接失败,拔了电源就正常。路由器 DHCP 的网关、dns 都是路由器自己的地址

    求大神帮忙分析下是什么原因

    第 1 条附言  ·  2022-11-17 19:46:38 +08:00

    嗯,解决了,但不知道具体原因。

    想起网上AdGuard配置教程里说:要在上游DNS开头加上运营商dns,并把Bootstrap DNS改为运营商dns。这样改了以后就好了,原始的上游DNSBootstrap DNS只有一个阿里的dns

    第 2 条附言  ·  2022-11-17 19:49:58 +08:00
    另外,我 AdGuard 配置中有一条”作为 dnsmasq 上游服务器“的配置,不知道是不是也和这个有关
    10 条回复    2024-04-25 08:35:10 +08:00
    neroxps
        1
    neroxps  
       2022-11-16 22:24:12 +08:00 via iPhone
    dhcp 分配的 dns 配阿里云的就好了,配好网再改回来
    dier
        2
    dier  
       2022-11-16 23:07:03 +08:00 via iPhone
    有可能是被 AD 拦截了
    ochatokori
        3
    ochatokori  
       2022-11-17 00:12:32 +08:00 via Android
    ip 冲突了?
    a719114136
        4
    a719114136  
    OP
       2022-11-17 08:17:59 +08:00 via Android
    @ochatokori 不是 ip 冲突
    a719114136
        5
    a719114136  
    OP
       2022-11-17 08:19:43 +08:00 via Android
    @dier 不是呀,音响的 dns 没改,ad 日志我也看了,没有拦截记录
    yaott2020
        6
    yaott2020  
       2022-11-17 08:42:09 +08:00 via Android
    极大可能是 dns 的问题
    neroxps
        7
    neroxps  
       2022-11-17 09:21:44 +08:00
    我之前的小爱就是这样,抓包显示其实已经联网了,但他发现你的 DNS 是局域网,他就断开链接,不知道是基于什么校验的,反正我 dhcp 分下去 DNS 是阿里云的他就能连上了。
    Qiss
        8
    Qiss  
       2022-11-17 09:36:53 +08:00
    AdGuard 误判结帖。。。
    a719114136
        9
    a719114136  
    OP
       2022-11-17 19:52:16 +08:00
    @neroxps 嗯,看来确实是和 dns 有关。

    我改了一下 AdGuard 的上游 DNS ,Bootstrap DNS 就好了 0.0
    dvbs2000
        10
    dvbs2000  
       198 天前
    我用人话翻译一下


    这是一个自己动手实现的软路由系统。设计目标是为了玩得开心,而不是追求极致性能。它采用模块化设计,面向数据包和连接,使用真实 IP 地址。虽然结构复杂,但条理清晰,拓展性好,能够轻松适配各种形式的 VPN 。

    基础操作系统使用 Rocky Linux 9 。主要使用 bash 脚本语言编写,部分模块使用 C++。没有图形界面,但有一些命令行工具。使用了多个内网 IPv4 和 IPv6 网段,尽管并非所有 IP 段都是必须的。

    核心是 NET-IX 模块,提供虚拟交换功能。它使用一段内网 IPv4 和 IPv6 地址,提供调度、故障自动处理、分流及 DNS 、访问控制等服务。其中的主要功能模块包括:

    1. INGW:内网接入网关,可针对不同设备应用不同策略,如 DNS 等。
    2. DNSIW:普通 DNS 服务,转发到运营商 DNS 。
    3. DNSOW:过墙 DNS 服务,对白名单域名转发 DNSIW,其他使用自己的递归 DNS 。
    4. OWGW:隧道入口,对白名单 IP 转发至 RTGW 。
    5. RTGW:IX 网段的出口网关,连接到 WAN 。
    6. DNSROUTE:DNS 分流/策略分流模块,自行开发。

    NET-LAN 模块对应普通内网接入,可直接分配公网 IPv6 地址并使用 SNPT 做转换。

    NET-WAN 模块对应宽带接入,支持 PPPoE 、DHCP 等方式,还能转发 IPTV 流量。RTGW 连接 IX 和 WAN,对多宽带使用 connmark 解决连入连接问题。每条宽带使用两个 netns,分别连 ISP 和 TUN 。

    NET-TUN 是模块化连出 VPN,每条隧道有两个 netns:TN 和 FW 。TN 接受 OWGW 或 DNSROUTE 的流量,经隧道协议发出;FW 提供防火墙和出口路由。VPN 出口在 OWGW 进行调度并自动检查隧道健康状态。

    DNSROUTE 使用 C++ 实现,可匹配 DNS 请求并转发,并对返回的 IP 记录,后续可据此对数据包转发。

    NET-XC 模块将连入 VPN 导入 INGW 并应用三层策略。NET-IoT 模块隔离物联网流量。

    这个设计很灵活,在外部可方便地增删隧道、调整健康检查、改 WAN 设置等,且不影响整体。还能较容易增加新功能,如指定源 IP 经特定隧道、隧道串接、针对特定 WiFi 的 DNS 解锁等。

    总之,这是一个为了玩得开心而设计的软路由系统,结构复杂但条理清晰,模块化程度高,可玩性强。作者在设计时着重考虑了灵活性和可扩展性。


    @maybeonly 宠妻狂魔啊
    小心惯坏

    话说太复杂了 其实软路由稍微需要处理的主要是 dns 部分
    dns 主要防被解析到沟里去
    自己造轮子 说明技术水平确实高
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:17 · PVG 00:17 · LAX 08:17 · JFK 11:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.