外部局域网直接访问WSL2

2023-10-29

1. 开启hyper-v

1、首先,进入控制面板—程序—启用或关闭windows功能,勾选hyper-v,确认后重启电脑。

在这里插入图片描述
2、打开 Windows PowerShell,输入 systeminfo 命令
能够看到出现了很多处理器的信息,最末尾有个 Hyper-V 要求,如果四个全为 “是”,则表示支持 Hyper-V 功能。
3、桌面新建一个记事本文件,将它的后缀改成cmd或bat,复制下面的代码

pushd "%~dp0"
 
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
 
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
 
del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

4、然后,右键选择:以管理员身份运行。代码执行结束后,重启电脑就可以了。

2. 桥接网络

重启后首先运行wsl2(这样才能出现WSL的虚拟网卡),以管理员方式打开powershell,执行Get-NetAdapter,可以列出系统所有的网卡,记住想要桥接的网卡名称,比如我想桥接到有线网络其名称为“以太网”

在这里插入图片描述
在powershell中执行

Set-VMSwitch WSL -NetAdapterName 以太网

将wsl虚拟网络和主机有线网络桥接起来。

3 手动修改WSL网络

sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
sudo ip addr add 192.168.2.7/24 broadcast 192.168.2.255 dev eth0
sudo ip route add 0.0.0.0/0 via 192.168.2.1 dev eth0

接下来还需要更新DNS地址,执行

sudo vim /etc/resolv.conf

修改文件最后一行内容为 nameserver 192.168.2.7,然后保存退出即可。 一切配置完毕,现在可以从外部局域网其他主机直接ping通WSL了

4 取消桥接

Set-VMSwitch WSL -SwitchType Internal
wsl --shutdown

然后执行 wsl --shutdown 重启wsl,即可恢复原有的虚拟内部网络。

参考:
1.https://blog.csdn.net/chubbykkk/article/details/125216708
2.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

外部局域网直接访问WSL2 的相关文章

  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • 如何仅将整个嵌套目录中的头文件复制到另一个目录,在复制到新文件夹后保持相同的层次结构

    我有一个目录 其中有很多头文件 h 和其他 o 和 c 文件以及其他文件 这个目录里面有很多嵌套的目录 我只想将头文件复制到一个单独的目录 并在新目录中保留相同的结构 cp rf oldDirectory newDirectory将复制所有
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 使用命令行将 MediaWiki 维基文本格式转换为 HTML

    我倾向于编写大量文档 因此 MediaWiki 格式对我来说很容易理解 而且比编写传统 HTML 节省了我很多时间 然而 我也写了一篇博客 发现一直从键盘切换到鼠标来输入正确的 HTML 标签会增加很多时间 我希望能够使用 Mediawik
  • 如何从类似于 eclipse 的命令行创建可运行的 jar 文件

    我知道 eclipse 会生成一个可运行的 jar 文件 其中提取并包含在该 jar 文件中的所有库 jar 文件 从命令提示符手动创建 jar 文件时如何执行类似的操作 我需要将所有 lib jar 解压到类文件夹中吗 目前我正在使用 j
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何

