WSL 环境桥接与雷达通信配置笔记

news2025/3/24 23:58:31

作者: DWDROME

维护时间: 2025-03-22

参考文章:Windows子系统(WSL)通过桥接网络实现被外部局域网主机直接访问

WSL 环境桥接与雷达通信配置笔记

环境说明

  • Windows 11 专业版(启用 Hyper-V)
  • WSL2 Ubuntu 20.04
  • 物理网线(连接 Livox 雷达)
  • WSL 使用桥接方式访问物理网段,设置静态 IP 与雷达同网段

实现方法

思路就是将 WSL2 自建的虚拟 NAT 网络桥接到 Windows 主机网卡(以太网 2)上,再通过脚本为 WSL 配置静态 IP,从而实现与雷达设备通信。

1、开启 Hyper-V

桥接功能依赖 Hyper-V 组件,仅在 Windows 10/11 专业版中提供。开启方法如下:

  1. 打开控制面板 → 程序 → 启用或关闭 Windows 功能;
  2. 勾选 Hyper-V 相关项;
  3. 重启电脑生效。

2、桥接网络

WSL2 默认采用 NAT 网络,不利于局域网通信,需将其桥接到物理网卡(如以太网 2)。

操作步骤:

  1. 启动一次 wsl,确保 Hyper-V 为其创建虚拟交换机;
  2. 管理员身份打开 PowerShell,执行 Get-NetAdapter 查出网卡名称;
  3. 使用以下命令桥接网卡:
Set-VMSwitch "WSL (Hyper-V firewall)" -NetAdapterName "以太网 2"

3、手动修改 WSL 网络

进入 WSL,配置 IP 与路由,保持与雷达在同一网段:

ip addr del ...
ip addr add ...
ip route add ...
nano /etc/resolv.conf

若步骤繁琐,可参考下方自动脚本配置。

4、一键桥接脚本说明

为了简化配置,建议编脚本:

(1)WSL 网络配置脚本 set_eth0.sh

作用:在 WSL 内配置 eth0 的 IP、路由和 DNS。

内容如下(请自行填写):

#!/bin/bash
# 设置 eth0 的静态 IP 以连接 Livox 雷达

new_ip=192.168.1.50
brd=192.168.1.255
gateway=192.168.1.1
nameserver=192.168.1.1
net_dev=eth0

# 获取当前 IP
current_ip=$(ip addr show $net_dev | grep 'inet\b' | awk '{print $2}' | head -n 1)

# 删除旧 IP(如果存在)
if [ -n "$current_ip" ]; then
    echo "检测到当前 IP 为 $current_ip,正在删除..."
    echo "YourPassword" | sudo -S ip addr del "$current_ip" dev $net_dev
else
    echo "未检测到已有 IP,跳过删除。"
fi

# 添加新 IP 和网关
sudo ip addr add $new_ip/24 broadcast $brd dev $net_dev
sudo ip route add 0.0.0.0/0 via $gateway dev $net_dev

# 设置 DNS
sudo sed -i "\$c nameserver $nameserver" /etc/resolv.conf


(2)PowerShell 桥接脚本 wsl-bridge-on.ps1

作用:以管理员权限运行,桥接虚拟交换机,并调用 WSL 中的配置脚本。

内容如下(请自行填写):

# wsl-bridge-on.ps1
# 自动桥接 WSL 到物理网卡(以太网 2)并配置 WSL 静态 IP
$currentWi = [Security.Principal.WindowsIdentity]::GetCurrent()
$currentWp = [Security.Principal.WindowsPrincipal]$currentWi
if (-not $currentWp.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    $boundPara = ($MyInvocation.BoundParameters.Keys | foreach { '-{0} {1}' -f $_, $MyInvocation.BoundParameters[$_] }) -join ' '
    $currentFile = $MyInvocation.MyCommand.Definition
    $fullPara = $boundPara + ' ' + $args -join ' '
    Start-Process "$psHome\pwsh.exe" -ArgumentList "$currentFile $fullPara" -verb runas
    return
}

Write-Host "`n正在检测并准备 WSL 网络..."
wsl --cd ~ -e ls

$switchName = "WSL (Hyper-V firewall)"
$netAdapter = "以太网 2"

if ((Get-VMSwitch).Name -contains $switchName) {
    Write-Host "`n检测到交换机已存在,跳过创建。"
} else {
    Write-Host "`n未检测到交换机,正在创建..."
    New-VMSwitch -Name $switchName -NetAdapterName $netAdapter -AllowManagementOS $true
}

