前言
简单的说一下WSL的好处吧:
Linux 兼容性:WSL 允许在 Windows 操作系统上运行 Linux 发行版,提供了与原生 Linux 相似的命令行工具和环境。这对于开发人员、系统管理员和其他需要在 Windows 平台上访问 Linux 工具和软件的用户非常有用。
轻量级虚拟化:WSL 使用轻量级虚拟化技术,而不是传统的虚拟机,这意味着它几乎不会对系统性能产生明显影响。这使得在 Windows 上运行 Linux 不会导致系统变慢或需要大量系统资源。
命令行工具:WSL 提供了大量的 Linux 命令行工具和实用程序,使开发人员能够在 Windows 上使用它们。这包括 bash shell、grep、sed、awk 等工具,以及编程语言的解释器和编译器。
与 Windows 集成:WSL 与 Windows 集成得非常好,您可以轻松访问 Windows 文件系统中的文件,通过命令行在 Windows 和 Linux 之间传输文件,实现数据共享和互操作性。
开发和测试环境:开发人员可以在自己喜欢的 Linux 发行版中创建开发和测试环境,而无需离开 Windows 桌面。这对于跨平台应用程序的开发和测试非常有帮助。
安全性:WSL 提供了一个隔离的环境,可以在其中运行 Linux 应用程序,而不会影响 Windows 的安全性。这有助于隔离潜在的威胁。
最最最重要的是,你可以运行任何你想玩的项目,建站也是没有问题的。
一、开启Windows功能
使用快捷键:
按下 Win + R 键组合,这将打开运行对话框。
在运行对话框中,输入 appwiz.cpl 并按下回车键。这将打开“程序和功能”窗口。
在左侧面板中,单击“启用或关闭Windows功能”,这将打开窗口。
如图所示,勾选【Hyper-V】和【适用于Linux的Windows子系统】后重启电脑。
二、更新和设置WSL版本
在Windows菜单图标右键鼠标,打开【终端管理员】
输入以下代码设置WSL 2作为默认版本
运行以下代码更新WSL内核版本,不然会报错
wsl.exe --update
运行以下代码设置WSL版本
wsl --set-default-version 2
三、安装Linux系统
安装 Linux 发行版:
在 PowerShell 中,您可以使用以下命令来安装所选的 Linux 发行版。因为我测试Debian会有很多依赖问题,所以以 Ubuntu 为例:
wsl --install -d Ubuntu
如果你要安装其他系统,请将 Ubuntu 替换为您要安装的 Linux 发行版的名称。
安装完成后会自动打开Linux终端窗口,
因为Ubuntu默认不允许设置root
和admin
用户名,所以要设置一个其他你喜欢的用户名,然后回车确认。然后会要求你设置密码,输入密码的时候不会显示。设置完成后回车稍等一会就会自动登录到Linux系统。如同所示:
如果要使用root
账户,请在登陆状态下输入sudo -i
后输入你刚才设置的密码进行账户切换,然后apt update
进行更新源后就可以安装你需要的依赖啦。
四、开启SSH并允许root登录
1、安装SSH服务器
在 Linux 子系统中,打开终端,运行以下命令来安装 OpenSSH 服务器:
sudo apt update
sudo apt install openssh-server
2、修改配置端口为22,允许密码和root登录。
运行以下命令进行修改配置文件内容
sudo nano /etc/ssh/sshd_config
找到下面的内容并去掉注释在前面的#号,其中把PermitRootLogin prohibit-password
更改为PermitRootLogin yes
这是允许用root登录的。
Port 22
PermitRootLogin prohibit-password
PasswordAuthentication yes
去掉前面的#号后Ctrl+X保存并退出。
3、重启SSH服务
运行service ssh restart
或 sudo service ssh --full-restart
命令进行重启服务。
4、终端测试连接
输入指令,格式为:ssh 用户名@域名/IP
ssh [email protected]
ssh 127.0.0.1
5、确保SSH服务器会在系统启动时自动启动:
运行以下命令来设置SSH服务器开机自启动:
sudo systemctl enable ssh
6、配置永久解决方案
通过上面的方法,我们可以通过xshell登录自己电脑的Linux。但是断开之后重新开机,我们又需要重新配置SSH。因此,我们需要配置以下命令下,一劳永逸。sudo service ssh --full-restart
## 将该命令保存为service.sh
,存在home目录下
# >>> service ssh restart >>>
# for Xshell connection
sudo service ssh --full-restart
# <<< service ssh restart <<<
配置好之后,下次开机,只需要在Linux子系统的默认终端运行sh service.sh命令后,关掉终端改用xshell登录即可。
7、查看SSH监听端口
sudo ss -tuln | grep 22
8、SSH服务器状态
sudo service ssh status
五、设置默认使用root登录系统(可选)
登录到 root 用户。在 WSL 中,您可以使用 sudo 命令来获取 root 权限。运行以下命令并输入当前用户的密码以获得 root 权限:
sudo -i
输入 root 用户的密码,您将切换到 root 用户。
要永久更改默认用户为 root 用户,编辑 WSL 配置文件。使用你喜欢的文本编辑器(例如,nano 或 vim)打开 /etc/wsl.conf
文件(如果文件不存在,请创建它):
sudo nano /etc/wsl.conf
打开 wsl.conf
文件后在原内容下面添加以下内容:
[user]
default=root
这会将默认用户设置为 root 用户。
保存并关闭文件。关闭当前终端窗口并重新打开一个终端窗口。
运行以下命令重新启动 WSL 以应用更改:
wsl --shutdown
六、删除刚开始创建的用户(可选)
使用 userdel 命令删除要删除的用户帐户。假设要删除的用户帐户名为 username,请运行以下命令:
sudo userdel username #删除用户账户
sudo rm -r /home/username #删除用户文件夹
七、设置外部访问
为了能够从外部连接到你的WSL Linux子系统,你需要确保系统具有公共IP地址,设置镜像网络或者设置端口转发以将流量路由到WSL子系统的局域网IP地址。请检查你的网络配置,确保WSL子系统能够访问公共网络,并且有一个可供外部访问的IP地址。
方法一:设置端口转发
增加转发的命令:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=127.0.0.1 connectport=22
删除转发的命令:
netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0
使用以下命令列出当前的端口转发规则:
netsh interface portproxy show all
测试连接的命令:
ssh username@ip -p 22
方法二:设置镜像网络(推荐)
打开我的电脑,复制%UserProfile%
到地址栏粘贴回车,在C:\Users\<UserName>\.wslconfig
位置新建.wslconfig
文件,用记事本打开并复制以下配置粘贴进去保存后并关闭。
[wsl2]
networkingMode=mirrored
hostAddressLoopback=true
八、卸载Linux系统
wsl --unregister Ubuntu
说到最后
如果不会使用或者失效等问题,可在评论区留言,或者进入博客Telegram群组反馈 点击进群