windows 11 + kali wsl二合一配置步骤与踩坑

windows 11 + kali wsl二合一配置步骤与踩坑

在前几天的某市攻防演练中,在攻防前期,我的虚拟机经常无缘无故出现断网、卡顿等现象,但找不出原因。

为了不影响后续的这些天的攻防演练,我选择在一个晚上通宵 在我的windows 11系统上快速搭建了wsl的kali 无缝模式,配置好之后的第二天,即通宵之后立马就开始使用它来进行攻防作战了,体验和效果还是相当不错的。

wsl安装小问题

只要是在win系统上第一次安装wsl相信读者们应该都不会遇到什么问题,可能唯一会遇到的问题应该就是在微软商店中搜不到wsl

这里给出链接,下面的这个链接可直达微软商店wsl下载页面

https://apps.microsoft.com/detail/9p9tqf7mrm4r?hl=zh-cn&gl=CN

kali wsl

wsl安装好之后通过这个命令下载kali wsl

wsl --install --distribution kali-linux

它会弹出新的窗口,让你填写kali创建的账户名和密码

安装好之后,我们有几种命令可以直接启动和进入它:

# kali
# wsl --distribution kali-linux

win-kex安装配置

首先要做的就是通过apt下载win-kex

sudo apt install kali-win-kex

当然,在开始之前,你可能需要先配置apt国内镜像源,这取决于你的网络环境

kex无缝模式配置

无缝模式需要先安装VcXsrv

https://sourceforge.net/projects/vcxsrv/

还需要安装vcredist140 ,这里有个值得注意的点,必须安装以下该链接的Visual C++ Redistributable for Visual Studio 2015 ( vcredist140 )

https://www.microsoft.com/en-US/download/details.aspx?id=48145

如果你的机器上存在其它版本的vcredist14x,我的做法是在控制面版->卸载程序,直接卸载了其它版本,然后再安装vcredist140

然后就是配置VcXsrv

打开它

display number设为0
在这里插入图片描述

下一页默认

在这里插入图片描述

下一页把禁用访问控制勾选上

在这里插入图片描述

踩坑之路正式开始

当你兴致勃勃打开cmd输入以下命令,准备见证奇迹的时候

wsl -d kali-linux kex --sl --wtstart -s

结果等了半天,发现VcXsrv一点反应都没有,会话没有建立成功

当你百度、csdn找了半天,最终找的方法都是配置网卡地址

但很不幸的是,你通过这些教程的命令,发现找不到网卡或是其它相关问题

但你通过本机ipconfig发现,其实是有的

在这里插入图片描述

kali wsl

在这里插入图片描述

解决方案

事实上连接不上的原因其实很简单,根据上图的kali wsl中的网络配置,你会发现有一个10.255.255.254的ip,然后再看cmd连接kex无缝模式时的**“10.255.255.254 找不到xxxxxxx”**

说明再无缝模式连接时,它寻找的ip是10.255.255.254,而这玩意是kali wsl的本机ip

所以很简单,我们只需要把要连接的ip修改为我们windows本机的wsl hyper-v的虚拟网卡地址就可以了,我这里是172.24.192.1

在这里插入图片描述

修改的方法很简单,只需要修改kali wsl的/etc/resolv.conf

nameserver 172.24.192.1

这个时候你再尝试运行wsl -d kali-linux kex --sl --wtstart -s

你应该就会发现输出的信息当中,它连接的ip确实变成了172.24.192.1(具体情况取决于你实际的虚拟网卡地址)

请注意,如果你还是连接不上,那么你需要重启VcXsrv软件,再强调一遍,请重启VcXsrv软件,并再次尝试kex无缝模式连接

新的坑

那么这个时候相信都应该能连接上了,能够看到无缝模式下美丽的windows+kali结合体

在这里插入图片描述

新的问题又来了,其实也不算新问题,那就是/etc/resolv.conf的问题

总所周知这个文件是软连接到那个啥文件的,所以你每次重启,/etc/resolv.conf都会变回10.255.255.254,所以你每次刚开机想要连接,还得修改一下/etc/resolv.conf

那有没有什么好办法呢,还真没有,能试的我都试过了,相信不少读者也应该明白的,kali wsl网络配置方面跟实际的有点差异,缺少了某些配置文件,或者压根不生效等等之类的问题,导致nameserver一直被重置

解决方案

有一个简单粗暴且实用的方法可以一劳永逸。分为三步:

1.unlink /etc/resolv.conf
2.echo 'nameserver 172.24.192.1' > /etc/resolv.conf
3.chattr +i /etc/resolv.conf

直接取消/etc/resolv.conf的软连接,然后自己新建一个/etc/resolv.conf,将内容改为我们想要的,然后用chattr加锁。

这样一顿操作下来,/etc/resolv.conf永远都不会变

配置好之后,以后就可以很轻松愉快的一键连接kex无缝模式了

官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

白骑士的C语言教学实战项目篇 4.4 简单HTTP服务器

在本项目中,我们将设计并实现一个简单的HTTP服务器,涵盖网络编程基础、HTTP协议解析、多线程处理请求。通过这个项目,我们可以更加深入地了解网络编程、HTTP协议以及多线程编程的基本概念和实现方法。 网络编程基础 网络编程是计算机科学中的…

2024年电脑监控软件排行榜(真实测评推荐七款电脑监控软件)

在信息化快速发展的今天,企业对员工电脑活动的监控变得尤为重要。有效的电脑监控软件不仅可以提升员工的工作效率,还能防止信息泄露,保障企业的数据安全。本文将介绍几款知名的电脑监控软件,并对其特点进行详细分析,帮…

java中函数式接口一般什么时候使用,并写一下详细的代码实例