Write-Host "`n执行桥接配置..."
Set-VMSwitch $switchName -NetAdapterName $netAdapter

Write-Host "`n正在配置 WSL 静态 IP..."
wsl bash -c "/home/dw/set_eth0.sh"

Write-Host "`ndone"
pause

(3)PowerShell 桥接脚本 wsl-bridge-off.ps1

取消桥接脚本,同时重启wsl

# 检查并以管理员身份运行 PS 并带上参数
$currentWi = [Security.Principal.WindowsIdentity]::GetCurrent()
$currentWp = [Security.Principal.WindowsPrincipal]$currentWi
if (-not $currentWp.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    $boundPara = ($MyInvocation.BoundParameters.Keys | foreach { '-{0} {1}' -f $_, $MyInvocation.BoundParameters[$_] }) -join ' '
    $currentFile = $MyInvocation.MyCommand.Definition
    $fullPara = $boundPara + ' ' + $args -join ' '
    Start-Process "$psHome\pwsh.exe" -ArgumentList "$currentFile $fullPara" -verb runas
    return
}

echo "正在解除 WSL 桥接..."
Set-VMSwitch "WSL (Hyper-V firewall)" -SwitchType Internal

echo "正在重启 WSL..."
wsl --shutdown
wsl --cd ~ -e ls

echo "`ndone"
pause

6、启用 PowerShell 脚本执行权限

默认 Windows 禁止执行 .ps1 脚本,需手动启用:

管理员 PowerShell 中执行:

Set-ExecutionPolicy RemoteSigned

输入 Y 确认。

7、使用方法

  • 执行桥接:双击 wsl-bridge-on.ps1,等待执行完成;
  • 执行取消桥接:双击 wsl-bridge-off.ps1

如需修改打开方式:右键 .ps1 → 选择 pwsh.exe 打开,并设为默认。

8、补充说明

  • 使用过程中若出现多个 vEthernet 接口,建议删除无效网卡并重建交换机;

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

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

相关文章

3DMAX曲线生成器插件CurveGenerator使用方法

1. 脚本功能简介 3DMAX曲线生成器插件CurveGenerator是一个用于 3ds Max 的样条线生成工具,用户可以通过简单的UI界面输入参数,快速生成多条样条线。每条样条线的高度值随机生成,且可以自定义以下参数: 顶点数量:每条…

六十天前端强化训练之第二十六天之Vue Router 动态路由参数大师级详解

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗,谢谢大佬! 目录 一、知识讲解 1. Vue Router 核心概念 2. 动态路由参数原理 3. 参数传递方案对比 二、核心代码示例 1. 完整路由配置 2. 参数接收组件 3. 导航操作示例 三、实现效果示…

Model Context Protocol:下一代AI系统集成范式革命

在2023年全球AI工程化报告中,开发者面临的核心痛点排名前三的分别是:模型与业务系统集成复杂度(58%)、上下文管理碎片化(42%)、工具调用标准化缺失(37%)。传统API集成模式在对接大语言模型时暴露明显短板:RESTful接口无法承载动态上下文,GraphQL缺乏工具编排能力,gR…

Java多线程与高并发专题——Future 是什么?

引入 在上一篇Callable 和 Runnable 的不同?的最后,我们有提到和 Callable 配合的有一个 Future 类,通过 Future 可以了解任务执行情况,或者取消任务的执行,还可获取任务执行的结果,这些功能都是 Runnable…

DeepSeek本地搭建

1. 软件下载安装 Miniconda Miniconda下载地址 选择对应的版本下载,此处下载如下版本 Python 3.10 conda 25.1.1 安装完成后,配置环境变量,打开cmd命令窗口验证 Python Python的版本为 3.10 PyTorch PyTorch下载地址 后面通过命令下…

维普AIGC降重方法有哪些?

在学术写作和论文创作中,重复率过高是许多人面临的一大难题。随着科技的发展,维普 AIGC 为我们提供了一系列有效的降重方法。那么,维普AIGC降重方法有哪些呢?接下来就为大家详细介绍。 语义理解与改写 维普 AIGC 具备强大的语义理…

南京审计大学:《 面向工程审计行业的DeepSeek大模型应用指南》.pdf(免费下载)

大家好,我是吾鳴。 今天吾鳴要给大家分享的是由南京审计大学出品的《面向工程审计行业的DeepSeek大模型应用指南》,这份报告与《面向审计行业DeepSeek大模型操作指南》不同,这份报告更多的讲述DeepSeek怎么与工程审计行业结合,应该…

