惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
有赞技术团队
有赞技术团队
博客园 - 司徒正美
量子位
N
News and Events Feed by Topic
T
Threatpost
Last Week in AI
Last Week in AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CERT Recently Published Vulnerability Notes
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
Intezer
人人都是产品经理
人人都是产品经理
T
Tenable Blog
IT之家
IT之家
雷峰网
雷峰网
腾讯CDC
博客园 - 聂微东
V
Visual Studio Blog
S
SegmentFault 最新的问题
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
N
Netflix TechBlog - Medium
J
Java Code Geeks
宝玉的分享
宝玉的分享
F
Full Disclosure
WordPress大学
WordPress大学
A
Arctic Wolf
小众软件
小众软件
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
AI
AI
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
N
News | PayPal Newsroom
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org

静观小窗

一个有趣的项目背后的难点--MC的3D皮肤生成器 power by Qwen 博客俱乐部,最有社区氛围的中文博客联盟 文化决定语言,语言决定思想:我们赖以生存的隐喻(读后感) 我开发了一款博客图片压缩工具,支持PicGo一键压缩上传 寻找网络友邻 整合全网102个二次元动漫随机图片API接口,2025年十月最新 宋代的遗憾 搭建个人起始网站,便于控制浏览器使用和时间规划 Google Gemini CLI 免费安装配置指南:支持Gemini 2.5 Pro (2025最新) NixOS深度评测:一个六年Linux用户的初体验,为何惊艳的设计哲学仍让我望而却步 我的NS2使用体验记录,为什么因为马里奥派对空前盛会入坑 关于秦制的个人理解,为什么秦制在我看来是功过鲜明的必然 拜访一个人,在千年之后 Vercel/Netlify国内加速:EdgeOne免费CDN优选IP实战指南 C/C++程序员必看:JavaScript核心概念深度解析(动态类型、原型链、事件循环) C/C++程序员转向JavaScript:一份超详细的语法映射与避坑指南 从C++到JS:函数、this与闭包的核心差异与实践指南 VSCode配置JavaScript开发环境:Node.js安装与调试指南 C/C++程序员必看:JavaScript变量与作用域深度解析(从var到const) 博客迁移实战:从WordPress到Next.js的零成本高性能之路 《原则》读书笔记:如何将瑞·达利欧的智慧应用到日常 MATLAB入门教程:面向C++/OIer的数据可视化与科学计算指南 LaTeX公式与三线表教程:从入门到精通的排版指南 Hyprland 安装与配置超详细教程 (Arch Linux):含 Waybar 及一键脚本 Linux文件系统与磁盘分区:从入门到精通的实战指南 Guide to Installing a USB WiFi Adapter on OpenWrt (LuCI) 阿里云CentOS 9服务器从零到一:安全配置与宝塔面板安装指南 WordPress个人博客搭建指南:从服务器到主题美化全攻略 Arch/Windows双系统终极指南:无缝鼠标共享与显卡配置 NAS怎么选?黑群晖、CentOS自建与绿联NAS深度对比与选型指南 Arch Linux 安装 KDE Plasma 6:一篇来自老用户的深度评测(2025版) 我的第一份Ubuntu安装与美化笔记(新手超详细避坑指南)
软路由远程访问提速:SMB压缩与50M上行优化实战
间窗 (Vindo) · 2025-08-17 · via 静观小窗

流畅的远程办公和文件访问是许多玩家折腾软路由的终极目标。但当家庭宽带只有50Mbps上行时,直接通过SMB/NFS进行远程挂载的体验往往不尽人意。本文是我在这一限制下,通过对网络协议、存储端和传输层进行立体式优化,最终实现NAS提速的实战记录。

一个展示网络架构优化的拓扑图,中心是软路由

核心优化:榨干50M上行带宽

我们的核心目标是在有限的带宽下,最大化远程挂载的吞吐量和响应速度。我采用了“协议调优 + 存储提速 + 传输压缩”的三位一体方案。

1. 网络协议栈调优 (BBR 算法)

