找回密碼
 立即註冊
    查看: 179|回覆: 0

    【診斷實作】HA 掃不到裝置?mDNS 五步驟排查,每一步都告訴你該看到什麼

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 02:11:39 | 顯示全部樓層 |閱讀模式
    「裝置明明在線上,Home Assistant 就是找不到它。」

    這篇不是列一堆可能原因讓你自己猜。這篇是一條排查路線:五個步驟,每一步都有實際要打的指令、正常的輸出長什麼樣、異常的輸出長什麼樣,以及看到那個輸出之後下一步往哪走。

    做完第一步能自己判斷第一步的結果,才往第二步走。

    「裝置明明在線上,Home Assistant 就是找不到它。」

    做完這篇你會知道什麼


    • 你家的 mDNS 到底是「完全不通」「通但不跨網段」還是「通但名稱解析不了」
    • 三種最常見原因各自的確認指令與修法(含可直接貼的完整設定檔)
    • 真的修不好時,怎麼繞過 mDNS 讓裝置照樣能用


    ---

    先花兩分鐘懂它,後面的判讀才有意義

    mDNS 做的事情很單純:你的電腦想知道 bedroom-sensor.local 是哪個 IP,它不去問 DNS 伺服器,而是往整個區域網路喊一聲「誰是 bedroom-sensor?」,那台裝置自己回答。

    技術上是這樣:


    • 走 UDP 通訊埠 5353
    • 送到群播位址 224.0.0.251(IPv6 是 FF02::FB),不是送給某一台
    • 封包的存活時間設計上只夠在同一個網段內傳遞,路由器預設不會把它轉到另一個網段


    最後那一點是九成問題的根源。只要「HA」和「裝置」不在同一個網段,或中間隔了一層 Docker 的虛擬網路,這一聲就喊不過去,而且不會有任何錯誤訊息 —— HA 只是靜靜地什麼都沒發現。

    服務發現則是在這之上多一層:裝置除了回答自己的名字,還會宣告「我提供某一種服務」。你之後會在輸出裡看到這些名字:


    • _home-assistant._tcp —— Home Assistant 自己(通訊埠 8123)
    • _esphomelib._tcp —— ESP 自製韌體的裝置(通訊埠 6053)
    • _googlecast._tcp —— Chromecast、Google Nest
    • _hap._tcp —— HomeKit 配件
    • _printer._tcp / _ipp._tcp —— 網路印表機


    ---

    第一步:先看 HA 自己看到什麼

    不要先動路由器。先問 HA:你到底收到了什麼?

    Home Assistant 內建一個瀏覽器,路徑是:

    設定 → 系統 → 網路 → Zeroconf Browser

    (找不到的話,網址列直接打 /config/zeroconf 也會到。)

    你會看到什麼

    一張表格,每一列是一個被發現的服務,欄位有服務類型(_xxx._tcp.local.)、名稱、IP、通訊埠,點開還有 TXT 記錄。健康的家庭網路通常會有十幾到幾十列,至少會看到你的印表機、電視棒、手機。

    三種結果,三條路


    • 表格完全空白(連一列都沒有) → HA 這台機器根本收不到群播封包。跳到第三步,重點查 Docker 網路模式
    • 有一堆東西,但就是沒有你要找的那台 → 群播是通的,問題出在那台裝置或它所在的網段。跳到第二步
    • 看得到那台裝置,但「設定 → 裝置與服務」沒有跳出「已發現」 → 這不是 mDNS 問題。可能是那個整合本來就不支援自動發現,或者你之前按過「忽略」(在整合頁面右上角的選單裡有「顯示已忽略的整合」)


    ⚠ 空白表格還有一個良性原因:HA 才剛重開機不到一分鐘。mDNS 有些裝置只在開機時宣告一次,之後靠快取。等三分鐘再看一次,確認不是時間差。

    ---

    第二步:從另一台電腦實際掃一次

    這一步的目的是把「HA 的問題」和「網路的問題」分開。用一台跟裝置接在同一個 Wi-Fi/同一台交換器上的電腦來掃。

    ⚠ 為什麼不在 HA 上掃:Home Assistant OS 是精簡系統,終端機裡沒有 avahi-browse 這些工具,裝也裝不起來(重開就沒了)。用別台機器掃反而乾淨。

    Linux(包含 NAS 的 SSH、樹莓派、Ubuntu 桌機)

    先安裝工具:
    1. # Debian / Ubuntu / 樹莓派
    2. sudo apt update && sudo apt install -y avahi-utils
    3. # Fedora / RHEL
    4. sudo dnf install -y avahi-tools
    5. # Alpine(很多 NAS 的容器是這個)
    6. apk add --no-cache avahi-tools
    複製代碼

    然後掃:
    1. # 掃全部,並解析出 IP 與通訊埠(-a 全部 -r 解析 -t 掃完就結束)
    2. avahi-browse -art
    3. # 只看 ESP 裝置
    4. avahi-browse -rt _esphomelib._tcp
    5. # 只看 Home Assistant 自己
    6. avahi-browse -rt _home-assistant._tcp
    7. # 單獨把一個名字解析成 IP
    8. avahi-resolve -n bedroom-sensor.local
    複製代碼

    以下還有約 82% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:44 , Processed in 0.131988 second(s), 25 queries .

    快速回覆 返回頂部 返回列表