docker 启用后没有 wifi 热点

docker 启用后没有 wifi 热点

当我启动docker服务/套接字时,我无法再通过wifi热点共享我的笔记本电脑连接。更准确地说,我的手机仍然检测到我的热点,我输入密码,它告诉我“已注册”,但我也收到“无互联网连接”的提示。

当我禁用并停止 docker 服务并重新启动我的笔记本电脑时,手机就可以连接到互联网。

我认为docker肯定会干扰我的网络......

您有没有解决方案可以让 docker 服务保持活跃,同时允许我将我的互联网连接共享为我的 wifi 热点?

提前致谢


Linux Mint 21 Vanessa 和 Ubuntu 22.04 jammy
HP Zbook 15 power G8
内核 5.15.0-53-generic


iptables -n -v -L

Chain INPUT (policy ACCEPT 2119 packets, 1236K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 51 packets, 3060 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   51  3060 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   51  3060 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 1658 packets, 215K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
   51  3060 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  <WLANINTERFACE> *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      <WLANINTERFACE>  0.0.0.0/0            0.0.0.0/0           
   51  3060 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  ```

答案1

@Donkeycode Docker 修改了 iptables 转发队列。来自热点接口的 IP 数据包将被丢弃。

诊断:

iptables -n -v -L显示当前规则集

iptables -Z重置计数器

尝试使用你的热点。第一个命令将显示哪条规则会丢弃你的流量。

解决方案

  1. 安装 iptables-persistent 数据包
  2. 添加文件 /etc/iptables/rules.v4

此文件需要以下上下文

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A DOCKER-USER -i <WLANINTERFACE> -j ACCEPT
-A DOCKER-USER -o <WLANINTERFACE> -j ACCEPT
-A DOCKER-USER -j RETURN
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

请更换 <WLANINTERFACE>替换为您的 WLAN 接口名称,例如wlan0wlp1s0

重启后你的热点就可以正常工作了

相关内容