【Linux】WSL:Win运行Linux
WSL2(Windows Subsystem for Linux 2) 是 Microsoft 开发的技术,可在 Windows 系统上运行完整的 Linux 发行版环境。以下是详细的配置教程。
安装与配置
启用 WSL 功能
-
打开“开始”菜单,搜索 PowerShell,以 管理员身份运行。
-
在 PowerShell 中输入以下命令并回车:
wsl --install
该命令会自动启用 WSL 并安装 Ubuntu 作为默认 Linux 发行版。
-
安装完成后,系统会提示重启计算机。请重启。
配置 Ubuntu
-
首次启动:启动 WSL 时系统会提示您创建一个默认的 UNIX 用户账户。
-
创建账户:
- 输入一个新的用户名(可自定义)。
- 为该用户设置密码。
-
更新系统: 在 Linux 终端中运行以下命令更新软件包:
sudo apt update && sudo apt upgrade -y
下面是简短的 Windows Subsystem for Linux (WSL) 发行版管理操作指南:
启动 WSL 发行版
-
启动命令行:打开 PowerShell 或 命令提示符 (cmd)。
-
启动 WSL:输入以下命令:
wsl
-
启动特定发行版:输入:
wsl -d <发行版名称>
例如,要启动 Ubuntu:
wsl -d Ubuntu
下载 WSL 发行版
- 打开 Microsoft Store:在搜索栏中输入 “Microsoft Store” 并打开。
- 搜索 WSL 发行版:在商店中搜索你想要的发行版(如 Ubuntu、Debian 等)。
- 安装:点击“获取”或“安装”按钮,等待下载和安装完成。
移除 WSL 发行版
-
打开 PowerShell:以管理员身份运行 PowerShell。
-
列出已安装的发行版:
wsl --list --verbose
-
卸载指定发行版:
wsl --unregister <发行版名称>
例如,卸载 Ubuntu:
wsl --unregister Ubuntu
其他常用命令
-
设置默认发行版:
wsl --setdefault <发行版名称>
-
更新 WSL:
wsl --update
-
检查 WSL 版本:
wsl --list --verbose
开机自启并后台运行
配置任务计划程序
-
打开任务计划程序:
- 按
Win + S
,搜索 任务计划程序 并打开。
- 按
-
创建任务:
- 点击右侧 创建任务。
- 在 常规 选项卡中:
- 名称:
WSL_Background_Start
(可自定义)。 - 勾选 使用最高权限运行。
- 配置为:选择当前 Windows 版本。
- 名称:
-
设置触发器:
- 转到 触发器 选项卡,点击 新建。
- 在 开始任务 下拉框中选择 系统启动时。
- 点击 确定。
-
设置操作:
-
转到 操作 选项卡,点击 新建。
-
在 启动程序 中输入:
wsl.exe
-
(可选)添加参数,例如运行指定的命令:
-d Ubuntu --exec /bin/bash
-
-
保存任务:
- 点击 确定 完成任务创建。
验证任务启动
-
重启计算机。
-
登录后运行以下命令确认 WSL 是否已启动:
wsl --list --running
与主机共享 IP
默认情况下,Windows 防火墙会允许来自本地计算机(即从 Windows 主机到 WSL2,或者反向通信)的流量。这意味着,即使没有进行端口转发或特别配置,主机与 WSL2 之间的内网通信也是允许的。在启用 networkingMode=mirrored
的情况下,WSL2 会和主机共享相同的网络配置。这样,WSL2 和主机之间的网络通信变得更为直接,因为它们使用相同的物理网络适配器。
- 在这种模式下,WSL2 会通过主机的物理网络接口与其他设备通信,而无需单独的虚拟交换机或端口转发。
- 主机和 WSL2 共享 IP 地址段,可以通过同一 IP 地址进行直接通信。
编辑主机上的 .wslconfig
配置文件
-
打开文件资源管理器:
- 按
Win + E
打开文件资源管理器。
- 按
-
进入 WSL 配置目录:
-
导航到主机的 WSL 配置文件目录:
C:\Users\<YourUserName>\.wslconfig
-
如果
.wslconfig
文件不存在,可以手动创建该文件。
-
-
编辑
.wslconfig
文件:- 使用文本编辑器(如 Notepad)打开
.wslconfig
文件。 - 如果该文件不存在,您可以新建一个。
- 使用文本编辑器(如 Notepad)打开
-
添加或修改配置: 在
.wslconfig
文件中,添加以下配置来启用镜像模式的网络设置:[wsl2] networkingMode=mirrored
networkingMode=mirrored
:这个设置将会使 WSL2 的网络配置与主机的网络配置进行镜像,即 WSL2 会使用主机的网络接口配置。
-
保存并关闭文件。
重启 WSL2
-
关闭所有正在运行的 WSL2 实例:
-
打开 PowerShell(以管理员身份)并运行以下命令:
wsl --shutdown
-
-
重新启动 WSL2:
-
在 WSL2 中重新启动,或者通过 Windows Terminal 启动:
wsl
-
验证网络配置
-
打开 WSL2 终端,执行以下命令来验证网络设置:
ip addr
-
检查输出,确认 WSL2 使用了主机的网络接口,并且
eth0
或其他网络接口的配置已镜像主机的 IP 地址。
运行 WSL2 中的服务
-
启动一个 HTTP 服务(以
8080
端口为例):python3 -m http.server 8080 --bind 0.0.0.0
这样,WSL2 中的服务会在
8080
端口上监听,并且可以接受来自任何设备的连接。
配置 Windows 防火墙
为了允许局域网中的其他设备访问 WSL2 中的服务,您需要确保 Windows 防火墙允许外部设备访问相关端口。例如,允许访问 8080
端口:
-
打开 PowerShell 以管理员身份运行:
New-NetFirewallRule -DisplayName "Allow WSL2 HTTP 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow
这会允许来自局域网的设备访问 Windows 主机的
8080
端口,进而访问 WSL2 中的服务。
查找主机的 IP 地址
由于 WSL2 和主机共享相同的网络接口,您可以通过主机的 IP 地址访问 WSL2 中的服务。要获取 Windows 主机的 IP 地址,可以执行以下步骤:
-
打开 PowerShell 或命令提示符,运行以下命令:
ipconfig
-
查找适配器列表中的 IPv4 地址,这是您的主机 IP 地址。通常,它位于 “以太网适配器” 或 “无线局域网适配器” 部分。
从局域网设备访问服务
在局域网中的其他设备上,使用 Windows 主机的 IP 地址和暴露的端口(例如 8080
)来访问 WSL2 中的服务。例如:
http://<Windows主机的IP>:8080
这将使您可以通过局域网中的其他设备访问 WSL2 中运行的 Web 服务。
C++ 开发环境部署
-
更新系统包:
sudo apt update && sudo apt upgrade -y
-
安装
gcc
、g++
和make
:sudo apt install -y build-essential
-
安装调试工具
gdb
和代码格式化工具clang-format
(可选):sudo apt install -y gdb clang-format
Python 开发环境部署
-
下载 Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
-
安装 Miniconda:
bash ~/miniconda.sh
- 选择默认路径(通常是
~/miniconda3
)。
- 选择默认路径(通常是
-
激活 Miniconda 环境:
source ~/miniconda3/bin/activate
-
初始化 Shell 支持:
conda init
-
创建和管理虚拟环境:
conda create -n dev_env python=3.9 -y conda activate dev_env
-
安装常用库:
conda install numpy pandas matplotlib
Docker 开发环境部署
-
更新包并安装依赖:
sudo apt-get update sudo apt-get install ca-certificates curl
-
添加 Docker 的 GPG 密钥和官方源:
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
-
安装 Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
配置非 root 用户使用 Docker:
sudo groupadd docker sudo usermod -aG docker $USER newgrp docker
-
验证 Docker 安装:
docker run hello-world
NodeJS 开发环境部署
-
安装 NVM ,并重新加载 shell 配置文件
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc
-
验证 NVM 安装
command -v nvm
-
安装 Node.js LTS 版本
nvm install --lts
-
使用安装的 Node.js 版本
node -v npm -v
-
设置默认版本
nvm use --lts nvm alias default lts/*
原文地址:https://blog.csdn.net/2303_80346267/article/details/144327049
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!