000 Linux个性操作记录——存储焦虑时期如何wsl2中配置安全的软件优化操作

第一优先级:必做核心性能优化(立竿见影解决卡顿)
  1. 内存 & CPU 专属优化(适配编译开发)在 Windows 用户目录C:\Users\你的用户名下创建.wslconfig文件,粘贴以下内容,保存后在 PowerShell 执行wsl --shutdown重启 WSL2 生效:

    复制代码
    [wsl2]
    # 内存配置:根据你的电脑调整,24GB内存设10G,16GB内存设6G,预留足够资源给Windows
    memory=7GB
    # CPU核心数,调用i5-12500全核心6,最大化编译速度
    processors=6
    # 缩小swap(虚拟内存,MB级速度极慢),优先用物理内存,减少硬盘IO卡顿
    swap=1GB
    # 自动回收闲置内存,解决WSL2内存只涨不跌
    pageReporting=true
    # 关闭GUI,嵌入式开发无需GUI,关闭后减少资源占用;用UI的场景app?QT设计?
    guiApplications=false
    # 关闭嵌套虚拟化(WSL2中开虚拟机),提升稳定性
    nestedVirtualization=false
    # 内核参数:多个参数用空格分隔,注释单独一行
    # 500=5秒,时间到后临时数据等待写入磁盘
    # 1000=10秒,主动写入磁盘
    kernelCommandLine=sysctl.vm.dirty_expire_centisecs=500 sysctl.vm.dirty_writeback_centisecs=1000
  2. 磁盘 IO 性能优化(编译大量小文件的核心瓶颈)

    bash 复制代码
    # WSL中确定路径
    luo@Luo1469:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    none            3.4G     0  3.4G   0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
    none            3.4G  4.0K  3.4G   1% /mnt/wsl
    drivers         931G  233G  698G  26% /usr/lib/wsl/drivers
    /dev/sdd       1007G   25G  931G   3% /
    none            3.4G     0  3.4G   0% /usr/lib/wsl/lib
    rootfs          3.4G  2.7M  3.4G   1% /init
    none            3.4G  496K  3.4G   1% /run
    none            3.4G     0  3.4G   0% /run/lock
    none            3.4G     0  3.4G   0% /run/shm
    C:\             931G  233G  698G  26% /mnt/c
    D:\             508G  287G  222G  57% /mnt/d
    E:\             424G  253G  172G  60% /mnt/e
    tmpfs           694M   16K  694M   1% /run/user/1000
    • 硬性前提:必须把 WSL2 的ext4.vhdx虚拟磁盘文件放在固态硬盘上,绝对不能放在机械硬盘;

    • 关闭 Windows Defender 实时扫描:打开 Windows 安全中心→病毒和威胁防护→管理设置→添加排除项,把ext4.vhdx所在文件夹、wsl.exe进程加入排除列表,IO 性能直接提升 30% 以上;

    • 定期收缩虚拟磁盘(WSL 官方最新、最简单、最安全的方法):

      对比维度 普通模式(动态非稀疏 VHDX,WSL 默认) 稀疏模式(Sparse VHDX)
      核心特性 动态扩展的虚拟磁盘,是微软最成熟的经典方案 给动态磁盘加了「自动空间回收」能力的进阶模式
      C 盘空间占用逻辑 你在 WSL 里存多少文件,文件就占多大 C 盘;但删除文件后,占用的 C 盘空间不会自动释放,文件体积只涨不跌 你在 WSL 里存文件,占用 C 盘同步上涨;删除文件后,Windows 会自动把闲置的空间还给 C 盘,文件体积会自动缩小
      闲置空间回收 完全手动:必须先关 WSL,再执行Optimize-VHD命令,才能把多余空间收回来 全自动:执行一次fstrim后,系统后台自动回收,不用你再敲任何命令
      性能与稳定性 拉满:经过十几年验证,无兼容性问题,无数据风险,读写性能无损耗 优秀:日常使用感知不到性能差异,仅在极端高负载写入场景有极微弱损耗;微软标注了「潜在数据风险」(实际概率极低,只是官方免责)
      兼容性 完美:支持所有 Windows 磁盘工具、Hyper-V 命令,不会出现命令报错 有限制:不支持Optimize-VHD压缩命令,部分老版本 Windows / 磁盘工具不识别,会出现你之前遇到的报错
      维护成本 高:C 盘被占满了,就得手动执行一次压缩流程 极低:一次开启,终身自动回收,不用再管
      bash 复制代码
      # 在 Ubuntu/WSL 终端里执行
      sudo fstrim -v /        
      #/: 981.5 GiB (1053907185664 bytes) trimmed
      # 关闭 WSL(Windows PowerShell 里执行)
      wsl --shutdown
      # PS C:\Users\27969> WSL -l
      # 适用于 Linux 的 Windows 子系统分发:
      # Ubuntu-24.04 (默认值)
      # 先确保为普通模式
      wsl --manage Ubuntu-24.04 --set-sparse true --allow-unsafe
      # 手动压缩,普通模式一般是默认方案,最稳定,兼容性最好
      Optimize-VHD -Path "C:\Users\27969\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode Full
      # 开启稀疏模式,懒人必备,自动清理
      wsl --manage Ubuntu-24.04 --set-sparse true --allow-unsafe    # 新版本可能可用这个 wsl --compact Ubuntu-24.04
      # 正在进行转换,这可能需要几分钟时间。
      # 操作成功完成。
  3. 编译场景专属优化(嵌入式开发必备)

    • 更换清华国内源,解决更新、安装软件卡顿:

      复制代码
      # 手动替换
      sudo vim /etc/apt/sources.list   # 或者 sudo nano /etc/apt/sources.list
      
      # 一键替换
      sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
      sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
      sudo apt update && sudo apt upgrade -y
      # 换了也就300k左右,感觉一般
    • 一键安装嵌入式开发全量工具链:

      复制代码
      sudo apt install build-essential gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf gdb-multiarch openocd git cmake ninja-build -y
    • 编译时启用多核加速:make -j$(nproc),自动调用所有 CPU 核心,编译速度提升 3-5 倍。

