浅析Windows10子系统Bash环境安装

Posted i春秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析Windows10子系统Bash环境安装相关的知识,希望对你有一定的参考价值。


i春秋社区


笔记前言

写这篇学习笔记的原因,主要是这个Windows 10 子系统(Ubuntu)真的很棒,个人喜欢的很,所以一定要推荐给大家,再有就是实在是在安装和使用的过程中遇到了各种“坑”,网上又找不到啥详细的资料,所以这里将自己的学习过程和遇到的“坑”一一记录下来,避免大家再在这些“坑”上面花费无谓的时间。


启用windows 10 子系统

Window 10 64位系统,默认其为我们提供“Bash on Windows”的子系统功能,我们只要安装好,就可以获取一个Windows 10 下的Ubuntu linux 系统。这里首先需要启用此功能模块,具体操作步骤详解如下:

“控制面板” - “程序与功能” - “启用或不安不Windows功能” - 勾选“适用于Linux的Windows子系统(Beta)”。

浅析Windows10子系统Bash环境安装


启动 Bash on Windows 子系统

1.调用Bash子系统报错

我们直接进入cmd命令操作界面,输入bash就会出现如下提示信息。

浅析Windows10子系统Bash环境安装

1. C:\Users\admin>bash

2. -- Beta 版功能 --

3. 这将在 Windows 上安装由 Canonical 分发的Ubuntu

4. 根据其条款的授权参见此链接

5. https://aka.ms/uowterms

6.若要使用此功能,必须启用开发人员模式

7. 按任意键继续...

提示信息:要求我们启用bash之前,需要先开启“开发人员模式”


2.启用“开发人员模式”

有关如何开启Windows 10 的“开发人员模式”,具体配置步骤配置如下。

(1) 通过“设置”进入“更新和安全”;

浅析Windows10子系统Bash环境安装

(2) 勾选启用“开发人员模式”

浅析Windows10子系统Bash环境安装


3.再次调用Bash子系统

精彩预告:第一个坑就出现在这个子系统更新过程中,具体什么情况大家如果跟随我安装的化,就肯定已经看到了,相关解决办法笔记在下文已经给出。

(1)系统下载报错

在我们启用“开发人员模式”后,我们再次进入CMD命令行下启动Bash子系统,我们正常的进入 Ubuntu 子系统系统的安装进程,但是发现其在下载子系统的过程中报错了。

(2)解决方法

在进行更新源的时候,一般国内默认情况下可能会出现网络连接错误的报错信息,这主要是由于子系统更新源的服务器不在国内,这导致国内的DNS服务器在进行域名解析时无法正常解析,所以遇到此种情况,大家可以将个人的DNS服务配置为 4.2.2.1 或4.2.2.2,基本就能解决上面的问题了,当然更新速度可能不会很好,请大家要有心理预期。

浅析Windows10子系统Bash环境安装

(3)系统安装配置

在能正常下载子系统后,会给出两个确认选项,直接键入y即可,随后在正式进入bash环境前,系统还需要为我们创建一个普通用户,我直接安装提示输入用户名和密码即可正常进入系统了。

有关Ubuntu 子系统下载的相关内容截图说明如下所示:

浅析Windows10子系统Bash环境安装

1. C:\Users\admin>bash

2. -- Beta 版功能 --

3. 这将在 Windows 上安装由 Canonical 分发的 Ubuntu,

4. 根据其条款的授权参见此链接:

5. https://aka.ms/uowterms

6. 键入“y”继续: y      # 确认进行ubuntu子系统的下载安装;

7. 正在从 Windows 应用商店下载... 100%

8. 正在提取文件系统,这将需要几分钟的时间...

9. 是否要将 Ubuntu 区域设置设置为与 Windows 区域设置(zh-CN)匹配?

10. 默认区域设置为 en_US。

11. 键入“y”继续: y      # 确认时间区域选择


4.正式进入子系统环境

待更新包更新完成,我就可以直接使用Ubuntu环境下的Ubuntu 的Bash 环境了,具体使用界面如下。

浅析Windows10子系统Bash环境安装

其实到这里,我们就已经获取了一个独立的Ubuntu linux系统了,想干什么都可以了,后面针对linux的使用,这里会继续为像我自己这样的小白补充一点常用内容和使用过程中遇到的问题。


kali 镜像源配置

