运维| Windows子系统wsl安装ubuntu

打开powershell,管理员权限执行

text

PS C:\Windows\system32> winver 

打开powershell 管理员权限执行

1.1 启用WSL,适用于Linux的window子系统

text

PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

部署映像服务和管理工具
版本: 10.0.19041.3636

映像版本: 10.0.19045.5011

启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。

1.2 启用虚拟化平台支持

text

 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

1.3 更新WSL

text

wsl --update
## 将 wsl 版本设置为 wsl2
wsl --set-default-version 2

打开powershell 管理员权限执行

text

# 列出可安装的 Linux 版本
wsl --list --online
# 安装
wsl --install ubuntu-24.04 --web-download
wsl --set-default ubuntu-24.04
# 查看
wsl --list -v
# 卸载旧版
wsl --unregister ubuntu-24.04

当然,也可以打开Microsoft Store,安装最新的Ubuntu 24.04的发行版本

ubuntu 24.0版本更换源的方式有更新,所以之前版本请自行百度参考下

text

# 备份系统默认源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换成阿里云源(/etc/apt/sources.list)
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新源

text

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

text

apt install docker

docker镜像地址配置

text

[root@bdser ~]# cat /etc/docker/daemon.json 
{
    "registry-mirrors": [
        "https://docker.1ms.run",
	      "https://docker.fxxk.dedyn.io",
	      "https://dockerpull.com"
    ]
    	
}

加载配置,启动docker

text

systemctl daemon-reload
systemctl start docker

text

重新生成key
sudo ssh-keygen -A
sudo vim /etc/ssh/sshd_config  
修改成PasswordAuthentication yes
启动服务
sudo service ssh start

这个可以通过图像界面方便的管理虚拟网络等

text

# 方法一:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 
# 方法二:
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

在运行 Windows 11 22H2 及更高版本的计算机上,可以在 .wslconfig 文件中的 [wsl2] 下设置 networkingMode=mirrored,以启用镜像模式网络。 启用此功能会将 WSL 更改为全新的网络体系结构,其目标是将 Windows 上的网络接口“镜像”到 Linux 中,以添加新的网络功能并提高兼容性

以下是启用此模式的当前优势:

  • IPv6 支持
  • 使用 localhost 地址 127.0.0.1 从 Linux 内部连接到 Windows 服务器。 不支持 IPv6 localhost 地址 ::1
  • 改进了 VPN 的网络兼容性
  • 多播支持
  • 直接从局域网 (LAN) 连接到 WSL

在家目录下创建.wslconfig配置文件,家目录可以通过下面命令来确定,注意要用cmd里面执行

text

C:\Users\dongshu.bu>echo %USERPROFILE%
C:\Users\dongshu.bu

.wslconfig 配置如下:

text

[wsl2]
memory=4GB 
processors=4 
localhostForwarding=true 

[experimental]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
hostAddressLoopback=true

使用管理员权限在 PowerShell 窗口中运行以下命令,以配置 Hyper-V 防火墙设置,从而允许入站连接:

text

Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow 
或 
New-NetFirewallHyperVRule -Name "MyWebServer" -DisplayName "My Web Server" -Direction Inbound -VMCreatorId '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -Protocol TCP -LocalPorts 80

使用文件资源管理器添加自定义启动项,如果有脚本的话,可以编写好脚本放入启动文件夹中

  • 打开“文件资源管理器”:按下“Win + E”快捷键,打开“文件资源管理器”。
  • 导航到启动文件夹:在地址栏中输入“shell:startup”并按下回车键,进入用户启动文件夹。
  • 添加快捷方式:将您希望开机启动的程序的快捷方式拖放到此文件夹中。这样,程序将在下次开机时自动启动。
  • 注意事项:确保您添加的程序是可信的,以免影响系统安全

方法如下:

  • WIN+R 运行 shell:startup 打开启动目录
  • 在此目录中创建文件 wsl-startup.vbs
  • 在 wsl-startup.vbs 中填充如下内容,需替换为你使用的发行版名称。

查看wsl-startup.vbc脚本内容

text

Set ws = WScript.CreateObject("WScript.Shell")        
ws.run "wsl -d ubuntu",0 

后面再开机的时候,就会自动启动Ubuntu系统,放到后台启动

要想要ubuntu系统里面的docker服务,被本地主机能访问到,需要在docker配置中 ,增加配置"iptables": false

全部配置如下

text

vi /etc/docker/daemon.json
{
	
	"iptables": false,
	"log-driver": "json-file",
	"log-opts": {
		"max-file": "3",
		"max-size": "50m"
	},
	"registry-mirrors": [
                "https://dockerpull.com",
	        "https://docker.1ms.run",
		"https://docker.1panelproxy.com"
	]
}

后面我们可以体验下ubuntu给我们带来的方便,轻轻体验把~