##1、开启BIOS的CPU虚化 ##2、安装WSL2 ubuntu docker ### 方法1 一键安装命令 ```shell wsl --install ``` ### 方法2手动安装 步骤一:安装 WSL1 以管理员权限运行 powershell 运行命令: ```shell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` ### 步骤二:启用虚拟机功能 ```shell dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` norestart 为执行任务后不自动重启, ### 步骤三:下载 Linux 内核更新包 (非必须) `wsl -l -v` 查看 wsl版本 如果是2.x 则不需要更新 步骤4也可以不用 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi ### 步骤四:将 WSL 2 设置为默认版本 (非必须) ```shell wsl --set-default-version 2 ``` ### 步骤五:安装ubuntu 在Microsoft Store 安装 ubuntu / ubuntu:20.04  ### 将分发版本设置为 WSL 1 或 WSL 2 ```shell wsl --set-version Ubuntu 2 ``` ### 安装Windows terminal(非必须) 在Microsoft Store 安装 wsl --set-version Ubuntu 2 ### 打开ubuntu 完成初始化和账号密码设置 ##3、Windows中的WSL2(子系统ubuntu)开机启动配置 方法1: 打开任务计划程序。 点击右边的创建任务。 任务的名称和描述可以随便写,安全选项需要选择“`不管用户是否登录都要运行`”。 点击上方的“触发器”选项卡,点新建按钮,然后会卡几秒(微软的老 BUG )。开始任务中选择“启动时”,然后点击确定。 “操作”选项卡中,点新建按钮,然后“程序或脚本”下的文本框里输入`"C:\Program Files\WSL\wsl.exe"`,引号也要带上(非常重要,除了这个目录下的wsl.exe,其他位置的都不行)。添加参数可以根据需要填写,比如`-d ubbuntu指定发行版`。 “条件”选项卡中,所有选项全部取消勾选。 ”设置“选项卡中,除了“允许按需执行任务”,其他全部取消勾选。 点击确定关闭窗口。可以先右键运行试试效果。这种方法运行的 WSL 即使当前用户注销也是会继续运行的。 ###方法2在子系统中创建脚本 ```shell Set ws = WScript.CreateObject("WScript.Shell") ws.run "wsl -d Ubuntu",vbhide ``` ------------------------ 下面这种方法貌似不管用 `sudo vim /etc/init.wsl` 根据需求增加续开机启动项 ```sh #! /bin/sh /etc/init.d/ssh start /etc/init.d/cron start ``` 授权 `sudo chmod 777 /etc/init.wsl` 在windows中新建vbs脚本 如: `linux-start.vbs` 添加如下内容(wsl -d后面的参数是你所安装的子系统的版本 ,可通过wsl -l查看) ```shell Set ws = WScript.CreateObject("WScript.Shell") ws.run "wsl -d Ubuntu -u root /etc/init.wsl",vbhide ``` 通过 计算机--管理--计划任务 把linux-start.vbs设置为开启启动项  --------- ###安装ssh (自带的不能用) `sudo apt-get purge openssh-server` `sudo apt-get install openssh-server -y` 编辑/etc/ssh/sshd_config配置文件,并修改如下内容 `sudo vim /etc/ssh/sshd_config` ``` #需要修改的地方 Port 2222 去掉# ListenAddress 0.0.0.0 PubkeyAuthentication yes #默认是Public Key登录,我这里注释掉改为用户名密码登录 PasswordAuthentication yes #允许用户名密码方式登录 ``` ###远程连接 此时通过PC的IP地址是无法访问wsl的,需设置端口转发和防火墙。 (1)查看wsl的地址 安装ifconfig工具 `apt install net-tools` 查看IP地址,红框位置为wsl地址(eth0) `ifconfig` (2)将端口转发到wsl,在Power Shell下执行命令,将[IP]和[PORT]替换为wsl的IP和端口。 ```shell netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=[IP] connectport=[PORT] ``` (3)开启防火墙入站规则(也可以在控制面板-Windows Defender 防火墙-高级设置-入站规则中设置) ```shell netsh advfirewall firewall add rule name=WSL2ssh dir=in action=allow protocol=TCP localport=2222 ``` 查看转发了哪些端口: ```shell netsh interface portproxy show all ``` 删除转发规则 ```shell netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222 ``` ## 安装docker windows需要下载桌面版 https://www.docker.com/   ----------------- 输入docker 有提示安装命令(非必须) `snap install docker` ### 部分常用docker容器: 1、portainer-ce ```shell docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce ``` 2、filebrowser ```shell docker run -d \ --name filebrowser \ --user $(id -u):$(id -g) \ -p 25080:8080 \ -v /home:/data \ -v /home/ubuntu/docker/filebrowser/config:/config \ -e FB_BASEURL=/filebrowser \ hurlenko/filebrowser ``` ---------------- ##其他 ###window和WSL2(子系统)如何互传文件 示例:将window系统下的D:/software/111.zip上传到WSL2(子系统)的/home/目录下 在WSL2(子系统)中执行如下命令,即可 `cp /mnt/d/software/111.zip /home` ### 如何在 Ubuntu WSL 中启用 systemd `snap`(Canonical 为使用 Linux 内核和 systemd init 系统的操作系统开发的软件打包和部署系统) `microk8s`(一个轻量级的 Kubernetes,旨在降低 K8s 和云原生应用开发的准入门槛) `systemctl`(检查和控制 systemd 系统和服务管理器的状态) 需要在 Ubuntu 实例中,将以下修改内容添加到 `/etc/wsl.conf` ```shell [boot] systemd=true ``` • 然后通过在 PowerShell 中运行 `wsl --shutdown` 来重启实例,并重新启动 Ubuntu ### 使用 SSH 远程控制一台 Windows 服务器 首先需要用管理员身份启动 PowerShell,使用如下命令看一下,要确保 OpenSSH 可用于安装: ```shell Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' ``` 结果: ``` Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent ``` 安装: ```shell Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 ``` 开启 SSHD 服务: ```shell Start-Service sshd ``` 设置服务的自动启动: ```shell Set-Service -Name sshd -StartupType 'Automatic' ``` 最后确认一下防火墙是否是放开的 ```shell Get-NetFirewallRule -Name *ssh* ``` 如果是放开的,那么结果会提示 `OpenSSH-Server-In-TCP`这个状态是 `enabled`。 如果你希望使用特定的端口而不是默认的22端口,你需要修改SSH服务的配置文件`sshd_config`。这个文件通常位于`C:\ProgramData\ssh`目录下。使用文本编辑器打开它,并找到Port 22这一行,将其更改为你想要的端口号,例如Port `2222`。 WMI Scripting HTML 当前访问者IP地址及地址归属: Last modification:August 28th, 2024 at 10:58 am © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 ×Close Appreciate the author Sweeping payments