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,收紧跨系统文件权限。
相关推荐
运维行者_2 小时前
金融和电商行业如何使用网络监控保障业务稳定?
开发语言·网络·人工智能·安全·web安全·机器学习·运维开发
Luna-player2 小时前
Linux利用三块新硬盘在Linux中构建LVM
linux
星幻元宇VR2 小时前
VR科普蛋椅|打造沉浸式科普教育新体验
科技·安全·vr
西杭2 小时前
Claude读论文系列(五)
安全
重生的黑客2 小时前
Linux初识
linux·运维·服务器
evo-master2 小时前
linux环境准备和理解
linux·运维·服务器
JiMoKuangXiangQu2 小时前
Linux 内存管理:LRU 链表 (1)
linux·内存管理·lru
Zhao136824553912 小时前
DP108B完全替代兼容进口的CM108B,USB 音频单芯片
linux·运维·音视频
攻城狮在此2 小时前
ping命令中TTL值是什么?详解与用法
linux·网络·windows