持续更新~
一、安装时
1. 无法安装wsl
可能需要开启下面的东西
这里的两个选项可以先勾上,如果测试不行我们再打开
Hyper-V
, 我这个电脑安装的时候提示需要开启Hypter-V
然后我打开了就可以实现安装了,就没有勾选下面这两个服务测试。可能需要开启
hyper-v
2. 没有centos
在微软应用商店是没有centos的wsl镜像的,这时候我们可以去 下载地址 这里下载centos的镜像
当然新版本的镜像哪些我们可能需要切换到wsl2
设置wsl版本
1 | wsl --set-default-version 2 # 使你安装的任何新发行版均初始化为 WSL 2 发行版 |
查看wsl信息
1 | wsl -l -v |
下载完毕后,放在你要放的地方,然后解压出来,用管理员权限打开 CentOS*.exe
这个安装上系统就好了,安装完成了后会退出一下,然后在安装目录或者cmd输入wsl
进入linux系统。当然更加方便的就是使用WindowsTerminal
一键直达~
二、运行时
1. 无网络
我们刚进入linux系统的时候,可以更新一下yum 或者 apt 源
1 | # 以我安装的centos为例 |
这里有个问题,网上找到的教程里面都是去更换 /etc/yum.repos.d/
里面的信息,然后 yum makecache
之类的,但是你会发现部分版本并没有那个文件(可能不在,如果在按照网络上的操作即可)
手动修改三个文件: 注意我这里是Centos8 如果其他版本自己网上查询
国内源我这里提供两个任选其一即可
1 | # 清华云 |
**注释掉 ** mirrorlist=
替换 baseurl=
- CentOS-Linux-AppStream.repo
- CentOS-Linux-BaseOS.repo
- CentOS-Linux-Extras.repo
下面是示例,三个文件是一样的,所以我展示一个
都弄完了试试下面,如果卡住不行的话,那么就得操作其它方法了
1 | yum clean all # 清除系统所有的yum缓存 |
如果上面设置了还不起作用,那么就用下面这个万能的方法:
2. 设置代理
首先你的windows 得有代理:
我这个主机开启的是 sock5
的代理,开启的局域网端口是19876
操作这个之前 我们得去windows的防火墙位置设置 入站规则: 控制面板 –> 系统和安全 –> Windows Defender 防火墙 –> 高级设置 –> 入站规则 –> (右边)新建规则 –> (选择)端口 –> 特定本地端口: (输入) 你要开启的端口,可以多开几个后面http服务啥的用 我开了如下80,6666,8888,8080,8000,9999,19876
编辑 ~/.bashrc
因为我没有安装zsh
所以就改这个文件 或者 /etc/profile
1 | # 自动获取ip 因为wsl每次启动都会分配不同的ip 所以要自动获取 |
写完了后记得操作保存一下
1 | source ~/.bashrc |
测试
1 | # 我们输入以下命令开启代理 |
如果都没有问题的话,那么在安装源啥的国内网络不行的情况下,我们可以直接开启代理下载更新。
3. 端口访问
我们有些时候需要部署一些服务在linux里面,然后外面想测试,自己电脑是肯定可以访问到的127.0.0.1
或者linux的内网ip
都可以,但是我要给局域网里面的其他人访问,那么就需要操作一下了
首先保证我们的服务的端口是在windows防火墙那里配置通过了的,就是上面设置代理那里,因为我默认开启了一堆端口,所以我后面的服务可以通过这些端口访问,当然如果你要部署一个nginx在linux里面转发,那就只需要开启一个对外端口即可
- 开启windows防火墙端口
- 在windows用管理员权限打开终端
- 创建和删除映射
- 创建映射:
netsh interface portproxy add v4tov4 listenport=win监听端口 listenaddress=0.0.0.0 connectport=wsl的端口 connectaddress=wsl内网ip
- 删除映射:
netsh interface portproxy delete v4tov4 listenport=映射的端口 listenaddress=0.0.0.0
- 创建映射:
- 查看端口映射配置
netsh interface portproxy show all
这样子内网就可以愉快的访问你的服务器对应端口了。
注意
因为每次重启电脑,linux的内网ip会改变,所以上面的操作需要随时删除和创建
注意防火墙端口得开
4. 无systemctl
网上的解决办法基本都是安装下面的东西
1 | dnf install -y mock perl openssh-server # 安装依赖 |
但是这个只是一个服务来的,上面执行了后,重启又不行了,所以我们可以开启自启动
1 | vim ~/.bashrc # 添加自启动 |
测试 启动docker ok!