首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WSL2和Docker Desktop for windows的网络问题

WSL2和Docker Desktop for windows的网络问题
EN

Stack Overflow用户
提问于 2020-12-23 23:37:03
回答 2查看 5.5K关注 0票数 3

TL;DR

在使用WSL2和Docker Desktop for Windows时,我似乎经常遇到网络问题。

通常,我可以通过找到WSL2实例的IP地址,并从容器内部引用该IP地址,从Docker容器内部访问从Docker实例(用WSL2语言称为“分发”)启动的端口。但今天,由于某些原因,这并不起作用。当我遇到WSL2+DockerDesktop问题时,我已经习惯了重启,但现在我想最终了解到底是哪里出了问题。

我非常确定当我重启的时候,一切都会好起来的。

你有关于如何调试这个东西的想法吗?

我还有一个企业的Forticlient VPN,这可能会把事情搞砸。但在这件事上我别无选择。-(

详细信息

我通过以下命令找到IP:

代码语言:javascript
运行
复制
WSL2:» ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
bond0            DOWN           
dummy0           DOWN           
sit0@NONE        DOWN           
eth0             UP             172.26.183.209/20 fe80::215:5dff:fef9:cc5c/64 

因此,WSL2机器的IP地址是172.26.183.209

现在我有了一个web服务器,监听进程my WSL2中的8080端口,可以使用http://172.26.183.209:8080访问它,正如来自WSL2的nmapcurl所确认的那样:

代码语言:javascript
运行
复制
WSL2@~» nmap -Pn -p 8080 172.26.183.209            
Starting Nmap 7.80 ( https://nmap.org ) at 2020-12-23 16:15 CET
Nmap scan report for ubuntu-wsl2 (172.26.183.209)
Host is up (0.000045s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

WSL2@~» curl http://172.26.183.209:8080 > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

但是,从容器内部:

代码语言:javascript
运行
复制
[root@0467b7ef17e7 /]# nmap -Pn -p 8080 172.26.183.209
Starting Nmap 7.70 ( https://nmap.org ) at 2020-12-23 15:12 UTC
Nmap done: 1 IP address (0 hosts up) scanned in 0.43 seconds
[root@0467b7ef17e7 /]# curl http://172.26.183.209:8080
curl: (7) Failed to connect to 172.26.183.209 port 8080: No route to host

它还可以在docker-desktop WSL2容器内部工作:

代码语言:javascript
运行
复制
WSL2@~» wsl.exe -d docker-desktop wget http://172.26.183.209:8080
Connecting to 172.26.183.209:8080 (172.26.183.209:8080)     
Connecting to host.docker.internal:8180 (192.168.0.202:8180)
index.html           100% |********************************|  7308  0:00:00 ETA

只是不是从容器里面。直到我重启。AAAARRRRRHHHHHHHHHHHHHHHH :-)

一个提示--对我来说没有意义的东西--是来自容器内部的内容:

代码语言:javascript
运行
复制
[root@0467b7ef17e7 /]# ping 172.26.183.209
PING 172.26.183.209 (172.26.183.209) 56(84) bytes of data.
From 172.26.0.2 icmp_seq=1 Destination Host Unreachable
From 172.26.0.2 icmp_seq=2 Destination Host Unreachable
From 172.26.0.2 icmp_seq=3 Destination Host Unreachable
^C
--- 172.26.183.209 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 202ms
pipe 4

什么是172.26.0.2?嗯..。

网络设置:

(我已经修改了Ethernet 3的IP地址,因为它在公司网络中)

代码语言:javascript
运行
复制
WSL2@~» ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
bond0            DOWN           
dummy0           DOWN           
sit0@NONE        DOWN           
eth0             UP             172.26.183.209/20 fe80::215:5dff:fef9:cc5c/64 
WSL2@~» ipconfig.exe

Windows IP Configuration


Ethernet adapter Ethernet 3:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::405f:b7d2:70b4:b405%19
   IPv4 Address. . . . . . . . . . . : 10.14.11.17
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 10.14.11.18

Ethernet adapter Ethernet 4:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::7cd1:5641:ac65:7004%15
   IPv4 Address. . . . . . . . . . . : 192.168.0.202
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

Ethernet adapter VirtualBox Host-Only Network:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::f06d:9785:cff5:2ad0%6
   IPv4 Address. . . . . . . . . . . : 192.168.225.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Wireless LAN adapter Wi-Fi:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Local Area Connection* 7:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Local Area Connection* 10:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Ethernet 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::c507:3c2b:62d:7270%39
   IPv4 Address. . . . . . . . . . . : 172.26.176.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

WSL2@~» route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.26.176.1    0.0.0.0         UG    0      0        0 eth0
172.26.176.0    0.0.0.0         255.255.240.0   U     0      0        0 eth0
EN

Stack Overflow用户

发布于 2022-01-26 18:16:21

我仍在寻找解决方案,但我找到了一个更快的变通方法:只需重新启动WSL2。在cmd窗口中,输入:

代码语言:javascript
运行
复制
wsl --shutdown

Docker会抱怨意外停止,然后当你重新启动它时会给你另一条消息,但这是无害的。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65426891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档