WSL-系统的使用备注
Windows 和 WSL2 文件夹相互访问路径:
手动安装(WSL2)
首先搜索【启用或关闭Winsows 功能】
然后勾选【适用于linux的Windows子系统】和【虚拟平台】
命令行安装WSL,以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
更新到 WSL 2,安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
WSL2升级官方帮助链接
- Ubuntu 最新版本
- Debian GNU/Linux 最新版本
其中 Ubuntu2204-221101.AppxBundle 是 Linux 发行版的文件名。
常用命令
以管理员权限在命令提示符中运行
net stop LxssManager 停止net start LxssManager 启动
wsl --shutdown 快速重启所有 WSL Linux发行版
wsl --list --running 检查正在运行的wsl Linux发行版
wsl --list 查看当前的默认wsl
wsl -l -v 查看当前已安装的wsl版本以及状态
wslconfig /u Debian 删除名字为Debian的Linux分发版
wslconfig /u Ubuntu 删除名字为Ubuntu的Linux分发版
wsl -d Debian 启动指定版本为Debian的Linux子系统
wsl --set-version <distribution name> <versionNumber>
其中:为你的分发版的实际名称如Ubuntu; 为“1”或“2”,你可以随时更改回 WSL 1,方法是运行与上面相同的命令。示例命令:
复制以下词语后面的 IP 地址:nameserver。
使用复制的 IP 地址连接到任何 Windows 服务器。
安装好新版wsl后,在子系统终端中通过以下命令来配置wsl2启用 systemd:
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf配置后需要通过wsl --shutdown命令关闭wsl,来进行wsl的完整重启。
如何判断systemd是否启用成功
判断wsl是否已启用systemd,可通过以下命令查看:
ps --no-headers -o comm 1如果命令返回的是init说明systemd未启用,如果是systemd那么你的systemd已启用成功了。
查看已启用的systemd service
通过systemctl的list-units、list-unit-files命令,都可以很好的查看目前的systemd状态,命令如下:
systemctl list-units --type=service
systemctl list-unit-files --type=service --state=enabled修改wsl2安装目录
查看WSL分发版本wsl -l --all -v
回显:
导出分发版为tar文件到d盘:
wsl --export Ubuntu-22.04 d:\wsl-Ubuntu-22.04.tar
注销当前分发版:
wsl --unregister Ubuntu-22.04
重新导入wsl-Ubuntu.tar分发版并安装在d:\WSL\Ubuntu目录:
wsl --import Ubuntu-22.04 d:\WSL\Ubuntu d:\wsl-Ubuntu-22.04.tar --version 2
del d:\wsl-Ubuntu-22.04.tar
系统根文件管理:
若要在 Windows 文件资源管理器中查看所有可用的 Linux 发行版及其根文件系统,请在地址栏中输入:\\wsl$
更新软件源为清华源
源帮助 镜像使用帮助
以Ubuntu 22.04 lts 示例:
在 \\wsl$\Ubuntu\etc\apt 或 \\wsl.localhost\Ubuntu\etc\apt 目录中,
编辑sources.list文件,更新为以下内容
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
如果遇到无法拉取 https 源的情况,请先使用 http 源并安装:
sudo apt install apt-transport-https ca-certificates更新系统sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiversesudo apt install apt-transport-https ca-certificates
WSL2及系统自启动:
@echo off
timeout /T 15 >nul
for /f %%i in ('wsl -- hostname -I ') do (set wslip=%%i)
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=88
netsh advfirewall firewall delete rule name="tcp-88" dir=in protocol=tcp localport=88
netsh interface portproxy add v4tov4 listenport=88 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=88
netsh interface portproxy add v6tov4 listenport=88 listenaddress=:: connectaddress=%wslip% connectport=88
netsh advfirewall firewall add rule name="tcp-88" dir=in protocol=tcp localport=88 action=allow
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=444
netsh advfirewall firewall delete rule name="tcp-444" dir=in protocol=tcp localport=444
netsh interface portproxy add v4tov4 listenport=444 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=444
netsh interface portproxy add v6tov4 listenport=444 listenaddress=:: connectaddress=%wslip% connectport=444
netsh advfirewall firewall add rule name="tcp-444" dir=in protocol=tcp localport=444 action=allow
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=555
netsh advfirewall firewall delete rule name="tcp-555" dir=in protocol=tcp localport=555
netsh interface portproxy add v4tov4 listenport=555 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=555
netsh interface portproxy add v6tov4 listenport=555 listenaddress=:: connectaddress=%wslip% connectport=555
netsh advfirewall firewall add rule name="tcp-555" dir=in protocol=tcp localport=555 action=allow
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=8080
netsh advfirewall firewall delete rule name="tcp-8080" dir=in protocol=tcp localport=8080
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=555
netsh interface portproxy add v6tov4 listenport=8080 listenaddress=:: connectaddress=%wslip% connectport=555
netsh advfirewall firewall add rule name="tcp-8080" dir=in protocol=tcp localport=8080 action=allow
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=1113
netsh advfirewall firewall delete rule name="tcp-1113" dir=in protocol=tcp localport=1113
netsh interface portproxy add v4tov4 listenport=1113 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=22
netsh interface portproxy add v6tov4 listenport=1113 listenaddress=:: connectaddress=%wslip% connectport=22
netsh advfirewall firewall add rule name="tcp-1113" dir=in protocol=tcp localport=1113 action=allow
exittimeout /T 15 >nul :: 延时15秒
for /f %%i in ('wsl -- hostname -I ') do (set wslip=%%i) :: 获取虚拟机IP
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=88 :: 删除端口转发
netsh advfirewall firewall delete rule name="tcp-88" dir=in protocol=tcp localport=88 :: 删除防火墙规则
netsh interface portproxy add v4tov4 listenport=88 listenaddress=0.0.0.0 connectaddress=%wslip% connectport=88 :: 添加v4tov4端口转发
netsh interface portproxy add v6tov4 listenport=88 listenaddress=:: connectaddress=%wslip% connectport=88 :: 添加v6tov4端口转发
netsh advfirewall firewall add rule name="tcp-88" dir=in protocol=tcp localport=88 action=allow :: 添加防火墙规则Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d Debian -u root", vbhide
ws.run "wsl -d Debian -u root ip addr add 172.21.224.2/24 broadcast 255.255.240.0 dev eth0 label eth0:1", vbhide
Windows10中的WSL2默认是没有systemd服务的,需要自行去安装
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
if [ -z "$SYSTEMD_PID" ]; then
sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fi
if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi%sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]* %sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
Sysvinit命令 Systemd命令 作用/用途
service apache2 start systemctl start apache2.service 启动apache2服务
service apache2 stop systemctl stop apache2.service 关闭apache2服务
service apache2 restart systemctl restart apache2.service 重启apache2服务不管当前是启动还是关闭状态
service apache2 reload systemctl reload apache2.service 重新载apache2配置信息而不中断服务
service apache2 status systemctl status apache2.servic 查看apache2服务的运行状态
















