wsl2 network unreachable问题

2022-05-13 18:57:22 浏览数 (1)

先把/etc/wsl.conf改掉,内容为

代码语言:javascript复制
cat /etc/wsl.conf
# Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit.
[network]
generateResolvConf = false

然后就可以改 /etc/resolv.conf里面的nameserver了

然后切换为wsl1

wsl --set-version Ubuntu-22.04 1

wsl1先可以上网,apt安装工具

然后安装net-tools

然后改回

wsl --setversion Ubuntu-22.04 2

然后用ifconfig

ifconfig eth0 inet 172.17.176.210 netmask 255.255.255.0 broadcast 172.17.176.255

然后增加网关

route add default gw 172.17.176.1

以上是wsl虚拟网卡的地址

然后就可以上网了,但是不能保存,下次启动配置就消失了。

WSL 的Linux每次重启的时候,很多服务都无法自启动通过systemctl 命令提示

代码语言:javascript复制
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install .
Executing: /lib/systemd/systemd-sysv-install enable docker

后来网上一顿搜索之后,都是让wsl 启动的时候执行脚本

然后结合之前的静态ip 的方式总算实现了自启动

代码语言:javascript复制
# 转到 /etc/init.d 文件夹下
cd /etc/init.d  # 存放服务的地方
# 创建脚本文件
sudo vi startup.h
 
# 文件内容  
# 配置一个静态ip
ip addr add 192.168.50.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1
./ssh start
./docker start
 
 # 更改权限
sudo chmod  chmod u x  startup.h

Window cmd 命令

代码语言:javascript复制
1 :: 管理员运行
2 @echo off
3 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
4 cd /d "%~dp0"
5 
6 :: 配置 wsl 的静态ip
7 wsl -d Ubuntu-20.04 -u root /etc/init.d/startup.sh
代码语言:javascript复制
8 netsh interface ip add address "vEthernet (WSL)" 192.168.50.88 255.255.255.0

0 人点赞