我们搞安全的小伙伴,可能经常会用到安全测试的工具,特别是像MSF平台,所这里我们需要将原来的Ubuntu系统的APT更新源修改为kali的源,这样我们更新和安装各类安全工具的时候就更方便了,具体修改apt更新源的方法其实很简单,就是直接使用vim编辑器编辑/etc/apt/sources.list源文件。

精彩预告:第二个使用“坑”就在这里,虽然直接将ubuntu的源更换为kali的源很简单,但是大家使用更新时一定会发现无法正常使用,具体原因和解决的方法,大家继续向下看。


1.首先,备份下源文件

为了方式万一,我这里安装修改配置文件的正常过程,先备份源配置文件内容,方便出错是好进行相应的恢复工作。

1. myles~$

2. myles~$ cd /etc/apt/

3. myles~$ sudocpsources.listsources.list.bak

4. myles~$  


2.修改更新源为 kali 的镜像源

(1) 修改souces.list更新源 
笔者这里直接使用东软学院的kali镜像源,已经测试过,很好用。这里我们直接删除sources.list原文件中的原内容,新增下面的内容,然后保存即可。

1. deb http://mirrors.neusoft.edu.cn/kali kali-rolling main

浅析Windows10子系统Bash环境安装

注:Neusoft 镜像站:http://mirrors.neusoft.edu.cn/

(2) 更新源列表信息报错

在修改完原Ubuntu系统的更新源之后,我清理了下更新列表,随后使用命令apt update更新源列表信息是报错了,报错信息显示“由于没有公钥,无法验证下载签名: xxxxxxx”,这样也就是说修改的kali源无法正常使用了。

(3) 报错原因分析

经过相关资源的学习查询,发现原来是由于我们当前的系统是ubuntu,而ubuttu系统本身是没有kali源需要使用校验使用的“公钥”的,而同时我们又没去下载相应的公钥,直接使用apt update进行源列更新,系统就会报错说没有找到公钥,继而无法使用kali源提供的服务内容,那么接下来就是下载相应的kali“公钥”就可以解决问题了,具体的方法见下一下节内容。


3.正常更新kali源的操作方法

在ubuntu系统上配置kali的源时,除了要配置更新源以外,我们还需要下载相应的kali源的校验码,大家参加下面的两步操作就能正常使用kali的更新源了。

(1)第一步: 下载更新源的公钥(如果你不知道可以直接运行一次apt update,运行报错后会给出秘钥信息。)

1. myles@ifly-21171:~$  sudo apt-key adv --keyserver   keyserver.ubuntu.com --recv ED444FF07D8D0BF6

注:这里的下载接收的一串码`ED444FF07D8D0BF6`其实就是报错信息中给出的那一串码。

(2)第二步:更新源列表信息

1. myles@ifly-21171:~$  sudo apt clean     #清理缓存

2. myles@ifly-21171:~$  sudoatp update    #更新源列表

浅析Windows10子系统Bash环境安装


软件安装

1.MSF 框架安装

精彩预告:这里是本文的第三个“坑”,这个坑是真心的坑,就是我们在安装MSF框架时,无论怎么安装它就是不停的报错,就是死活安装不上,那么具体原因是什么,请大家跟我走...

1.1 MSF 安装报错

(1) MSF 平台安装

1. # apt list metasploit* # 列出metasploit相关名称的软件列表

2. # apt install metasploit-framework  # 安装MSF框架平台

(2) MSF 安装报错

也是不是自己人品有问题,尝试了各种办法安装MSF框架,更换kali源,卸载子系统重新安装,重新更新,各种办法就是报错,就是安装不了。

浅析Windows10子系统Bash环境安装

1.2 MSF 安装报错排查

在安装了一天后,网上也进行了相关的查询,就是没找到任何相关有用的信息,后来无意中发现我每次安装MSF平台框架时,Windows 10 自带的Defender 防护总会报有威胁告警信息弹出,随后我尝试将Defender的杀毒关闭了,MSF安装竟然很惊喜的安装成功了,大家说我们冤不冤了,白白了被折腾了一天,所以大家注意了,在安装MSF的时候,建议大家暂时将Defender的杀毒功能关闭,具体操作关闭方法,请见6.3章节的截图。

1.3 MSF 安装成功

root@ifly-21171:/mnt/c/Users/admin# apt install metasploit-framework

浅析Windows10子系统Bash环境安装
浅析Windows10子系统Bash环境安装

2 python 环境安装

这里刚好个人要用到一个python 的第三方库scapy,所这里见的记录下scapy安装过程。