2 其实在控制台面板上主要下面4个步骤。
3 打开 CIDR块 -> 点击 【添加 IPv6 CIDR块】
添加成功后如下图:
4 打开子网,编辑子网信息
勾选 启用IPV6 CIDR块,输入框随便输入一个值,例如:ee,点击保存!如下图:
这里如果出现下面的错误:NotAuthorizedOrNotFound,请看下面解决方案,成功后再继续这里的步骤。
5 IPv6 CIDR块添加成功!如下图!
6 路由表 -> 路由表详情 -> 添加路由规则,如图设置即可! 目的地 CIDR 块:::/0 (注意2个冒号) 目标类型:Internet网关
7 安全列表 -> 查看详情 -> 添加出站规则 和 添加 入站规则 目的地类型:CIDR 目的地 CIDR:::/0 (注意2个冒号) IP协议:所有协议
8 查看服务器实例详情 -> 附加的 VNIC -> 点击VNIC详情 右侧可见多了一个IPv6地址 的选项!点击 【分配 IPv6 地址】
9 可以指定一个你想要的IPv6格式,不指定会随机分配一个。
10 至此面板上的操作基本上完成了,系统会自动获取到IPV6.
如果重启后IPv6获取不到?添加开机启动 那么执行下面的脚本。把获取IPv6的命令写到开机启动!
下面本文就详细讲解一下如何在新版中进行更改密码、变更邮箱、添加用户、变更租户名等操作:
输入旧密码,然后再输入新密码,点击【保存】
再次登录时,密码就变更为你设置的新密码了。
首先输入登录密码进行验证,完成后输入新的恢复电子邮件,并选择【更改恢复电子邮件】:
这时候你新邮箱将会收到一封带链接的邮件,点击后输入新邮箱跟密码,即可完成更改。
3、变更通知邮箱 还是在【我的信息概要】界面里,选择【更多操作】,在弹出的下拉框内选择【编辑电子邮件】
在新弹出的页面中,选择【更改】,然后输入密码验证完成后,输入新的邮箱,然后点击【更改主电子邮箱】。(如果这里的邮箱更前面通知邮箱是一致的,则立即生效。如果是不一样的,则会出现更上面一样的邮件验证,完成验证即可。)
回到【我的信息概要】,你会发现用户名仍然是原来的邮箱,但是电子邮件已经变为新的了。
因为甲骨文注册时默认使用当时的主电子邮件作为登录方式,所以变更完以上电子邮件后,登录我们仍要输入原电子邮件名称才能登陆。但是这里原来邮箱只是作为登录时候的用户名形式,不再有任何邮箱实质意义。这一点说实话,有点“不完美”。不知道甲骨文后面是否还会调整。 对于一些强强迫症用户,总希望在登录输入用户名时,输入的是自己的邮箱或是喜欢的其他形式。那么我们可以通过添加用户来解决。
选择【创建用户】,填写相关信息,完成后点击【创建】。这里有3点需要注意:
登录界面用户名就是你创建用户的电子邮件,或是当时输入的用户名,输入刚才创建的密码,即可成功登录。
进入到【租户详细信息】界面,选择【重命名租户】,然后输入新的租户名即可。
这里有一点要注意,当你更改完租户名后可能不是即时生效。刷新租户详细信息界面,如果生效了,该处就会显示新的租户名。此时,在下次登录时,你输入新的租户名即可。有些人更改完马上退出重新登陆,输入新租户名会报错,是因为租户命名还未生效导致的。