『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2175|回复: 12

[技术探讨] docker模式下 容器内dns解析不了

[复制链接]

5

主题

68

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
金钱
259
HASS币
0
发表于 2022-4-29 15:22:27 | 显示全部楼层 |阅读模式
本帖最后由 是拖油瓶吖 于 2022-4-29 15:25 编辑

根据官网安装方法,在树莓派debain系统安装hass,运行后发现容器内直接ping ip可以通,ping 网址不能解析
bash-5.1# ping github.com
ping: bad address 'github.com'
bash-5.1# ping 114.114.114.114
PING 114.114.114.114 (114.114.114.114): 56 data bytes
64 bytes from 114.114.114.114: seq=0 ttl=76 time=22.196 ms
在容器内直接修改resolv.conf,
nameserver 172.30.32.3  #原始设置


把dns服务器设为114.114.114.114,解析正常
nameserver 114.114.114.114  #修改后
172.30.32.3这个地址应该是hass自己建的dns,能ping通


现在问题是
docker的hassio_supervisor 里面同样是172.30.32.3这个dns,能正常用(最开始不能用,改过resolv.conf,后续重启虽然恢复了,但是解析也是正常的)
docker的homeassistant里面是这个dns就不能用(改过resolv.conf,当时能用,重启就恢复了,而且解析又不行了)
导致天气之类的插件不能获取数据


解决办法是启动后进docker手动改dns,挺麻烦的,每次重启都要操作一次


尝试过/etc/docker/daemon.json里面指定dns 没有用
尝试过主机os上直接修改容器的配置 但是容器启动配置都会重置,没有用


这问题有没有别的解决办法?
github上面最近好多连不了仓库反馈,我怀疑也是这个dns的问题


回复

使用道具 举报

26

主题

2096

帖子

8506

积分

论坛元老

Rank: 8Rank: 8

积分
8506
金钱
6405
HASS币
30

论坛元老

发表于 2022-4-29 16:12:58 | 显示全部楼层
172.30.x.x 是局域网段,根本不是互联网ip
回复

使用道具 举报

5

主题

68

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
金钱
259
HASS币
0
 楼主| 发表于 2022-4-29 16:23:38 | 显示全部楼层
情非殇 发表于 2022-4-29 16:12
172.30.x.x 是局域网段,根本不是互联网ip

docker装hass,他本地自建了一个dns,虚拟出了很多本地网段
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-4-29 17:04:28 | 显示全部楼层
本帖最后由 neroxps 于 2022-4-29 17:05 编辑

https://community.home-assistant ... ng-in-hassio/194197

因为 supervisor 内建了 hassio_dns 利用 CoreDns,并且 CoreDns 配置文件是无法修改的(重启会从新生成,非常 F*ck 的设计!!!)
进入容器修改 DNS 更新容器后又会被恢复。一劳永日只能按下面的方法。

而且他的 CoreDns 开启了权威校验,所以挟持 DNS 是不行的,只能用命令手动修改 DNS 配置

ha dns options --servers dns://IP_ADDRESS
ha dns restart


https://community.home-assistant ... -in-hassio/194197/3

评分

参与人数 1金钱 +5 收起 理由
Hello_world_nxx + 5

查看全部评分

Nero
回复

使用道具 举报

5

主题

68

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
金钱
259
HASS币
0
 楼主| 发表于 2022-4-29 17:32:50 | 显示全部楼层
neroxps 发表于 2022-4-29 17:04
https://community.home-assistant ... ng-in-hassio/194197

因为 supervisor 内建了 hassio_dns 利用 Cor ...

还是论坛大佬多 非常感谢
回复

使用道具 举报

3

主题

222

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2800
HASS币
10
发表于 2022-4-29 17:46:41 | 显示全部楼层
neroxps 发表于 2022-4-29 17:04
https://community.home-assistant ... ng-in-hassio/194197

因为 supervisor 内建了 hassio_dns 利用 Cor ...

真是。。。。。
回复

使用道具 举报

80

主题

388

帖子

1674

积分

金牌会员

Rank: 6Rank: 6

积分
1674
金钱
1286
HASS币
0
发表于 2022-5-1 07:31:51 | 显示全部楼层
network 选 host
回复

使用道具 举报

5

主题

68

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
金钱
259
HASS币
0
 楼主| 发表于 2022-5-1 23:08:54 | 显示全部楼层

详细说一下? 哪里设置 截图或者代码?
谢谢
回复

使用道具 举报

0

主题

38

帖子

308

积分

中级会员

Rank: 3Rank: 3

积分
308
金钱
270
HASS币
0
发表于 2022-5-2 01:06:13 | 显示全部楼层
是拖油瓶吖 发表于 2022-5-1 23:08
详细说一下? 哪里设置 截图或者代码?
谢谢

他说的是让你把docker里面的容器的网络模式改成host
回复

使用道具 举报

80

主题

388

帖子

1674

积分

金牌会员

Rank: 6Rank: 6

积分
1674
金钱
1286
HASS币
0
发表于 2022-5-2 07:07:00 | 显示全部楼层
是拖油瓶吖 发表于 2022-5-1 23:08
详细说一下? 哪里设置 截图或者代码?
谢谢

如果你是openwrt 下的docker,截图所示。

如果是命令,docker run --network host ......

https://docs.docker.com/network/network-tutorial-host/
捕获.JPG
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 08:22 , Processed in 0.115287 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表