跳转至

参考链接

一、安装WSL 2.0

1.启用适用于 Linux 的 Windows 子系统:打开powershell并输入:

Bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2&3. 检查WSL2的要求:win+R打开运行,然后输入winver检查windows版本,此版本需要大于1903

4. 启用虚拟化:以管理员打开powershell输入下列命令

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

在这里插入图片描述

5. 下载X64的WSL2 Linux内核升级包并安装

6. 设置WSL默认版本

Text Only
wsl --set-default-version 2

二、安装Ubuntu20.04LTS

1.打开Microsoft Store

2. 一般Windows都会将ubuntu加入到我的软件库中,如果没有可以自行搜索ubuntu然后安装,搜索到商店的有可能安装不了

在这里插入图片描述

3. 找到Ubuntu 20.04LTS点击安装即可,这里我已经安装好了直接点击启动就行

4. 打开后设置初始的用户名和密码即可,如果出现参考的对象类型不支持尝试的操作,请重置下网络net winsock reset

Tips: 用户名应该只包含小写字母和数字,并且不能以数字开头,否则会报错

5. 设置root密码

Tips: 这步往往可以省略,在初始化的时候应该已经设置

Text Only
sudo passwd

三、配置ssh

1.修改配置文件/etc/ssh/sshd_config,开启下列选项

Bash
sudo nano /etc/ssh/sshd_config

利用nano编辑器来编辑,以下三行去掉注释/修改至这个状态

  • Tips: nano使用方法
  • Ctrl + O (字母“o”,不是数字零),这将提示您输入文件名进行保存。
  • Enter 确认保存文件(如果文件名没有变化,可以直接按 Enter)。
  • Ctrl + X 退出nano编辑器。
Text Only
1
2
3
PermitRootLogin yes #允许root认证登录
PasswordAuthentication yes #允许密码认证
PubkeyAuthentication yes
Text Only
1
2
3
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

2. 由于自带的openssh-server没有生成密钥所以需要生成密钥文件,否则会出现sshd: no hostkeys available – exiting.

Tips:若没有必要,不要给密钥设密码,若一定要设,rsa_key 最好别设密码

Bash
1
2
3
4
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
Bash
sudo chown root:root /etc/ssh/ssh_host_*
sudo chmod 600 /etc/ssh/ssh_host_*

3. 启动ssh

Text Only
service ssh start

若之前启动过ssh, 尝试一下:

Bash
sudo systemctl restart ssh

再检验ssh的状态:

Bash
sudo systemctl status ssh

4. 开机启动ssh:win+R打开运行,输入shell::startup进入开机启动项,创建wsl_ssh_start.bat,其内容为

Text Only
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"

5. 设置默认root登录:以管理员打开powershell,输入以下命令,

注意:用户名需要替换掉,版本页需要替换掉,如果wsl的路径不在这里可以去C:\Program Files\WindowsApps\XXX.UbuntuXXX\ubuntu版本.exe

Text Only
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user slowist

C:\Users\leexi\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe config --default-user slowist

Tip 1

如何查看Ubuntu的版本呢?

查看 WindowsApps 目录: 打开文件资源管理器,导航到:C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ 在这个文件夹下查找以 ubuntu 开头的执行文件。例如,文件名可能是 ubuntu2004.exeubuntu1804.exe 或其他类似名称。

Tip 2

报错:NAT模式下的WSL不支持localhost代理

可以禁用windows代理:

  1. 打开 Windows 设置Win + I 打开设置。

  2. 网络和 Internet 选择“网络和 Internet”。

  3. 代理 在左侧菜单中选择“代理”。

  4. 禁用代理 确保“自动检测设置”和“使用代理服务器”都被禁用。

解决 localhost 代理问题的方法

在使用 WSL(Windows Subsystem for Linux)时,如果遇到 "检测到 localhost 代理配置,但未镜像到 WSL,NAT 模式下的 WSL 不支持 localhost 代理" 的错误,可以尝试以下解决方案:

方法二:配置 WSL 使用代理

如果需要在 WSL 中使用代理,可以手动配置代理设置:

export http_proxy="http://your_proxy:your_port" export https_proxy="http://your_proxy:your_port" export no_proxy="localhost,127.0.0.1"

请将 your_proxyyour_port 替换为实际的代理服务器地址和端口。

方法三:升级到 WSL 2

WSL 2 的网络堆栈与 WSL 1 不同,可能更适合处理网络代理问题:

  1. 检查当前 WSL 版本:wsl -l -v
  2. 升级到 WSL 2:

wsl --set-version 2

<distribution_name> 替换为您的发行版名称。

  1. 将 WSL 2 设置为默认版本:

wsl --set-default-version 2

方法四:手动启动 SSH 服务

如果只是尝试启动 SSH 服务,可以手动执行以下步骤:

  1. 启动 WSL 终端。
  2. 启动 SSH 服务:

sudo service ssh start

四、连接SSH的一般步骤

  1. WSL 里启动SSH服务
Bash
sudo service ssh start
  1. 找到分配给WSL的IP
Bash
hostname -I
  1. 在Windows Powershell里连接WSL
Bash
ssh your_username@WSL_IP_address

ssh slowist@172.20.149.110

五、如何在LINUX上运行汇编程序

  • VS Code 安装 Remote Development 插件
  • /mnt/c/Users/leexi/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code 1.asm