当前位置: 首页 > ai >正文

配置WSL2的Ubuntu接受外部设备访问

一、简介

        WSL2的网络模式默认是“NAT”模式,即网络地址转换模式。WSL2实例ubuntu会通过windows主机的网络简介访问互联网,同时与windows形成一个内部私有网络。这种模式下,windows主机相当于一个网关负责WSL2与外部网络的通信转发

        NAT模式的特点

        网络隔离性

        WSL2会获得一个私有IP,通常是172.X.X.X,仅能被windows主机直接访问

        外部设备无法直接访问WSL2的IP

        互联网访问

        WSL2可通过windows主机的网络正常访问互联网,无需额外配置

        Windows主机也可以直接访问WSL2

        动态IP特性

        WSL2重启后,其私有IP可能会变化,导致依赖固定IP的服务器需要重新配置。

        根据上述特性,外部设备是无法访问WSL2的IP的,但是有时候又需要外部设备访问,例如外部设备NFS到Ubuntu上。此时就需要进行特殊配置。

         操作环境如下:

        WSL2,win10版本

        ubuntu,20.04

        注:如果WSL2是win11版本,还可以使用镜像模式。但是win10版本的WSL2是不支持的

二、桥接

       配置桥接

        打开网络连接,可以看到本地网卡WSL的网卡

        按着ctrl同时选中“以太网”和wsl,然后右键,选择“桥接

        成功后,会在列表里多一个“网桥”的选项,右键“网桥”

        双击“Internet 协议版本4”,配置网络

        设置IP地址DNSIP地址要设置为与外部设备相同的网段

        强制WSL2使用网桥IP

        在windows中使用如下指令关闭WSL

wsl --shutdown

        重新启动wsl,在Ubuntu中手动配置IP,执行如下指令:

sudo ip addr flush dev eth0  # 清除原有 IP
sudo ip addr add 192.168.3.101/24 dev eth0  # 与网桥同网段
sudo ip route add default via 192.168.3.1 dev eth0  # 网关与网桥一致

        执行前的IP如下

        执行命令后

        可以看到IP已经变成我们设置的值。

        此时外部设备就已经可以ping通ubuntu了。

三、固定ubuntu IP

        WSL在每次重启后,IP都会变化,导致之前配置的ip又变回了默认值,如果想让外部设备连接就需要再执行一遍上面的步骤。

        通过脚本来自动配置。

        在ubuntu中创建一个sel_wsl_ip.sh的脚本,内容如下:

sudo ip addr flush dev eth0
sudo ip addr add 192.168.1.101/24 dev eth0  # 替换为你的目标 IP
sudo ip route add default via 192.168.1.1 dev eth0

        确定该脚本的位置。

        赋予执行权限

chmod +x set_wsl_ip.sh

        然后编辑~/.bashrc。在文件最下方添加如下指令

/home/qwer/set_wsl_ip.sh

        保存后退出。

        立即生效

source ~/.bashrc

        可以看到,脚本生效了。

        重新打开终端

        也是生效的。

http://www.xdnf.cn/news/20078.html

相关文章:

  • 课前准备--基因组(WGS/WES)联合单细胞获取突变信息
  • 分析KLA-Tencor公司膜厚THK产品
  • Python 算数运算练习题
  • 应对技术选型与技术债务以及架构设计与业务需求的关系
  • 概率与数理统计公式及结论汇总
  • 从策略到实效|Adobe Target 实战应用与成功案例
  • uni-app iOS 文件调试常见问题与解决方案:结合 itools、克魔、iMazing 的实战经验
  • 用spring框架实现简单的MVC业务
  • 远程协作下的项目失控:不是信任危机,而是感知缺失
  • 7种流行Prompt设计模式详解:适用场景与最佳实践
  • 快速、归并、堆、希尔、ArrayList排序
  • pyinstaller
  • SQL decode() 函数
  • Python爬虫实战:研究Axes Grid模块,构建旅游平台酒店数据采集和分析系统
  • VNC连接服务器实现远程桌面-针对官方给的链接已经失效问题
  • Linux 综合练习
  • LTE CA和NR CA的区别和联系
  • 第七章 Cesium 3D 粒子烟花效果案例解析:从原理到完整代码
  • CSS Position 属性
  • Pspice仿真电路:(三十六)变压器仿真
  • 本科论文抽检档案整理:Python批量文件查找、打包、改名
  • 【uniapp】打包为h5在保留头部标题的同时配置网站标题不跟随页面路由更新
  • CVPR 2025|无类别词汇的视觉-语言模型少样本学习
  • RikkaHub:安卓原生AI聊天新体验
  • 【设计模式】UML 基础教程总结(软件设计师考试重点)
  • 十一、标准化和软件知识产权基础知识
  • 认识 Flutter
  • 告别 OpenAI SDK:如何使用 Python requests 库调用大模型 API(例如百度的ernie-4.5-turbo)
  • 【Qt开发】按钮类控件(三)-> QCheckBox
  • 【完整源码+数据集+部署教程】手袋类型检测系统源码和数据集:改进yolo11-AFPN-P345