给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

2023-11-19

我们知道wsl2是基于hyper-v的虚拟机,每次重新启动的时候,都会重新拉一个新的hyper-v虚拟机实例,然后虚拟网卡的IP是dhcp随机分配的,如果作为开发系统用,就会比较烦每次都要换一个IP。

有人提供了个脚本,他写了个bat脚本在windows里面把wsl拉起来,同时用root权限给wsl实例分配了一个固定的IP,然后在windows宿主分配了一个同网段的IP,实现了固定IP访问wsl。 这个脚本我研究了一下,在wsl拉起来的时候,可以顺便把需要启动的服务,比如docker拉起来,这样同时也解决了wsl不支持systemd服务自启动问题。

@echo off
setlocal enabledelayedexpansion

:: 重新拉起虚拟机,并且用root身份,启动ssh服务和docker服务
wsl -u root service docker start | findstr "Starting Docker" > nul
if !errorlevel! equ 0 (
    echo docker start success
    :: 设置wsl2虚拟机ubuntu的ip
    wsl -u root ip addr | findstr "192.168.10.101" > nul
    if !errorlevel! equ 0 (
        echo wsl ip has set
    ) else (
        :: 没有的话给安排上
        wsl -u root ip addr add 192.168.10.101/24 broadcast 192.168.10.0 dev eth0 label eth0:1
        echo set wsl ip success: 192.168.10.101
    )


    :: 设置windows宿主机网卡vEthernet (WSL)的IP,与虚拟机同一网段
    ipconfig | findstr "192.168.0.102" > nul
    if !errorlevel! equ 0 (
        echo windows ip has set
    ) else (
        netsh interface ip add address "vEthernet (WSL)" 192.168.10.102 255.255.255.0
        echo set windows ip success: 192.168.10.102
    )
)
pause

右键点击脚本,”以管理员身份运行“,就能完成设置。这样,在WSL虚拟机ubuntu中,网卡eth0有两个IP,其中172.19.62.245用于和互联网通信,192.168.10.101用于和windows宿主机通信。

# ip a

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:9e:9a:db brd ff:ff:ff:ff:ff:ff
    inet 172.19.62.245/20 brd 172.19.63.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.10.101/24 brd 192.168.10.0 scope global eth0:1
       valid_lft forever preferred_lft forever
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通 的相关文章

  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 在 Windows 上通过 ctypes 将文件描述符传递给 C 库函数

    我试图通过 ctypes 将文件描述符传递给在 fd 上执行写入的 C 函数 在linux上它可以工作 在 Windows 上则不然 我不明白为什么 我没有 Windows 开发人员的经验 C func signature void fun
  • Windows:使用 CMD(或 Java)从非特权运行特权命令

    我将有一个以管理员身份运行并侦听端口的服务 我的 GUI 程序将与管理员服务对话以获取需要管理员权限的项目 如果该服务尚未运行 我需要启动它 如何让我的 GUI 程序以管理员身份运行命令 我假设用户会被询问是否要继续 我希望我可以在 CMD
  • Ubuntu 上的 Vim:文本渲染错误,奇怪地重复和消失

    不久前我在 ubuntu 12 04 上安装了 vim 有时 当我在代码上运行光标 使用键盘 而不是鼠标 时 文本会消失 就好像渲染字符时出现问题一样 当我再次运行光标时 它通常会重新出现 这似乎是随机发生的 但通常足以让人恼火 为了更清楚
  • 批处理脚本 - IF EXIST 复制到 %localappdata% 错误

    我似乎被批处理脚本困住了 需要一些帮助 基本上我需要检查文件是否存在于文件夹中 localappdata 如果确实如此 则覆盖该文件 如果没有放置在不同的位置 那么目前它的内容如下 IF EXIST localappdata foldern
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 使用 Windows 套接字的 WriteFile 返回无效参数错误

    我已经在 Windows 套接字上苦苦挣扎了两天 无法像在 Linux 中那样只使用写入套接字 我想编写自己的 shellcode 并且正在研究如何将 stdout stdin 重定向到套接字句柄 这就是我的演奏的来源 如果有必要 我使用
  • 运行“npm install”:Node-gyp 错误 - MSBUILD.exe 失败,退出代码:1

    我在跑npm install在 Windows 上安装我的项目中的所有软件包 然后我收到有关 MSBUILD exe 的错误 gyp ERR stack Error C Program Files x86 Microsoft Visual
  • 使用 Windows 网络共享目录时 Hg 存储库损坏

    我希望我能在这里得到一些帮助 因为 SO UX 比 Mercurial 邮件列表更好 多年来我一直在家里愉快地使用 Mercurial 我还将它与 Bitbucket Cloud 一起用于一些更严肃 但仍然是爱好 的项目 去年 我将我的团队
  • PC 相当于 Coda 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Docker 警告:无法从守护进程获取默认注册表端点

    在 Windows 10 上 当我调用 docker 命令时 docker pull mongo windowsservercore 我得到以下输出 Warning failed to get default registry endpoi
  • Vagrant 错误:无法挂载 VirtualBox 共享文件夹(Guest Additions、vboxsf)

    问题 我在 Windows 10 上安装了 Vagrant 这样我就可以在虚拟机中创建个人本地开发环境 我读到的有关 Vagrant 的所有内容都表明我什至可以启动多个系统并通过 NAT 端口转发测试它们之间的通信 但首先 我只想在对其余部
  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • .NET 中安全身份的本地化

    我想在 NET 中实现一个用于服务 客户端通信的命名管道 并遇到了这段代码 http code msdn microsoft com windowsdesktop CSNamedPipeCommunication 33b2485c view
  • MD 和 MKDIR 批处理命令有什么区别?

    这两个命令都会创建文件夹 我read http www computerhope com mdhlp htmMKDIR 甚至可以创建子文件夹 这只是区别吗 为什么有两个命令做同样的事情 我应该使用哪一个 除了 npocmaka 的answe
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 推送更改到 Git 不起作用

    每次我想要提交命令 git push heroku master 时 系统都会要求我在 PowerShell 中输入凭据 当我输入 heroku 凭据 默认情况下连接到 git 时 我收到错误消息 但是 当我输入我的主目录中的 netrc