(1) pip 功能安装

root@ifly-21171:/mnt/c/Users/admin# apt install pip

(2) scapy 功能库安装

root@ifly-21171:/mnt/c/Users/admin# pip install scapy

(3) scapy 交互使用

浅析Windows10子系统Bash环境安装

3.好玩的linux工具安装

Linux 下面其实有很多好玩的小工具程序,这里简单的记录几个好玩的工具命令,做这个只在说明在当前Windows 10 下的这个子系统上我可以玩任何linux下我们想玩的内容。

3.1 命令:sl (蒸汽机车)

你可能了解 ‘ls’命令,并经常使用它来查看文件夹的内容。但是,有些时候你可能会拼写成‘sl’,这时我们应该如何获得一些乐趣而不是看见“command not found”呢?

(1) sl 安装命令

root@ifly-21171:~# apt install sl

(2) 命令展示效果

浅析Windows10子系统Bash环境安装

3.2 命令:cmatrix(黑客帝国)

你可能看多好莱坞的电影‘黑客帝国’并陶醉于被赋予Neo的能看到在矩阵中任何事物的能力,或者你会想到一幅类似于‘Hacker’的桌面的生动画面。

(1) cmatrix 安装命令

root@ifly-21171:~# apt install cmatrix

(2) 命令展示效果

浅析Windows10子系统Bash环境安装

3.3 命令: linux_logo(banner欢迎信息)

linux_logo 程序生成一个彩色的 ANSI 版企鹅图片,还包含一些来自 /proc 的系统信息,有关linux_logo的安装命令具体使用请说明如下。

(1)linux_logo 安装命令

root@ifly-21171:~# apt install linuxlogo

(2) 命令展示效果

浅析Windows10子系统Bash环境安装

(3) 随机效果展现欢迎信息

linux_logo 默认为我提供31个不同风格的Banner欢迎界面,你可以用这个命令查看内置的标志列表。

1. root@ifly-21171:/mnt/c/Users/admin# linux_logo -L list

2.Available Built-in Logos:

3. Num     Type    Ascii   Name            Description

4.         1       Classic Yes     aix             AIX Logo

5.         2       Classic Yes     bsd             FreeBSD Logo

6.         3       Banner  Yes     bsd_banner      FreeBSD Logo

7.         4       Classic Yes     irixIrix Logo

8.         5       Classic Yes     openbsdOpenBSD Logo

9.         6       Banner  Yes     openbsd_bannerOpenBSD Logo

10.         7       Banner  Yes     solaris         The Default Banner Logos

11.         8       Banner  Yes     banner-simp     Simplified Banner Logo

12.         9       Banner  Yes     banner          The Default Banner Logo

13.         10      Classic Yes     classic-nodots  The Classic Logo, No Periods

14.         11      Classic Yes     classic-simp    Classic No Dots Or Letters

15.         12      Classic Yes     classic         The Default Classic Logo

16.         13      Banner  Yes     blankon         An ASCII BlankOn logo

17.         14      Classic Yes     core            Core Linux Logo

18.         15      Banner  Yes     debian_banner_2 Debian Banner 2

19.         16      Banner  Yes     debian_bannerDebian Banner (white)

20.         17      Classic Yes     debian_oldDebian Old Penguin Logos

21.         18      Classic Yes     debianDebian Swirl Logos

22.         19      Classic Yes     gnu_linux       Classic GNU/Linux

23.         20      Banner  Yes     mandrake_banner Mandrake(TM) Linux Banner

24.         21      Banner  Yes     mandrake        Mandrakelinux(TM) Banner

25.         22      Banner  Yes     mandrivaMandriva(TM) Linux Banner

26.         23      Banner  Yes     pld             PLD Linux banner

27.         24      Classic Yes     raspi           An ASCII Raspberry Pi logo

28.         25      Banner  Yes     redhatRedHat Banner (white)

29.         26      Banner  Yes     slackwareSlackware Logo

30.         27      Banner  Yes     sme             SME Server Banner Logo

31.         28      Banner  Yes     sourcemage_ban  Source Mage GNU/Linux banner

32.         29      Banner  Yes     sourcemage      Source Mage GNU/Linux large

33.         30      Banner  Yes     suse            SUSE Logo

34.         31      Banner  Yes     ubuntu          Ubuntu Logo

35.

36. Do "linux_logo -L num" where num is from above to get the appropriate logo.

