LINUX.ORG.RU
решено ФорумAdmin

Проблемы с сетью в WSL 2 (Ubuntu 22.04) после установки Docker

 , , ,


0

1

После установки docker в WSL 2 то ли порушились маршруты, то ли проблемы с iptables - не пингуется даже Wi-Fi роутер.

ifconfig:

$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:d5:dd:9f:fb  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 110 (110.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.11.112  netmask 255.255.240.0  broadcast 172.17.15.255
        inet6 fe80::215:5dff:fed4:8bd3  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:d4:8b:d3  txqueuelen 1000  (Ethernet)
        RX packets 55829  bytes 149912529 (149.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16751  bytes 1334804 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 269  bytes 22116 (22.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 269  bytes 22116 (22.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

route:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.17.0.1      0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

iptables -L

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  —  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  —  anywhere             anywhere
ACCEPT     all  —  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  —  anywhere             anywhere
ACCEPT     all  —  anywhere             anywhere
ACCEPT     all  —  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (1 references)
target     prot opt source               destination

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  —  anywhere             anywhere
RETURN     all  —  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination
DROP       all  —  anywhere             anywhere
RETURN     all  —  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  —  anywhere             anywhere

Перемещено hobbit из general


docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.11.112  netmask 255.255.240.0  broadcast 172.17.15.255

охреневший docker создал подсеть которая перекрывает свою локалку.

Что с эти делать - решать тебе.

vel ★★★★★
()
Ответ на: комментарий от C

iptables нужно или почистить

#!/bin/sh

/bin/sudo /bin/iptables -t filter -F
/bin/sudo /bin/iptables -t raw -F
/bin/sudo /bin/iptables -t security -F
/bin/sudo /bin/iptables -t mangle -F
/bin/sudo /bin/iptables -t nat -F
/bin/sudo /bin/ip6tables -t filter -F
/bin/sudo /bin/iptables -P FORWARD ACCEPT

или привести в состояние как было до докера.

и убрать адрес с интерфейса docker0 даже если он не в up он мешает.

адреса eth0 и docker0 нужно сделать в разных непрекрываемых сетях.

dhampire ★★★
()
Ответ на: комментарий от dhampire

Переключил адаптер в WSL2 в режим бриджа (был NAT) с помощью статей: 1. https://pyatilistnik.org/installing-and-configuring-hyper-v-on-windows-11/ 2. https://programmerall.com/article/55732587270/

Теперь все чисто в настройках сети

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.196  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 5c:bb:f6:9e:ee:fa  txqueuelen 1000  (Ethernet)
        RX packets 927  bytes 330069 (330.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 292  bytes 33810 (33.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Интернет доступен, но служба докера не работает:

$ sudo docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

C
() автор топика

Ты что-то не то делаешь. Под виндой надо не в WSL докер ставить, а виндовый. А потом в настройках виндового докера говорить ему, чтобы он использовал WSL. И тогда в WSL магическим образом появляется команда «docker».

rupert ★★★★★
()