在Java中,函数式接口(Functional Interface)主要用于支持Lambda表达式和方法引用,从而简化代码、提高可读性和可维护性。函数式接口是指仅包含一个抽象方法的接口,这样的接口可以通过Lambda表达式来实例化,…

DMException: 变量空间溢出,解决达梦数据库报错问题

达梦报错 Caused by: dm.jdbc.driver.DMException: 变量空间溢出 at dm.jdbc.driver.DBError.throwException(SourceFile:715) ~[DmJdbcDriver18.jar:- 8.1.3.100 - Production] at dm.jdbc.a.a.y.l(SourceFile:619) ~[DmJdbcDriver18.jar:- 8.1.3.100 - Production] …

笔记本电脑投屏怎么操作?一看就会!

日常工作或办公都会用到笔记本电脑,但很多新手用户不知道笔记本电脑的投屏要怎么操作?接下来系统之家给大家介绍三种简单的操作方法,帮助大家轻松完成笔记本电脑投屏投屏操作,从而满足自己的办公或学习使用需求。 方法一 1. 直接W…

Django QuerySet对象,exclude()方法

模型参考上一章内容: Django QuerySet对象,filter()方法-CSDN博客 exclude()方法,用于排除符合条件的数据。 1,添加视图函数 Test/app11/views.py from django.shortcuts import render from .models import Postdef index(re…

Eclipse运行main函数报 launch error

右键run as java application,运行main函数的时候报launch error 解决方式:文件右键run configurations 旧的是Project JRE,改成下图这个样子

python(opencv2、PIL)将图片透明背景转换成白色背景的两种方法

方法一:使用OpenCV的函数封装 pip install opencv-pythonimport cv2 import numpy as npdef convert_transparent_to_white_opencv(input_image_path, output_image_path):"""将透明背景的图片转换为白色背景,使用OpenCV实现。参数&…

服务器的分类有哪些

1、根据体系结构不同,服务器可以分成两大重要的类别:IA架构服务器和RISC架构服务器。   这种分类标准得主要依据是两种服务器采用得处理器体系结构不同。RISC架构服务器采用得CPU是所谓的精简指令集的处理器,精简指令集CPU的主要特点是采用…

Windows7彻底卸载mysql

1.控制面板卸载mysql 2.删除C:\Program Files\MySQL 3.删除C:\用户\Administrator\App Data\Roaming\MySQL”(App Data默认隐藏,需要在文件夹和搜索选项中勾选显示文件夹),为了删除的更彻底,可以直接在计算机全盘搜索MySQL关键字,将所有找到…

华为机试HJ53杨辉三角的变形

华为机试HJ53杨辉三角的变形 题目: 求杨辉三角中第n行第一个偶数出现的位置。 想法: 杨辉三角中存在规律,除了第一行与第二行没有偶数外,从第三行开始第一个偶数出现的位置以(2,3,2&#xf…

mamba如何解决version `GLIBCXX_3.4.29‘ not found的问题

参考 如何解决version GLIBCXX_3.4.29‘ not found的问题_glibcxx not found-CSDN博客 用mamba时,出现报错 ImportError: /lib/x86_64-linux-gnu/libstdc.so.6: version GLIBCXX_3.4.29 not found 解决 #查找系统中的许多libstdc.so.6 sudo find / -name libstd…

软件测试下的AI之路(5)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家…

实现不同的数据库之间的同步方式

第一种 实时同步 针对实时性要求比较高的场景可以使用canal中间件实现,我们内部的大数据项目中也有用dataX的。 canal 的主要用途是基于mysql数据库增量日志解析,并能提供新增量数据订阅和消费,从而实现数据同步。其主要是基于mysql 的binlo…

多数据库支持在PHP框架中的实现策略与实践

在现代Web开发中,随着应用规模的扩大和业务需求的多样化,单一数据库往往难以满足所有需求。多数据库支持,即在一个应用程序中使用多个数据库系统,已经成为许多项目的标准配置。本文将详细介绍如何在PHP框架中实现多数据库支持&…

QT中常用英语单词

Qt (.n): 一个跨平台的C应用程序开发框架,广泛用于开发GUI应用程序。Widget (.n): 在Qt中,一个widget指的是一个可视化的用户界面元素,如按钮、文本框等。Signal and Slot (.n): Qt特有的通信机制。Signal是某个特定事件发生时发出的信号&…

Unity之Text组件换行\n没有实现+动态中英互换

前因:文本中的换行 \n没有换行而是打印出来了,解决方式 因为unity会默认把\n替换成\\n 面板中使用富文本这个选项啊 没有用 m_text.text = m_text.text.Replace("\\n", "\n"); ###动态中英文互译 using System.Collections; using System.Collections…

20240708 多模态大模型

参考网站: 微软Florence-2官宣开源,一统视觉基础模型!华人团队联手打造 自监督学习修炼之MoCov1与MoCov2 - 知乎 CLIP图像编码resnet50和transformer区别 CLIP (Contrastive Language-Image Pre-training) 是一个结合了图像和文本的跨模态…

顺序表与链表

前言: 顺序表和链表是属于数据结构中比较基础的知识,我们需要对其进行掌握。在JAVA原生标准库中分别为ArrayList和LinkedList。下图是整个数据结构之间的结构框图 1.ArrayList 背后用来存储数据的是一个数组,所以用ArrayList来进行相关操作…

【ai】决策树

决策树 决策树是一种监督学习算法,主要用于分类和回归任务。它通过对数据进行树状结构的分割来进行预测。决策树的主要优点包括易于理解和解释、处理数值型和分类型数据的能力以及对特征缩放不敏感。以下是决策树的基本概念和主要应用。决策树的基本概念 节点(Node): 根节…