37. Remember to also use -a to get ascii version.

(4) 随机设置Banner欢迎信息

如果我喜欢,我们可以随机设置我们每次登陆系统时的欢迎信息,具体设置步骤如下。

1. 第一步:使用vim编辑器打开/etc/bash.bashrc文件

2. 第二步:直接在文bash.bashrc的结尾处加上下面的语句


卸载 Bash on Windows

最后我们如果不喜欢这个系统了,或者由于其他什么原因我们想卸载这个子系统,其实Window 10 的 cmd 命令行下也很体贴的为我们提供了直接卸载“Bash on Windows 子系统”的工具命令lxrun,具体操作如下。

1 帮助命令

1. C:\Users\admin>lxrun -h

2. 对 LX 子系统执行管理操作

3. 用法:

4.     /install - 安装子系统

5.         可选参数:

6.             /y - 不提示用户接受或创建子系统用户

7.     /uninstall - 卸载子系统

8.         可选参数:

9.             /full - 执行完全卸载

10.             /y - 不提示用户确认

11.     /setdefaultuser - 配置将用于启动 bash 的子系统用户。如果该用户不存在,则会创建该用户。

12.         可选参数:

13.             username - 提供用户名

14.             /y - 如果提供了用户名,则不提示创建密码

15.     /update - 更新子系统的包索引


5.2 实际操作

浅析Windows10子系统Bash环境安装

1. C:\Users\admin>lxrun /uninstall /full

2. 这将在 Windows 中卸载 Ubuntu。

3. 这将删除 Ubuntu 环境以及任何修改、新应用程序和用户数据。

4. 键入“y”继续: y

5. 正在卸载...

这样我们就可以将子系统卸载的一干二净哦...是不是使用起来很方便呢...那么接下来大家赶紧去感受吧...


安装过程中的问题汇总

1.Bash 子系统更新报错

Windows 10 ubuntu 子系统下载更新,报网络连接错误的原因主要是因为微软的服务器国内DNS解析有问题,修改本地DNS服务为 4.2.2.1 或者 4.2.2.2 即可解决问题;


2.更改 kali 源后,apt update更新报错

更换 kali /etc/apt/souces.list源后,进行apt update更新源列表信息时,报没有“公钥”的错误,无法正确更新,解决的方法就是下载“提示信息”中的“公钥”即可,具体命令参考如下。

1.sudo apt-key adv --keyserver  

2.keyserver.ubuntu.com --recv ED444FF07D8D0BF6


3.安装metasploit-framework时,总是报错

安装metasploit-framework时总是报错,后进过分析最大的可能就是“Windows Defender” 的杀毒功能模块,将下载的文件干掉了导致的。当停用杀毒模块后,即可正常安装,具体停用的方法,笔者下面也贴出了截图,大家可参考使用。

浅析Windows10子系统Bash环境安装
浅析Windows10子系统Bash环境安装


使用感受

在试用这个Windows 10 自带的子系统后,感觉自己完全爱上它了,有了这个Ubuntu子系统,比如我们想使用linux环境的MSF平台时,再也不用去开虚拟机了,直接一个bash命令就可以获取一个ubuntu的linux环境了,随后安装好MSF平台,我就可以使用MSF平台了,不知道大家是不是有和我一样的感受,有了这个子系统我们就可以干任何我们在linux环境中想做的事情了呢,但是事实总是残酷的,这是全篇文档中最大的一个坑了,就是这个subsystem子系统不支持网络连接(No internet connectivity in Bash),这也是这个子系统个人认为最大的坑和最大的bug。

所以我只能悲哀的告诉大家,有跟我一样系统linux系统的小伙伴可以去玩一玩这个子系统,安装一些软件和搭建一些跟网络连接没有关系的应用还是可以的,所以大家不要打我,我真的也没办法解决这个坑,只能坐等github共享社区的大神们早点解决这个AF_Famliy不支持的问题吧(AF_PACKET family is not supported yet.)。

戳阅读原文,更多精彩等你哟~

以上是关于浅析Windows10子系统Bash环境安装的主要内容,如果未能解决你的问题,请参考以下文章

Windows系统安装下 React Native 环境

Windows 10 系统安装搭建 D语言 DMD 编译环境

win10安不了python怎么办

Window10系统如何安装pytorch教程

环境搭建 之 Windows10 安装 python3.5.2

整理一下odoo10在windows系统下部署的流程