随机推荐

  • 认识 maven_我的总结

    认识 maven maven Apache Maven 是一种用于软件项目管理工具 基于 Project Object Model POM 用来管理项目的构建 汇报及文档生成等功能 软件开发 开发 gt 测试 gt 安装与部署 开发阶段 依
  • Apache Flink Checkpoint 应用实践

    Checkpoint 与 state 的关系 Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作 下图可以有一个对 Checkpoint 的直观感受 红框里面可以看到一共触发了 569K 次 Checkpoint
  • STM32_USB之完全双缓存(包括发送和接收) -- 更新中断处理

    STM32的USB双缓存接收代码其实已经可以在ST提供的USB示例代码中找到 只要稍加修改 就可以得到将近1MB的数据接收性能 虽然Datasheet中说明USB发送也同样可以使用双缓存 但并没有示例代码 由于为了测试性能 自己做了一个 测
  • R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据

    最近我们被客户要求撰写关于可视化的研究报告 包括一些图形和统计输出 漂亮的圆形图 我不确定对数据分析师本身是否有额外的好处 但如果能吸引决策者的注意 那对我来说就是额外的价值 然而 用coord polar 或偶尔发现的ggplot2中的c
  • Lua的线程和状态 及协程

    luaL loadstring L return coroutine create function end nCallResult lua pcall L 0 1 0 创建一个协程和lua newthread创建一个线程一样 不过这个创建
  • 关于mysql group_concat不得不说的事

    mysql中 group concat函数将group by产生的同一个分组中的值连接起来 返回一个字符串结果 当查询的数据过多时 group concat超出了默认值1024个字符 超过就会截断 导致group concat查询出来的数据
  • ppt怎么压缩文件大小?学会这几种方法

    ppt 用office PowerPoint 制作的幻灯片 用于编辑 播放 各种操作 简单易学 在实际的生活和办公过程中 ppt文件的应用范围非常广泛 同样的 ppt也是非常重要的工具之一 很多时候 我们需要对ppt文件进行压缩 从而满足p
  • 原理图中的电阻旁边有个”NC“,什么意思?

    NC表示此处空贴 即此处不贴任何电子器件 如果安装的话 电路会有另外的功能 或许在性能上会有变化 常用于电路板贴装技术中 电路板贴装是回流焊中的一种工艺流程 回流焊也叫再流焊 是伴随微型化电子产品的出现而发展起来的焊接技术 主要应用于各类表
  • leetcode-无重复元素的最长子串

    给定一个字符串 请你找出其中不含有重复字符的最长子串的长度 例如对于字符串 str adfhdsla 它的无重复字符的最长子串为 sub adfhdsl 很显然 首先要有一个函数用以判断当前的子串中有无重复元素 然后寻找子串的工作就要用这个
  • 闲云:unity中不能识别monobehevior关键字的问题

    有时候一些小问题很恼人 如unity中新建脚本后不能识别monobehevior关键字 在vs2017右侧的解决方案中点击刷新图标 或者把不能识别的脚本添加到vs2017右侧的解决方案中的Assets中即可 还不行就点击 排除 然后再 添加
  • QApplication和QCoreApplication

    一 QCoreApplication用于non GUI的应用程序 不需要依赖QtGui库 QApplication用于包含GUI的应用程序 需要用到QtGui库 Qt是一个开源的C 库 主要用来开发GUI程序 但同时 它也支持控制台程序的开
  • log4j使用说明

    查阅阿里的jva开发手册 我们发现在打印日志的时候有一下几条是强制的 1 应用中不可直接使用日志系统 Log4j Logback 中的API 而应依赖使用日志框架SLF4J中的API 使用门面模式的日志框架 有利于维护和各个类的日志处理方式
  • 前端自测.

    交互 宽度1200px 表单校验 长度 敏感词汇 初始化 loading 结果 空 表单重复提交 loading 请求拦截 限流 数字 大数据 千分位 文本长度 省略号 数据查询结果校验 按条件查询结果是否正确 空数据传参 xx 参数头尾有
  • go struct{} 空结构体的特点和作用

    空结构体的特点和作用 参考代码 package main import fmt unsafe func main empStruct 空结构体的实例和作用 func empStruct 空结构体的特点 1 不占用内存 2 地址不变 var
  • Input

    Unity3d的所有输入 包括键盘鼠标和智能手机触摸等都是通过这一个类来完成 Input类 见API http docs unity3d com ScriptReference Input html 输入Input类使用 建议在Updata
  • Minikube 架构及启动流程剖析

    原文作者 wzqnls 编辑 夏天 对于要学习 Kubernetes 或者需要本地开发的开发人员来说 Minikube 是一个不错的选择 通过使用 Minikube 这个工具 我们可以非常快捷地在本地部署一套单节点的 Kubernetes
  • 【Linux】线程安全

    文章目录 1 线程互斥 1 1 线程间互斥的相关概念 1 2互斥量 1 3互斥量接口 1 4互斥量实现原理 2 可重入VS线程安全 3 常见锁概念 3 1死锁 3 2常见死锁情况 3 2 1情况一 忘记释放锁 3 2 2情况二 线程重复申请
  • [机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”

    目录 前言 第1章 生命是利益 1 1 什么是利益 1 2 不同时期 利益展现不同的形态 1 3 利益是维系社会运行的根本力量 1 4 利益是中性词 第2章 共享利益 2 1 共享利益的形态 2 2 显性的共享利益 物质利益 2 3 利益的
  • 分享一个嘉立创封装库(内含AD和PADS两种格式)

    一直以来做封装都是令我头疼的问题 偶然发现嘉立创的封装库 真的非常好用 而且封装做得非常漂亮 这个封装做得非常好 我也打过几款板子出来 手工焊接起来也非常好 真的是非常好的一个封装库 封装库里面包含了AD Protel99和PADS三种格式
  • 给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

    我们知道wsl2是基于hyper v的虚拟机 每次重新启动的时候 都会重新拉一个新的hyper v虚拟机实例 然后虚拟网卡的IP是dhcp随机分配的 如果作为开发系统用 就会比较烦每次都要换一个IP 有人提供了个脚本 他写了个bat脚本在w