0


Windows 无法访问wsl ubuntu 中 docker 的端口

摘 要

随着WSL的更新,wsl的增加了许多特性,但也遇到了一些问题:

  • 代理方式的改变
  • 端口访问问题

由于折腾了很久,所以做一下记录。

代理问题解决

解决方法: 去掉wsl中使用脚本配置的代理

原因:

关于wsl使用代理, 最常见的方法是使用如下脚本

hostip=$(cat /etc/resolv.conf |grep-oP'(?<=nameserver\ ).*')exporthttps_proxy="http://${hostip}:13579"exporthttp_proxy="http://${hostip}:13579"exportall_proxy="socks5://${hostip}:13579"

但是如果在windows目录

C:/User/<用户名>/.wslconfig

中的配置为

[wsl2]
networkingMode=mirrored # 开启镜像网络
dnsTunneling=true # 开启 DNS Tunneling
firewall=true # 开启 Windows 防火墙
autoProxy=true # 开启自动同步代理

[experimental]
hostAddressLoopback=true

很有可能出现的情况是无法连接到VPN,原因是

/etc/resovf.conf

中的

nameserver

127.0.0.42

, 这是由于

networkingMode=mirrored

后有许多改变,

总之结果就是无法访问vpn了,如果删除

~/.bashrc

中关于

proxy

的配置,访问外网

wget www.google.com

是可以正常访问的,这是因为新版

wsl

有了

autoProxy=true

功能,能够自动寻找主机的代理。但是不能

ping

通。[Todo 解决Ping问题, 暂时不解决因为代理可以使用,可能原因是ICMP 协议不走代理]

在这里插入图片描述

当然也有可能不能访问,可能是防火墙的问题。解决方法如下,

端口访问问题

问题状况是,在wsl中用docker启动了某个应用, 在windows上无法访问,并且确保,windows的防火墙放行了,同时 wsl的防火墙也关闭了,但是无法访问,最终比较关键的是参考WSL 2.0中使用networkingMode=mirrored,解决docker转发和外部设备访问问题

解决方法:

  • 确保windows 放行了wsl的出站入站规则,也可以使用命令实现,其中的vEthernet (WSL)以具体情况而定,比如我的是vEthernet (Default Switch)``````New-NetFirewallRule -DisplayName"WSL"-Direction Inbound -InterfaceAlias"vEthernet (WSL)"-Action Allow
  • 确保ubuntu关闭了防火墙sudo ufw disable
  • 确保 Hyper-V 防火墙被关闭, 注意:‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ 复制到Power shell''会消失,需要手动添加,解决方法来源Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow
  • 关闭docker的防火墙/etc/docker/daemon.json``````{"iptables":false}
标签: windows ubuntu docker

本文转载自: https://blog.csdn.net/u013671216/article/details/136361737
版权归原作者 都学点 所有, 如有侵权,请联系我们删除。

“Windows 无法访问wsl ubuntu 中 docker 的端口”的评论:

还没有评论