先把/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