Google BBR 是一种现代化的TCP拥塞控制算法,在高延迟、有一定丢包的互联网环境下,它通常能比传统算法获得更高的有效吞吐量。对于我们的软路由来说,这是最基础的优化。

  • 在基于 OpenWrt 的软路由中启用 BBR:

    # 登录 SSH
    
    # 1. 检查内核是否支持 BBR
    sysctl net.ipv4.tcp_available_congestion_control
    # 如果输出中包含 bbr,则支持
    
    # 2. 编辑 sysctl 配置文件
    vi /etc/sysctl.conf
    
    # 3. 在文件末尾添加以下行
    net.core.default_qdisc=fq
    net.ipv4.tcp_congestion_control=bbr
    
    # 4. 保存退出后,应用配置
    sysctl -p
    

我的建议: 启用BBR后,务必使用 iperf3 在远程和本地之间进行实际测速,对比启用前后的带宽、延迟和丢包率。只有数据才能证明BBR对你的网络环境是正优化。详情可参考 BBR的官方文档

2. 存储设备性能优化 (NAS 提速)

我使用的NAS是群晖 DS920+,针对它的优化是实现NAS提速的关键一环。

  • RAID 策略: 对于需要高读写性能的目录(如视频剪辑素材),我采用 RAID 0;对于需要数据冗余安全的文档,则采用 RAID 5
  • 文件系统与缓存: 我将文件系统格式化为 Btrfs,并加装了两条 NVMe SSD 作为元数据缓存。这将频繁访问的小文件索引和元数据放在了高速SSD上,极大地降低了机械硬盘的寻道时间,对大量零散文件的远程挂载场景,效果尤其明显。

3. 传输层数据压缩 (SMB 压缩)

这是本次优化中最具性价比的一步。通过启用 SMB压缩,可以在数据离开软路由前进行实时压缩,有效减少网络传输的数据量,尤其对文本、代码等可压缩比高的文件效果显著。

  • 启用 Samba 协议压缩:

    如果你的 Samba 版本支持(Samba 4.1.0+),可以在软路由的 /etc/samba/smb.conf 文件中为共享目录添加 smb compression = lz4。LZ4是一种极快的压缩算法,对CPU的额外开销很小。

    [global]
    ...
    smb encrypt = required
    
    [YourShare]
    path = /mnt/data
    ...
    smb compression = lz4
    

注意: SMB压缩 需要客户端和服务端同时支持。目前 Windows 11 已原生支持,是绝佳的搭配。

附加优化:智能电源与资源管理

在解决了核心的性能问题后,我还通过软路由对内网设备进行了电源和资源管理,以降低能耗和硬件损耗。

技术实现:

  1. 网络唤醒 (Wake-on-LAN, WOL): 通过在软路由上安装 etherwake,可以按需唤醒处于关机或休眠状态的PC或NAS。

  2. 定时任务 (Cron Job): 设置工作日PC自动开关机,或深夜NAS自动休眠。

    # 每天早上 8:55 唤醒办公电脑 (MAC: 00:1A:2B:3C:4D:5E)
    55 8 * * 1-5 /usr/bin/etherwake 00:1A:2B:3C:4D:5E
    
  3. 闲置资源自动回收: 通过在软路由上部署一个Python脚本,监控特定设备的网络流量,当设备持续闲置超过阈值(如30分钟)后,自动执行关机命令。

    # 这是一个简化版的概念脚本
    import time, os
    from scapy.all import sniff
    
    IDLE_THRESHOLD_MINUTES = 30
    TARGET_IP = "192.168.1.100"
    last_activity_time = time.time()
    
    def packet_callback(packet):
        global last_activity_time
        if packet.haslayer('IP') and (packet['IP'].src == TARGET_IP or packet['IP'].dst == TARGET_IP):
            last_activity_time = time.time()
    
    def monitor():
        sniff(filter=f"host {TARGET_IP}", prn=packet_callback, store=0, stop_filter=lambda p: False)
        while True:
            if (time.time() - last_activity_time) / 60 > IDLE_THRESHOLD_MINUTES:
                # os.system("ssh user@192.168.1.100 'sudo poweroff'")
                break
            time.sleep(60)
    

总结与注意事项

  • 实测为王: 任何优化(BBR, SMB压缩)都必须基于 iperf3 等工具的实际测试结果来决策,切勿盲从。
  • 安全第一: 远程访问务必配合强密码、二次验证和访问控制策略。
  • 分步实施: 任何变更都应逐项进行,并观察系统资源变化,以便在出现问题时快速定位和回退。