V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rangerting
V2EX  ›  程序员

有人在 Windows 上使用过 mDNS 做过服务发现吗?请教一个问题

  •  
  •   rangerting · 45 天前 · 1397 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:
    我家的个人设备是个杂牌军(有 Android/iOS/macOS/Windows/Linux 各种),这不 AI 编程很厉害吗,我用 AI 开发了一套工具,实现了 LAN 网络中跨平台设备的协同功能(文件传输、照片备份、文件同步、剪切板同步等等),使用了 mDNS 协议(自己基于开源库实现,未使用 Android 的 NSD 和 Apple 的 Bonjour )来解决设备自动发现的问题(避免输入 IP ,扫码啥的繁琐的操作,工具蛮,交互就要极简)。

    问题:
    Android/iOS/macOS/Linux 上都工作的好好的,但是在 Windows 上,时不时无法发现新设备,目前已知出现该问题时,Windows 上无法收发 mDNS 消息,必须断开网络重新链接或者重启电脑才能恢复。

    补充:
    21 年微软和英特尔联手解决了一个困扰多年的多播路由 bug ,其现象跟这个很像,但是已于 Windows 10 Version 21H1 修复。

    问题挂了几个月了,没有进展,头疼,有没有大神弄过这玩意? 虚心请教~~~
    8 条回复    2025-07-19 01:18:51 +08:00
    yolee599
        1
    yolee599  
       45 天前 via Android
    Wireshark 抓包看看数据有没有到电脑
    pagxir
        2
    pagxir  
       45 天前 via Android
    你得说你的网络环境,有线还是无线,怎么接法。加入组播组了么
    rangerting
        3
    rangerting  
    OP
       45 天前
    @yolee599 @pagxir
    网络环境是家庭 wifi ,5G ,环境中有:1 台 macbook pro 、1 台 huawei metabook x pro(出问题的这台,windows10 系统)、1 台 Linux 服务器、 多台 Android 设备、多台 iOS 设备。

    出问题时通过抓包和 dns-sd 都进行了分析,情况:
    1 、dns-sd 在 windows 上除了看到自己,看不到别人;其他设备出了 windows 外,可以相互看到。
    2 、windows 抓包分析可以看到自己发起的 query 和自己的 resp ,看不到其他人的 query 和 resp 。
    rangerting
        4
    rangerting  
    OP
       45 天前
    @pagxir
    补充, 加入组播了
    PS:提供网络设备发现能力的库,是我自己基于开源库实现的一套跨平台中间件。
    yolee599
        5
    yolee599  
       45 天前 via Android
    关闭了 Windows 防火墙看看
    ikas
        6
    ikas  
       45 天前
    使用过这个库 https://github.com/mjansson/mdns 提供的 mdns 也用过 windows 内置的 mdns https://learn.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsservicebrowse, 但都没有遇到过问题...
    rangerting
        7
    rangerting  
    OP
       44 天前
    @yolee599
    这也是我怀疑过的一个方向,每次出问题都检查了防火墙规则配置,没发现问题。
    接下来关闭试试一段时间看,但是由于这个问题不是经常出现,估计要观察很长一段时间才行。
    但是,如果后续想放出来给别人下载使用,关闭防火墙可就不可行了。
    rangerting
        8
    rangerting  
    OP
       44 天前
    @ikas
    你有长时间运行吗? 我的场景是 App 启动后不会关闭,responder 会一直持续运行,APP 做了休眠/唤醒的处理。
    怀疑过休眠恢复处理导致了问题,但查看日志显示正常恢复,并且问题偶现,且出现问题后,所有 LAN 网络其他类型的 mdns 消息都收不到,不仅我的。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:25 · PVG 23:25 · LAX 08:25 · JFK 11:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.