启用虚拟机功能
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。
或者使用win+s 搜索 启用或关闭windows功能
下载 Linux 内核更新包
下载最新包:
运行下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“yes”以批准此安装。)
将 WSL 2 设置为默认版本
wsl --set-default-version 2
安装所选的Linux分发
- 打开 Microsoft Store,并选择你偏好的 Linux 分发版。
-
在分发版的页面中,选择"获取"
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后, 需要为新的Linux分发版创建用户账户和密码
设置unix用户名和密码后就可以使用了
启动ubuntu
-
在系统菜单中启动
-
在windows terminate中启动
安装完wsl2后自动会将该系统的启动项加载到windows terminate中
查看是不是WSL2
wsl -l -v
设置ubuntu root密码
ubuntu安装好后,root初始密码(默认密码)不知道,需要设置。
1、先用安装时候的用户登录进入系统
2、输入:sudo passwd 按回车
3、输入新密码,重复输入密码,最后提示passwd:password updated sucessfully
此时已完成root密码的设置
4、输入:su root
此时应该是已完成切换...
使用ssh登录
- 开启ubuntu中ssh支持
查阅资料发现,WSL2下的Ubuntu默认是支持SSH的,支持默认不被开启。需要开启的,需要手动编辑下SSH服务的配置文件。
vi /etc/ssh/sshd_config
进入之后,修改如下几行配置
Port = 22 去掉这行的#,代表启用端口号22
ListenAddress 0.0.0.0 去掉这行的#,代表监听所有地址
PasswordAuthentication yes,将这行的no改成yes,代表支持账号密码形式的登录
设置后,重启SSH服务
sudo service ssh restart
此时还不能支持root用户密码登录
默认情况下,root用户只支持用RSA登录,但是可以修改配置的
切换到root用户之后,用vi命令打开SSH的配置文件。
su root
vi /etc/ssh/sshd_config
找到行PermitRootLogin prohibit-password
保留这行的#,这意味着:允许root登录,但是禁止root用密码登录,所以这行要注释掉。
需要添加一行:
PermitRootLogin yes
最后按ESC
->:wq
,保存退出,然后需要重启一次ssh服务即可生效
sudo service ssh restart
不出意外,这次你就可以用root账号进行登录了。
如果出现了如下错误:
sshd: no hostkeys available -- exiting
,需要如下操作:1.ssh-keygen -A
, 2./etc/init.d/ssh start
然后需要获取ubuntu ip地址
ifconfig
root@DESKTOP-CEE2GF0:/mnt/c/Users/wweim# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.23.178.79 netmask 255.255.240.0 broadcast 172.23.191.255
inet6 fe80::215:5dff:fe4a:c54 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:4a:0c:54 txqueuelen 1000 (Ethernet)
RX packets 333 bytes 83452 (83.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19 bytes 1514 (1.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到本地ip(127.0.0.1)和外网ip(172.23.178.79), 使用这两个ip都可以登录, 但是外网ip是会改变的, 所以一般用本地ip
到此一个本地linux环境已经搭建好了, 欢迎大家的转发, 转发请注明出处, 本文首发于公众号:[DotNet技术说]
本文作者:wwmin
微信公众号: DotNet技术说
本文链接:https://www.jianshu.com/p/3e2b7252b4b8
关于博主:评论和私信会在第一时间回复。或者[直接私信]我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,关注点赞, 您的鼓励是博主的最大动力!