windows for wsl的使用

WSL的微软文档:安装 WSL | Microsoft Learn

WSL 版本 2.1.5 或更高版本
Windows 10 64 位:最低要求为家庭版或专业版 22H2(内部版本 19045)或更高版本,或企业版或教育版 22H2(内部版本 19045)或更高版本。
Windows 11 比win10高,不用考虑版本
在控制面板-程序和功能  中:启用Windows功能,“适用于Linux的Windows子系统”

如果需要安装包的形式安装
1、WSL安装包地址:https://github.com/microsoft/WSL/releases
2、安装前卸载其它有关wsl 的,安装完后,查看wsl 版本:wsl --version
例如显示内容为:
WSL 版本: 2.5.10.0
内核版本: 6.6.87.2-1
WSLg 版本: 1.0.66
MSRDC 版本: 1.2.6074
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows: 10.0.19045.5737

  

在管理员模式下打开 PowerShell

步骤一、安装WSL2

wsl --install

步骤二、安装wsl的ubuntu

wsl --install -d ubuntu-24.04

  #设置ubuntu的用户名和密码

步骤三、设置 Ubuntu 为默认 WSL 发行版(可选但推荐)

#可以不用设置默认,使用wsl -d Ubuntu-24.04进入Ubuntu

wsl --set-default Ubuntu-24.04 

  #设置了默认,就可以直接输入:wsl    命令即可进入Ubuntu

步骤四、进入Ubuntu 更改WSL2的DNS网络通讯能力

  wsl  或者wsl -d Ubuntu-24.04  命令进入

  1、编辑/etc/wsl.conf 关闭自动生成(推荐)

  创建或编辑 /etc/wsl.conf:

sudo nano /etc/wsl.conf

加入内容:

[network]
generateResolvConf = false

  保存:Ctrl+O     

  退出:Ctrl+X

  2、#查看/etc/resolv.conf内容,如果不是nameserver 8.8.8.8 就需要更改

sudo nano /etc/resolv.conf

  3、# 删除自动生成的文件

sudo rm /etc/resolv.conf

  4、# 创建新的 resolv.conf,使用公共 DNS

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf

 

网络::::::

=======默认的NAT 模式========

1、NAT 模式,WSL2 依赖 Windows 的端口转发机制:
你在 WSL2 中启动了一个 Web 服务,监听 3000 端口。
WSL2 检测到这个行为后,会自动在 Windows 上执行类似这样的命令:
-----powershell-----
netsh interface portproxy add v4tov4 listenport=3000 connectaddress=<WSL2的IP> connectport=3000
这条规则的作用是:将所有发送到 Windows 本机 localhost:3000 的请求,自动转发到 WSL2 虚拟机的 IP:3000

 

=================切换成桥接模式(可选)==============

当你切换到桥接模式 (Bridged Mode) 后,WSL2 就不再依赖 Windows 的端口转发机制,而是作为局域网中一台完全独立的设备存在。

步骤一、创建虚拟网络交换机

首先,需要在 Windows 上为 WSL 创建一个虚拟交换机,使其能够桥接到你的物理网卡。
1.在 Windows 搜索栏输入 PowerShell,右键选择“以管理员身份运行”。
2.执行以下命令,查看你电脑上的网络适配器名称:

Get-NetAdapter

输出:

image

3.在返回的列表中,找到你正在使用的网络适配器。通常,有线网卡名为“以太网”,无线网卡名为“WLAN”或“Wi-Fi”。记下它的 Name。
4.执行以下命令来创建虚拟交换机,请将 <你的网卡名称> 替换为上一步记下的名称(例如“以太网”):
例子::New-VMSwitch -Name WSLBridge -NetAdapterName "<你的网卡名称>" -AllowManagementOS $true

我用的是wifi,所以执行:

New-VMSwitch -Name WSLBridge -NetAdapterName "WLAN" -AllowManagementOS $true

步骤二、配置 WSL 使用桥接模式

接下来,需要修改 WSL 的全局配置文件,让它使用我们刚刚创建的虚拟交换机。
1.按下 Win + R,输入 %UserProfile% 并回车,这会打开你的用户主目录。
2.在该目录下,查找名为 .wslconfig 的文件。如果不存在,请新建一个文本文件并重命名为 .wslconfig。
3.用记事本打开该文件,并写入以下内容:

[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge

4.保存并关闭文件。

步骤三、重启 WSL 并验证

最后,重启 WSL 使新配置生效,并验证网络是否已成功桥接。
1.再次以管理员身份打开 PowerShell。
2.执行以下命令,完全关闭所有 WSL 实例:

wsl --shutdown

3.重新启动你的 WSL 发行版(例如 Ubuntu)。
4.在 WSL 的终端中,执行以下命令查看 IP 地址:

ip addr show eth0

你应该能看到 eth0 的 inet 地址变成了与你 Windows 主机在同一网段的 IP(例如,如果你的电脑是 192.168.1.5,WSL 可能是 192.168.1.x)。
现在,你可以在 Windows 的浏览器或任何网络工具中,直接使用这个 IP 地址来访问 WSL 中运行的服务了。

5.也可以在winodws宿主机执行cmd命令:

在 Windows 终端(PowerShell/CMD)中查询
如果你想在 Windows 环境下直接获取 WSL 的 IP 地址,这是最直接的方法。执行命令:

wsl hostname -I

  

 

SSH::::::

===========wsl 如何开启ssh(可选)===============

进入WSL

步骤一、执行更新命令

sudo apt update

 这会从服务器下载最新的软件包列表,告诉你的系统现在最新的版本号是多少。

步骤二、重新安装 SSH

执行命令:

sudo apt install openssh-server -y

步骤三、启动 SSH 服务

执行命令:

sudo service ssh start

 如果提示 no hostkeys available,请先执行 sudo ssh-keygen -A 生成密钥,然后再试。

 

步骤四、设置用户密码(如果你还没设置)
SSH 登录需要验证密码。如果你没设置过,请执行:

sudo passwd <你的用户名>

步骤五、让 SSH 服务“开机”自启 

编辑配置文件
在 WSL 终端执行:

sudo nano /etc/wsl.conf

添加以下内容

[boot]
systemd = true

按 Ctrl+O 保存,Ctrl+X 退出。

步骤六、设置服务自启

执行以下命令,让 SSH 服务跟随 WSL 启动:

sudo systemctl enable ssh

重启 WSL
在 Windows PowerShell 中执行 wsl --shutdown 重启 WSL,使配置生效。

需要用命令 执行 wsl 命令进入ubuntu系统。其它地方才能连接ssh 服务,不然连不上

 

===========

 

posted @ 2026-04-02 18:13  神奇的程序员  阅读(158)  评论(0)    收藏  举报