【前端】Canvas画布实现在线的唇膏换色功能

【前端】Canvas画布实现在线的唇膏换色功能 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【前端】Canvas画布实现在线的唇膏换色功能背景概述以下是我们的实现方法!第一步 — 找…

arcgispro加载在线地图

World_Imagery (MapServer)https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer添加arcgis server WMTS 服务 by xdcxdc.at xdc的个人站点。博客请转至 http://i.xdc.at/ http://xdc.at/map/wmts 添加WMTS服务器

华为网路设备学习-16 虚拟路由器冗余协议(VRRP)

VRRP是针对干线上三层网络设备(如:路由器、防火墙等)的网络虚拟化技术,提供冗余和状态监测等功能。确保在网络中的单点故障发生时,能够快速切换到备份设备,从而保证网络通信的连续性和可靠性。‌ VRRP通过…

封装一个分割线组件

最终样式 Vue2代码 <template><div class"sep-line"><div class"sep-label"><span class"sep-box-text"><slot>{{ title }}</slot> <!-- 默认插槽内容&#xff0c;如果没有传递内容则使用title -->&…

网络HTTPS协议

Https HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是 HTTP 协议的加密版本&#xff0c;它使用 SSL/TLS 协议来加密客户端和服务器之间的通信。具体来说&#xff1a; • 加密通信&#xff1a;在用户请求访问一个 HTTPS 网站时&#xff0c;客户端&#x…

OSASIS(One-Shot Structure-Aware Stylized Image Synthesis)

文章目录 摘要abstract论文摘要方法损失函数实验结论 总结 摘要 本周阅读了一篇关于新型图像风格化的论文《One-Shot Structure-Aware Stylized Image Synthesis》&#xff0c;旨在解决现有GAN模型在风格化过程中难以保持输入图像结构的问题。通过分离图像的结构和语义信息&am…

C++学习之网盘项目单例模式

目录 1.知识点概述 2.单例介绍 3.单例饿汉模式 4.饿汉模式四个版本 5.单例类的使用 6.关于token的作用和存储 7.样式表使用方法 8.qss文件中选择器介绍 9.qss文件样式讲解和测试 10.qss美化登录界面补充 11.QHTTPMULTIPART类的使用 12.文件上传协议 13.文件上传协议…

Apache Flink技术原理深入解析:任务执行流程全景图

前言 本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 思维导图 📌 引言 Apache Flink 作为一款高性能的分布式流处理引擎,其内部执行机制精妙而复杂。本文将…

RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”

嘿&#xff0c;亲爱的算法工程师们&#xff01;今天咱们聊一聊PDF解析的那些事儿&#xff0c;简直就像是在玩一场“信息捉迷藏”游戏&#xff01;PDF文档就像是个调皮的小精灵&#xff0c;表面上看起来规规矩矩&#xff0c;但当你想要从它那里提取信息时&#xff0c;它就开始跟…

C语言【文件操作】详解中(会使用fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite函数)

引言 介绍和文件操作中文件的顺序读写相关的函数 看这篇博文前&#xff0c;希望您先仔细看一下这篇博文&#xff0c;理解一下文件指针和流的概念&#xff1a;C语言【文件操作】详解上-CSDN博客文章浏览阅读606次&#xff0c;点赞26次&#xff0c;收藏4次。先整体认识一下文件是…

GpuGeek:破解算力难题,赋能AI创新与普及

文章目录 一、引言二、填补算力资源供需缺口&#xff0c;降低使用门槛三、提升算力资源利用率&#xff0c;推动高效协作四、满足多样化需求&#xff0c;支持AI技术落地五、推动算力市场创新&#xff0c;促进生态良性发展六、助力AI人才培养&#xff0c;推动行业长远发展七、结语…

扣子平台知识库不能上传成功

扣子平台知识库不能上传成功 目录 扣子平台知识库不能上传成功查看模板复制头部到自己的excel中json数据转为excel或者csv&#xff08;一定使用excel&#xff0c;csv总是报错&#xff09; 查看模板复制头部到自己的excel中 json数据转为excel或者csv&#xff08;一定使用excel&…

JVM的组成--运行时数据区

JVM的组成 1、类加载器&#xff08;ClassLoader&#xff09; 类加载器负责将字节码文件从文件系统中加载到JVM中&#xff0c;分为&#xff1a;加载、链接&#xff08;验证、准备、解析&#xff09;、和初始化三个阶段 2、运行时数据区 运行时数据区包括&#xff1a;程序计数…