mcdull 发表于 2019-2-17 22:00:45

如何在 debian 9 + HASS.IO 環境下設定 net=host?

為了解決小米網關的 multicast 封包丟失, 所以要將所有port 映射, 執行 docker 時要添加--net=host 參數.我在 debian 環境內的 /usr/sbin/hassio-supervisor

runSupervisor() {
    docker rm --force hassio_supervisor || true
    docker run --name hassio_supervisor \
      --security-opt apparmor="${APPARMOR}" \
      --net=host \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v /var/run/dbus:/var/run/dbus \
      -v ${HASSIO_DATA}:/data \
      -e SUPERVISOR_SHARE=${HASSIO_DATA} \
      -e SUPERVISOR_NAME=hassio_supervisor \
      -e HOMEASSISTANT_REPOSITORY=${HOMEASSISTANT} \
      ${SUPERVISOR}
}

加了這一個, "--net=host \"但不成功.. 跟沒有加一样. 有其他方法嗎?

RobinVP 发表于 2019-2-18 09:47:10

如果你是用hassio 的安装脚本装的,homeassistant 的 container 默认就是 --net=host

neroxps 发表于 2019-2-18 12:18:56

homeassistant 默认就是 --net=host

mcdull 发表于 2019-2-18 14:29:19

RobinVP 发表于 2019-2-18 09:47
如果你是用hassio 的安装脚本装的,homeassistant 的 container 默认就是 --net=host

可是原來腳本沒有這一句在 run 的參數內. (--net=host) 是我加上去的.可以怎樣測試?

mcdull 发表于 2019-2-19 15:22:14

我已經係 router 開了 multicast. 關了 multicast snooping.
在debain 的 docker0 interface 也關了 multicast snooping.
debain 用 tcpdump 可以看到 小米网關的封包.但 2.5小時後依然斷線.

mcdull 发表于 2019-2-20 15:17:01

本帖最后由 mcdull 于 2019-2-20 15:19 编辑

現在是這樣的.
我在 host 有三個 network (還有其他不相關的 IPV6)
1. ens192 (192.168.100.xxx)
這個就是連上 Router 的. 可以收到 小米的封包
2. docker0 (172.17.0.1) 這個收不到封包
3. hassio (172.30.32.1)
這個收不到封包

Container內
只有 eth0, 收不到封包.

如何可以將 ens192 的封包轉到 container 內呢?


页: [1]
查看完整版本: 如何在 debian 9 + HASS.IO 環境下設定 net=host?