随机推荐

  • Vue3+swiper5 异步请求数据后轮播图出现无分页器小圆点和无法滑动的问题,如果有默认图片则从最后一张切换到第一张时会展示默认图片

    一 场景描述 异步请求获取到11张图片 页面播图无分页器小圆点和无法正常滑动 package json devDependencies vue cli plugin babel 4 5 13 vue cli plugin router 4
  • 30,31-添加类功能视图

    这节分两部分 一 如何将代码从关卡蓝图转到类蓝图中 二 如何在类蓝图中切换灯光 1 通过判断和灯的距离切换灯光 2 通过文本提示切换灯光 先看第一个问题 如何将代码从关卡蓝图转到类蓝图中 其实这个很好理解 关卡蓝图相当于main 函数 关卡
  • Springboot + MySQL+ JPA Ⅳ find自带方法详解

    find是CRUD中的R 是使用得最多的方法 此篇先整理下自带的find方法 不需要在dao层写对应接口 后续会整理下拓展方法 一 getById 通过id进行单个查询 跟findById差不多 返回值类型不一样 service层 Tran
  • sqli-labs: Less 21-65 通关教程

    第二十一关 cookie注入 YOUR COOKIE uname RHVtYg and expires Sat 16 Jul 2016 08 32 26 注 RHVtYg 是 Dumb 经Base64加密后的值 和上关又是差不多 base6
  • python匹配ip地址

    ip地址是用3个 号作为分隔符 分割4个数字 每个数字的取值在 0 255 一般日志文件中的ip地址都是有效的ip地址 不需要我们再去验证 因此 若从日志文件中提取ip 那么可以简单写成这样 gt gt gt import re gt gt
  • unity2022.1.8之后版本的新的输入行为控制对象变化

    文章目录 unity2022 1 8之后版本的新的输入行为控制对象变化 怎么导入 如何使用 unity2022 1 8之后版本的新的输入行为控制对象变化 我们先了解大概的逻辑 我们要设置触发行为的方式并且让他和对象的行为绑定 再将行为和对象
  • A complete log of this run can be found in

    安装element ui时遇到的问题 解决方法 接下来测试一下 问题解决
  • 使用OpenCV的GrabCut算法去除图像背景

    使用OpenCV的GrabCut算法去除图像背景 图像分割是计算机视觉中的重要任务之一 它可以将图像分割成不同的区域 并对这些区域进行进一步的分析和处理 其中一种常用的图像分割方法是GrabCut算法 它是一种基于图割的迭代算法 可以有效地
  • 对象引用与对象存放的地址和区别

    在java的学习当中 很多时候并没有能很好分清把对象和对象的引用 如果没能很好认识分清这两者的关系 就可能会很难理解一些指针的移动的代码 JAVA基本类型的变量的时其变量名及值 变量名及值是两个概念 是放在方法栈中 引用类型所声明的变量 该
  • 【mySQL】C++ 操作mySQL

    目录 通过mySQL 库 简介 安装和配置 linux环境 WIN32环境 C 调用mysql 通过Mysql connector c 库 前言 Connector C 使用 3 4 静态库和动态库 动态库 创建项目和配置 代码编写 使用中
  • C51定时器与计数器(学习笔记)

    1 什么是定时器与计数器 1 定时器与计数器都是soc当中的一个内部外设 计数器顾名思义是用来计数的 就和我们的秒表一样 假如定时20秒 当我们按下秒表开始计数时 数秒的过程就是计数 计时器 当秒表数到20时 定时器 就自动暂停 2 工作模
  • Redis系列--新数据类型详解

    一 Bitmaps 一 简介 计算机存储数据时 都是以二进制位表示 Redis提供了Bitmaps这个 数据类型 可以实现对位的操作 1 Bitmaps本身不是一种数据类型 实际上它就是字符串 key value 但是它可以对字符串的位进行
  • matlab 将深度图像转换为点云

    目录 一 功能概述 1 算法概述 2 主要函数 3 参考文献 二 代码实现 三 结果展示 1 深度图像 2 彩色图像 3 生成点云 四 参考链接 一 功能概述 1 算法概述 深度相机能够获取物体到相机的距离信息 可以根据距离信息 计算像素的
  • 递归调用之迷宫问题

    我们假设数字1表示墙 数字0表示可以走 那么就可以用一个二维数组来模拟一个迷宫 并可以用递归调用来求解路线 下面的代码是用Java模拟的一个迷宫 代码很简单 public class MiGong public static void ma
  • button标签的onclick事件

    1 普通的button标签定义onclick事件 1 无参
  • delphi 10.3 FastReport 多设备跨平台 打印之解决方法

    以下能WINDOWS10 DELPHI 10 3 FastReport6 0上顺利通过 基础知识点 需掌握 https blog csdn net qq 25439957 article details 87110559 FastRepor
  • Java天地 学习探讨Java Spring中使用classpath加载配置文件浅析

    Spring中使用classpath加载配置文件浅析 如果您感觉可以请提出您宝贵的意见 在应用Spring的工程中 使用class path的方式加载配置文件应该是最常用的做法 然而对大部分人来说 刚开始使用Spring时 几乎都碰到过加载
  • 免费搜索引擎登录入口

    百度免费登录入口 http www baidu com search url submit htm 新浪免费登录入口 http bizsite sina com cn newbizsite docc index 2jifu 09 htm 搜
  • Vue中@input用法以及v-model示例

  • 外部局域网直接访问WSL2

    1 开启hyper v 1 首先 进入控制面板 程序 启用或关闭windows功能 勾选hyper v 确认后重启电脑 2 打开 Windows PowerShell 输入 systeminfo 命令 能够看到出现了很多处理器的信息 最末尾