第二优先级:网络优化(解决 SSH、git 拉取、开发板调试卡顿)
  1. 固定 WSL2 IP 地址,避免每次重启 IP 变化,方便 SSH 连接、开发板调试;

  2. 配置 git 国内镜像,解决 github 拉取代码慢:

    复制代码
    git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com"
  3. 关闭 IPv6(无需求则关),编辑 Ubuntu 内/etc/gai.conf,(sudo vim /etc/gai.conf)
    去掉precedence ::ffff:0:0/96 100的注释,解决网络解析卡顿。(去掉即优先使用IPv4)



以下感觉至少短期不需要



第三优先级:安全配置加固(开发环境必备,避免权限泄露、恶意代码风险)
  1. 基础权限加固
    • 禁止 root 用户 SSH 登录,仅给普通用户开放 sudo 权限:

      复制代码
      # 创建普通用户(若未创建)
      sudo adduser 你的用户名
      sudo usermod -aG sudo 你的用户名
      # 编辑SSH配置
      sudo nano /etc/ssh/sshd_config
      # 将PermitRootLogin yes改为PermitRootLogin no,保存退出
      sudo systemctl restart sshd
    • 配置 sudo 免密(开发便捷 + 安全):执行sudo visudo,在末尾添加你的用户名 ALL=(ALL) NOPASSWD: ALL,保存退出。

  2. 系统安全防护
    • 安装 ufw 防火墙,仅开放必要端口:

      复制代码
      sudo apt install ufw -y
      sudo ufw default deny incoming
      sudo ufw default allow outgoing
      sudo ufw allow 22/tcp # 仅开放SSH端口,按需添加其他开发端口
      sudo ufw enable
    • 定期更新系统修复漏洞:每周执行sudo apt update && sudo apt upgrade -y

    • 禁用不必要的开机服务,减少攻击面,比如sudo systemctl disable --now telnetd

  3. 开发环境专属安全
    • 用 SSH 密钥替代密码登录服务器、git 平台,生成命令:ssh-keygen -t ed25519,私钥设置权限chmod 600 ~/.ssh/id_ed25519
    • 第三方开源代码单独存放,禁止在 root 权限下直接运行未知代码;
    • 定期备份开发环境:PowerShell 执行wsl --export Ubuntu 备份路径\Ubuntu2404_Backup.tar,避免系统崩溃丢失文件。
  4. 跨系统安全加固
    • 无需求则禁用 WSL2 运行 Windows 程序:在.wslconfig中添加interop.enabled=false,避免恶意代码跨系统执行;
    • 限制 Windows 文件访问权限:在.wslconfig中添加options=metadata,umask=0077,收紧跨系统文件权限。
相关推荐
青Cheng序员石头几秒前
AI Agent 真正危险的,不只是不靠谱的模型,还有被忽视的技能执行层
人工智能·安全·agent
北山有鸟3 分钟前
解析 Linux 内核驱动中的“换行美学”
linux·运维·服务器
Austindatabases7 分钟前
阿里云MongoDB 部署安全吗? 多可用区怎么搞?
数据库·安全·mongodb·阿里云·云计算
unDl IONA11 分钟前
Linux安装RabbitMQ
linux·运维·rabbitmq
米高梅狮子12 分钟前
Ubuntu和Containerd
linux·运维·ubuntu
雨奔15 分钟前
Kubernetes Master-Node 通信全解析:路径、安全与配置
安全·容器·kubernetes
片酷16 分钟前
【IsaacLab报错】C++ 标准库版本过低
linux·运维·服务器
小宋00119 分钟前
Ubuntu 22.04 + ROS 2 Humble 下 SLAM 建图 + 导航(Nav2 + slam_toolbox) 的完整教程
linux·ubuntu·机器人
Bypass--20 分钟前
当 AI 开始干活,安全如何破局
人工智能·安全·chatgpt
星幻元宇VR25 分钟前
VR科普行走平台:沉浸式科普教育新趋势
学习·安全·生活·vr