问题描述
在 1Panel 上使用 Docker(host 网络模式) 安装的 Home Assistant,添加 Xiaomi Home 插件时,出现 认证失败 问题。 查看日志发现错误:
aiodns.error.DNSError: (11, 'Could not contact DNS servers')
aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host ha.api.io.mi.com:443
原因是 DNS 解析失败,导致无法连接小米服务器。
解决方案(修改宿主机 DNS)
由于 Docker 使用 host
网络模式,容器的 DNS 依赖宿主机配置。我们需要修改宿主机的 DNS 设置。
步骤 1:修改 systemd-resolved
配置
打开配置文件:
sudo nano /etc/systemd/resolved.conf
取消注释并修改以下内容:
[Resolve] DNS=8.8.8.8 1.1.1.1 # 主 DNS(Google + Cloudflare) FallbackDNS=8.8.4.4 9.9.9.9 # 备用 DNS
(如果文件不存在,可能是
/etc/systemd/resolved.conf.d/
下的某个文件)保存并退出(
Ctrl + X
→Y
→Enter
)。
步骤 2:重启 systemd-resolved
服务
sudo systemctl restart systemd-resolved