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

推荐订阅源

大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence
小众软件
小众软件
云风的 BLOG
云风的 BLOG
腾讯CDC
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
量子位
S
Secure Thoughts
G
GRAHAM CLULEY
C
CXSECURITY Database RSS Feed - CXSecurity.com
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
T
Threat Research - Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
G
Google Developers Blog
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 聂微东
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
Forbes - Security
Forbes - Security
Engineering at Meta
Engineering at Meta
S
Security Affairs
Help Net Security
Help Net Security
博客园 - 三生石上(FineUI控件)
AWS News Blog
AWS News Blog
博客园 - 叶小钗
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
Project Zero
Project Zero
H
Heimdal Security Blog
W
WeLiveSecurity
C
Check Point Blog

皓子的小站

网站字体应用之坑——font-family 篇 糟糕的 meta name="theme-color" How to Automatically Track Newly Supported ESLint Rules in Oxlint How to Gradually Migrate from ESLint to Oxlint (Without Breaking Everything) 静态资源预压缩:零运行时开销,极致节省带宽 CVE-2025-70886 Proof of Concept (PoC) | A Script to Crash Halo CMS Comment Backend 自定义网页鼠标指针——一段曲折的旅程 CVE-2025-70886 漏洞复现/PoC | 一个脚本让 Halo CMS 评论后台瘫痪 2025 年终总结 & 博客两周年 老用户专享!已有 Halo 专业版授权可免费升级商业版 自动追踪 Oxlint 对 ESLint 规则的新增支持 Halo 贡献者证书与实体周边盲盒开箱 博客评论系统指南 CDN 回源跟随配置导致登录异常问题排查 SCDN 免费赞助计划:助力高质量博客&博客圈 ESLint 到 Oxlint 渐进式迁移快速上手指南 Fixing Vite Breaking Inline JS & CSS in Thymeleaf Templates 解决 Vite 破坏 Thymeleaf 模板内联 JS & CSS 的方法 我的博客,为什么是月更? 博客俱乐部一周年纪念品开箱 网站字体加载之坑——format 篇 经历 1000000000 次 DDoS 请求攻击后,我总结了三条经验 题解分享:[AtCoder Beginner Contest 414 E] Count A%B=C 题解分享:[蓝桥杯 2025 国 Python A] 杨辉三角 P12876 FiF口语训练破解刷分教程(适用于 Windows) 不要与蠢人辩论 小心网络地雷·续篇 当心网络组织“开往”·续篇 当心网络组织“开往” 小心网络地雷 在 Halo CMS 中通过模板实现随机推荐多篇文章 回应某博客上有关“开往”组织在内部会议上对我的污蔑(上) 再遭 DDoS 攻击:CDN 流量限额拦不住请求计费飙升 2025年团体程序设计天梯赛 - Python 个人赛时暴力题解 网站流量分析工具 Umami 中国大陆合规版发布 把握当下,享受生活 Folo 认证功能反成漏洞?警惕 RSS 订阅源所有权被恶意盗取风险 在 Halo CMS 中通过模板实现随机文章跳转功能 从沉默展柜到时代回响:731部队罪证陈列馆参访手记 脚本分享:CDN 流量触顶后自动切换至 Cloudflare 官方 BUG 快薅!Halo 永久/买断用户可额外获得一份买断许可 老用户专享!已有 1Panel 永久授权/买断许可用户可再领免费买断许可证! 限时特惠!1¥ 立即解锁 1Panel 专业版全功能 61 天 混合云架构下的动态 IPv6 智能加速实践:从家庭网络到全球分发的低成本部署指南 如何用 AI 全方面辅助博客创作 - 从博文之内到博文之外 Random Number Generation and Formatting in Thymeleaf Thymeleaf 随机数生成与格式化详解 列举我维护的项目和发布的软件包 快速部署教程 - 通过 Webhook 触发邮件通知的开源自托管服务 Going Against the Grain - Four Websites That Make Your URL Longer 反其道而行 - 四个让你网址变得更长的网站 2024 年终总结 & 博客一周年 基于 OneBot API 的简易异步 QQ 群批量发消息脚本 如何快速完成中文排版优化 如何给文章分类和打标签 群规之敏感违禁词对抗 一图展示​ ​RSS3 世界 - The Open(RSS3) Universe 开源项目发到 bilibili 后可能获得的 PR C/C++:为什么 a[i][j] 等价于 *(*(a+i)+j) Fast Methods to Convert Uppercase Letters to Lowercase in C++ C++ 中快速将字符串大写字母转为小写的方法 Fixing GitHub Actions push to ghcr '403 Forbidden' error Fixing docker pull image "ghcr.io..." Unauthorized error 本站“算法题练习/题解分享”相关文章汇总 不怕流氓多,就怕流氓有文化——站长应该防范的几个问题及对应解决方法分享 题解分享:HRBUST 1132 水数 新手程序员必备的三项技能 如何快速排查插件(模组)的兼容性问题(基于二分法和分治思想) 通过 Umami 最新功能观察定时发布文章的最佳时段 踩坑分享:如何一个人搬运 126.7 斤的书坐动车 两篇文章分享:别像弱智一样提问 & 提问的智慧 论下落式音游/定轨音游中的优质粪铺(文末附铺面推荐) 为什么选择无纸化阅读?为什么买墨水屏电子书?为什么 Kindle“失败”了? 我维护的 Halo 主题,现已发布到 Halo 应用商店! OSU!Standard(osu!std)/OSU!Taiko 转 OSU!Mania 铺面转换器发布 我常用的 OSU!Mania 皮肤分享 电荷守恒辨析:为什么一个离子带多个电荷要乘上所带电荷数而不是除以所带电荷数 注意!align-items: flex-start 会导致 overflow-wrap: break-word 失效 惊人 98 元限定T恤!1Panel, Halo 开发商开启推广积分奖励活动 Minecraft Spigot Bukkit 服务器插件开发 教程收集 中文博客倡议 Windows 10 遇到“只能重装系统”但不想重装的解决方案 Windows 10 文件系统错误 -2144926975 -2147219196 修复 Windows 10 升级 Windows 11 简明教程 CSS 预处理器如何正确的复用样式(stylus 中使用 @extend 继承的坑) 请一定要回复博客下的匿名评论!对于博主和评论者有关匿名评论的倡议 一图解释单一质点运动波动图像和振动图像的关系 解决 Docker pull image "ghcr.io..." Unauthorized error 解决 GitHub Actions push to ghcr '403 Forbidden' error 解决 Umami API 更新延迟问题(如何修改开源项目代码并构建 Docker 镜像-以 Umami 为例) 在国家公祭日自动将网站变灰 中文博客圈列表 解决 Halo CMS 的 Umami Plugin CORS&CSP 跨域报错问题 Windows 创建存储池报错 无法创建池 不支持该请求 (0x00000032) Windows 显示器突然黑白 桌面突然黑白 鼠标和截图还是彩色的 通过指令过滤出正确的公网 IPv6 地址(记一次折腾 IPv6 DDNS) 我的世界免费科技地址 1.7-1.21 网站 Favicon 下载工具发布 键盘 Bios 内可用 系统内无法输入 设备管理器无黄色感叹号 设备管理器 网卡一堆黄色感叹号 例如 WAN, Miniport
锐捷校园网:网络共享与带宽叠加方案(哈理工案例)
HowieHz · 2025-09-15 · via 皓子的小站

如果你懒得折腾,在闲鱼等电商平台上搜索“校园网路由器”等关键词,花费 70~100 元左右能获得一台已经配置好还带售后服务的路由器。此外,你也可以应用社会工程学加入你所在学校的网络管理社团/和老师打好关系以绕过限制。

可选择中国移动、中国电信、中国联通的校园网套餐。首次办理需本人持身份证前往线下登记(西区为一食堂门口,蜜雪冰城隔壁)。当日 16:30 前缴费,可于当晚 22:00 前开通,否则将在次日 22:00 前开通。

我目前住在西区七公寓,宿舍提供两个网口,由锐捷 RG-MAP752(S)提供,通过产品手册可以得知其提供无线接入点(2.4G 300Mbps 和 5G 867Mbps)及 2 个百兆下联口。

由产品手册得知通过有线接入总带宽最大为 200Mbps,通过无线接入总带宽带宽为 1167Mbps,理论总带宽为 1367Mbps。但上联端口为千兆,故单个寝室理论最大总带宽为 1000Mbps。
但实际学校为了省钱,网线只接了四根线(如下图),故单个寝室实际理论最大总带宽为 100Mbps。(即便是四人寝,每人办理 30M 套餐,总带宽也能达到 120Mbps,已高于 100Mbps。)

经过测试,两个账号(一个 50M 账号和一个 30M 账号,或两个 30M 账号)在同一网口上,最高合计只能达到 50M 的速度。笔者猜测这可能是由于锐捷 RG-MAP752(S)接收到的配置限制,也有可能是因为检测到上联端口为 100M,从而自动将单个接口速率限制为 50M。

因此,如果你希望通过带宽叠加突破 50M 的限制,请尽量将账号分配到两个物理端口上运行。文章开头跑出的 100M,就是通过两个端口实现的:一个端口跑 50M 账号,另一个端口同时跑两个 30M 账号,合计达到约 100M。

进入哈尔滨理工大学 | 网络信息中心拉到最底部,可以看见“锐捷 Windows 通用版”的下载链接,安装包标注版本为 V528。(有趣的是,这里有一个无法访问的 PPPoE 自助服务页面)

实测在寝室连接有线网络后,的确无法通过 PPPoE 拨号的方式上网,仅能通过锐捷提供的客户端登录校园网。

多设备检测

通过“校趣多”微信公众号的“自助服务” - “在线设备管理”功能,用户不仅可以查看登录设备的详细信息(如设备 MAC 地址、终端类型、上网账号、套餐名称、区域名称及上线时间),还可对已上线的设备进行下线管理。
推测校园网在识别多设备连接时,主要依据接入设备的 MAC 地址进行检测。

通过实测发现:

  • 一台已登录校园网的终端若开启移动热点,可同时为多个其他设备提供网络。
  • 同一设备若配备多张网卡或使用虚拟网卡,并设置不同的 MAC 地址,即可分别获取独立的 IP 地址并完成登录。

最新消息:你的校园网大概率有多设备检测,但可能无自动封禁。建议参照 B 站视频 BV1yr4meeENt 和相关文章进行相关反检测配置,以提前规避相关风险。

并发限制

根据知情人士透露,单个账号的TCP并发连接数存在限制,但"有线办公环境"不受此限。某实验室通过双网卡搭建代理服务器,实现了全实验室成员共用一个账号上网。

笔者注:引号内原词的确切含义尚不明确,但实测发现,宿舍有线网络分享给四人使用时,并未感受到明显的连接限制。

IP 地址分配情况

无 IPv6 地址,仅内网 IPv4 地址。

本章小结

总结与后续所需信息:

  1. 同一账号下的多台设备会共享带宽限速,无法通过单设备多次拨号/登录来实现单设备网速翻倍。
  2. 系统不支持 PPPoE 拨号,因此无法像家用宽带一样进行多拨。
  3. 支持客户端直接登录,无需依赖网页登录。
  4. 需要部署反多设备检测软件。

由此推断在合法使用范围内,我们无法实现:

  • 获得超出所购套餐带宽上限的网速。

我们可以实现:

  • 绕过校园网的设备数量限制。
  • 通过聚合多位同学账号的带宽,实现速率叠加。(多线程场景下)

简单网络共享

最简单的方法——有手机/电脑即可。

根据上一章的已知信息,我们可以:

  1. 手机/电脑连接校园网 Wi-Fi(哈理工学子连接 HRBUST-StudentHRBUST-Student-Auto 均可)。
  2. 手机/电脑开启热点。

其他设备连接此热点即可。

注:

  • 我舍友用了这方法一年。
  • 你的校园网大概率有多设备检测,但可能无自动封禁。如被封禁,请参照 B 站视频 BV1yr4meeENt 和相关文章进行反检测配置。

进阶网络共享

较复杂但上限高的方法。

目前我们已经有了网页登录方式,以及适用于 macOS、Windows 和 Linux 的图形化登录客户端。虽然可以通过编写脚本来自动化操作图形化客户端拨号,但我们更希望能够在路由器上,通过命令行的方式将其作为服务自启动。

锐捷系统在很多高校中都有使用,果然在查找资料时发现,已经有前辈为我们铺好了道路——Mentohust 软件(hyrathb/mentohustshanzhaozhen/mentohust_for_zqu)。在此感谢前辈们的付出。

注:除 mentohust 外,也可以选择使用 minieap 进行拨号,如有需要请自行探索。

事前准备

  1. 准备一台软路由,或者一台可以刷软路由系统的硬路由(俗称“可刷机路由器”):
    • 首选:购买一台支持刷机的路由器,并刷入 OpenWrt 系统。
      之所以推荐 OpenWrt,是因为它的资料和固件资源丰富,社区活跃,功能可扩展性强。同时,这类路由器通常自带无线 AP,有线接口数量也够用,对于寝室这种场景完全能够满足需求。
    • 购买建议:在闲鱼等二手平台上,30 元左右挑一个性价比最高的即可。设备性能无需太强——毕竟寝室带宽最高也就 100M。可选型号包括:小米 mini、Newifi R6800、红米 AC2100、小米 AC210 等。(笔者实验设备为闲鱼 45 包邮购入的红米 AC2100)
  2. 准备网线(估算长度后购买,超五类线足以)。
  3. 下载 mentohust 二进制文件,放到一个好找的位置:
    • 固件资源:已有大佬编译基于 MediaTek MT7620 / MediaTek MT7621 / x86_64 架构,适用于 OpenWrt 的 mentohust 二进制文件,可直接下载使用:来自企鹅大大(如此页面无法访问,请前往此站关于页联系笔者邮箱获取软件)
    • 软件编译教程请见:知乎@Bang企鹅大大林如愿
  4. 确保设备成功刷入 OpenWrt,成功启动。
    • 如果你准备后续的带宽叠加,固件一定要包含 luci-app-mwan3 及相关组件。
    • 实测后续的带宽叠加与 luci-app-turboacc 不冲突,此组件能极大增强转发效率,推荐安装。25-09-19 补充:该组件的转发加速功能(Flow Offload/SFE)可能与部分反多设备检测技术冲突,请安装后根据实际情况决定是否启用。以及 NAT1 也与部分反多设备检测技术冲突。
    • luci-app-syncdial 在本教程中非必须,实际测试似乎不太可靠,不如手动配置,不推荐安装。
    • 自助定制固件可使用此站点。笔者目前未能找到其他好用的自助站点,如果你找到好用的相关站点,欢迎在评论区留言。
    • 你的校园网大概率有多设备检测,但可能无自动封禁。建议参照 B 站视频 BV1yr4meeENt 和相关文章进行配置,以规避风险。

部署准备

将电脑连接路由器 Wi-Fi/用网线接入路由器 LAN 口后,开展后续操作。

打开命令行工具

Windows 方法

  1. 同时按下 Win 键和 R 键(Win 键在键盘左下的位置,一般键帽上印刷着四个方块)(简称按 Win + R,后文出现的快捷键操作均使用此描述法)。

  2. 输入 powershell,按回车。

  3. 进入 Powershell 界面(蓝底白字/黑底白字的窗口)。

  4. 输入以下指令后回车:

    ipconfig
    
  5. 找到 默认网关 一行,比如:

    默认网关  . . . . . . . . . : 192.168.1.1
    

    这里 192.168.1.1 就是你的路由器 IP 地址。

macOS 方法

  1. 打开“启动台” → 搜索“终端” (Terminal)。
  2. 打开终端。
  3. 输入以下指令后回车:
ip route | awk '/default/ {print $3}'

输出的就是你的网关地址,也就是路由器 IP 地址,比如:

192.168.1.1

Linux 方法

  1. 打开终端 (Terminal)。
  2. 输入以下指令后回车:
ip route | awk '/default/ {print $3}'

输出的就是你的网关地址,也就是路由器 IP 地址,比如:

192.168.1.1

SSH 登录 OpenWrt

输入以下命令(假设路由器 IP 是 192.168.1.1,默认账号 root):

ssh root@192.168.1.1

此时会提示你输入密码(如未修改,默认账号一般为 root,密码为 password),具体账号密码请看你刷入的固件说明:

root@192.168.1.1's password:

注意:输入密码时屏幕上不会显示任何内容,这是正常的。直接输入密码后按回车即可。

查看网卡名称

在 OpenWrt 的 SSH 界面里输入:

ip link show

可能会看到类似结果:

1: lo: <LOOPBACK,UP,LOWER_UP> ...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
3: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
4: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
5: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP>
6: lan3@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
7: ...

... 代表省略的信息。我使用的设备是红米 AC2100,此时 WAN、LAN1、LAN3 接口均有插入网线,LAN2 口悬空。你获取的信息可能和此处略有不同,这是正常的。

网卡解释

  • lo → 系统内部回环接口,不用管
  • eth0 → 底层物理网卡,不直接用
  • wan → WAN 口(通常是接外网/校园网的口)
  • lan1@eth0、lan2@eth0、lan3@eth0 → 路由器的 LAN 物理口(经过配置后也可以用于接校园网)
    • 这里的 @eth0 只是提示“这个口挂在 eth0 上”,在命令里只需要写 lan1 / lan2 / lan3

之后用 mentohust 拨号时,你只要填 wanlan1lan2lan3 就行,而不是 lan1@eth0

如果你的路由器有四个网口,仅有一个插入了线缆,那没标记 NO-CARRIE 的就是你现在插入的接口。你也可以记录下路由器全部物理网口的逻辑名(这个例子中就是 wanlan1lan2lan3),过会登录校园网的时候一个个测试。

上传 Mentohust 文件

图形化的上传方法是下载一个叫 WinSCP 的软件,参见:企鹅大大的博客

退出 OpenWrt SSH(输入 exit 回车)。

在本地终端中,进入保存 mentohust 的目录。

例如(Windows 下):

cd C:\Users\Public\Downloads\

Windows 下也可以通过以下方法快速打开:

  • 使用文件资源管理器进入保存 mentohust 的目录,在地址栏输入 powershell 后回车。
  • 使用文件资源管理器进入保存 mentohust 的目录,按住 shift 键后点击鼠标右键。点击弹出的上下文菜单中的“在此处打开 Powershell 窗口”。

或(macOS/Linux 下):

cd ~/Downloads/

然后用 scp 上传到 OpenWrt(将 root192.168.1.1 改为实际用户名/路由器 IP 地址):

scp ./mentohust root@192.168.1.1:/usr/sbin/mentohust

系统会提示输入 OpenWrt 密码(同样看不见,直接输入后回车)。

给文件加执行权限

再次使用 SSH 登录 OpenWrt(将 root192.168.1.1 改为实际用户名/路由器 IP 地址):

ssh root@192.168.1.1

在路由器里运行:

chmod +x /usr/sbin/mentohust

测试运行

不要退出 SSH,执行:

mentohust -h

如果输出帮助信息,说明安装成功。

🎉恭喜你,已经成功一大半了。

测试拨号上网

你可以通过 mentohust -h 获取详细的指令用法。

使用下面这个指令,将在前台拨号上网,并且保存当前参数到配置文件:

mentohust -u账号 -p密码 -n网卡 -a1 -d1 -v版本号 -w

根据上文,我们得知哈理工使用的客户端版本为 v5.28,有以下例子:

mentohust -u2301010101 -p142857 -nwan -a1 -d1 -v5.28 -w

上面的指令中使用的参数是 -nwan,表示使用 WAN 口。
如果你不确定自己插入的是哪个物理网口,可以依次尝试物理网口对应的逻辑名(例如 wanlan1lan2 等),直到拨号成功。

注意事项:

  1. 出现“认证成功”。🎉恭喜你,就差最后一步了。
  2. 测试认证前,请确定当前设备额度未被占光。(哈理工学子可使用“校趣多”微信公众号下线登录设备,给路由器腾出位置。)

开机自动拨号

不要退出 SSH,执行:

nano /etc/rc.local

将以下指令粘贴到 rc.local 文件中。

mentohust -b3

rc.local 文件中找到 exit 0 这一行。确保粘贴的命令在 exit 0 之前。如果没有看到 exit 0,就添加到文件的最后一行。

之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

🎉恭喜你,已经完成配置了!任何连接你路由器的设备都可以成功上网。

简单网速叠加

根据已知信息,一个设备上插了两张网卡,或者模拟出两张 MAC 地址不同的网卡,即可登录两个校园网账号。

可以有多种组合达成此目的:

  1. 电脑内置无线网卡和电脑内置有线网卡
  2. 电脑内置无线网卡和 USB 有线网卡
  3. 电脑内置有线网卡搭配虚拟化技术虚拟出多个 MAC 地址不同的网卡

至于多张网卡在电脑上如何实现带宽叠加,我给出几个关键词,读者可自行搜索解决方案:“Win10/11 链路聚合”、“修改网卡物理地址”。

注:你的校园网大概率有多设备检测,但可能无自动封禁。如被封禁,请参照 B 站视频 BV1yr4meeENt 进行相关反检测配置。

进阶网速叠加

首先,请先完成进阶网络共享中的全部步骤,并确保成功执行最后一步。

在开始前,请仔细阅读“特别说明”,做好网络接口规划,提前预估所需的接口数量及分配方式。

假设你手头有三个 30M 的账号,每个账号通过一根网线连接到一个 WAN 口。由于物理 WAN 口自带一次拨号功能,你只需额外创建两个虚拟 WAN 接口,即可同时让三个账号拨号上网。

需要注意的是,根据“特别说明”,单个端口的最高带宽限制为 50M。也就是说,即使在同一接口上使用三个 30M 的账号进行拨号,实际速度上限仍为 50M,这与理论值 90M 存在明显差距(当然,不排除在某些特殊情况下能够接近 90M,欢迎测试后在评论区反馈)。

为了获得更高的带宽,建议采用“双实一虚”的配置:

  • 使用两根独立网线分别接入两个物理端口(一个 WAN 口、一个 LAN 口配置为 WAN 口)
  • 再配合一个虚拟 WAN 接口

这种方案可以实现 30M + 50M ≈ 80M 的速度,有效提升带宽利用率。

清理痕迹

使用 SSH 登录上 OpenWrt。
之后执行:

nano /etc/rc.local

删除刚才在“开机自动拨号”这一章添加的 mentohust -b3,之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

LAN 口改设为 WAN 口(可选)

为突破 50M 的限制,你可能需要将路由器的一个 LAN 口改为额外的 WAN 接口。下面以 lan1 改为第二个 WAN 为例。

nano 打开 OpenWrt 网络配置文件:

nano /etc/config/network

在文件中:

  1. 找到 config device 块,将 lan1br-lan(LAN 口桥接)中移除。
  2. 参考已有的 config interface 'wan',新增一个 config interface 'wan2' 的配置段。

示例:

config interface 'wan2'
        option device 'lan1'                  # 指定物理接口
        option proto 'dhcp'
        option macaddr '1B:1B:1B:1B:1B:1B'    # 请替换为你自己的 MAC
        option metric '101'                   # 与其他 WAN 不同的跃点数

注意:

  • 必须改为你自己的网络设备的 MAC 地址,或使用在线 MAC 生成器随机生成。不要与网络中已有设备冲突,否则可能导致掉线或无法联网。
  • 我们将使用 mwan3 进行负载均衡,mwan3 要求不同的 WAN 接口有不同的 option metric 值。新接口的 option metric 要与已有接口不同,并且大于默认 WAN 口的数值,以便系统优先使用默认 WAN 出口。
  • 添加新 WAN 接口后,需要将它加入到防火墙规则中的 wan 区域(详见后续步骤)。

完整示例差异如下:

config device
        option name 'br-lan'
        option type 'bridge'
        option promisc '1'
-       list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option metric '100'

+ config interface 'wan2'
+        option device 'lan1'
+        option proto 'dhcp'
+        option macaddr '1B:1B:1B:1B:1B:1B'
+        option metric '101'

之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

添加虚拟网卡

首先在“查看网卡名称”这一步确认你要在哪个物理接口上创建虚拟网口。

准备用 nano 编辑 /etc/rc.local

nano /etc/rc.local

我们使用以下指令创建虚拟网卡,将下面两行指令粘贴到 rc.local 文件中:

ip link add link 物理接口名 name 虚拟网卡名 type macvlan
ifconfig 虚拟网卡名 up

想要多创建几个就多粘贴几遍,记得虚拟网卡名要不同。

例 1,在 WAN 口上创建名为 macvlan1 的虚拟网卡:

ip link add link wan name macvlan1 type macvlan
ifconfig macvlan1 up

例 2,在 LAN1 口上创建名为 macvlan2 的虚拟网卡:

ip link add link lan1 name macvlan2 type macvlan
ifconfig macvlan2 up

注:确保粘贴的命令在 exit 0 之前。如果没有看到 exit 0,就添加到 rc.local 文件的最后一行。

之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

手动运行你刚才粘贴到 /etc/rc.local 中的指令,以创建虚拟网卡。(如果你懒得粘贴,运行 reboot 指令进行一次重启也是可以的)

添加接口信息

nano 打开配置文件:

nano /etc/config/network

在文件底部增加以下内容,你有几个接口要添加就复制几份:

config interface '接口名'
        option _orig_ifname '虚拟网卡名'
        option _orig_bridge 'false'
        option proto 'dhcp'
        option macaddr 'FB:FB:FB:FB:FB:FB'
        option metric '跃点数'
        option device '虚拟网卡名'

注意:

  • 修改 MAC 地址为你自己的,或使用网络上的在线随机 MAC 生成器,否则可能冲突。

  • 我们将使用 mwan3 进行负载均衡,mwan3 要求各接口的跃点数(metric)必须不同。请确保你创建的接口的 option metric/etc/config/network 中已有的接口不同,并且比默认的 WAN 口的跃点数大,这样可以确保流量优先走默认的 WAN 口。如下述的 WAN 口定义:

    config interface 'wan'
            option device 'wan'
            option proto 'dhcp'
            option metric '100'
    

    表明默认 WAN 口的跃点数为 100,你自己创建的接口的跃点数可以为 101 或更大的值。

以下是一个示例,接口名为 vwan1,虚拟网卡名为 macvlan1,MAC 地址为 C7:7B:D5:EE:4C:46,跃点数为 102。

config interface 'vwan1'
        option _orig_ifname 'macvlan1'
        option _orig_bridge 'false'
        option proto 'dhcp'
        option macaddr 'C7:7B:D5:EE:4C:46'
        option metric '102'
        option device 'macvlan1'

之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

在 OpenWrt Web 界面设置接口防火墙

  1. 打开浏览器,访问路由器 IP。
  2. 使用账号密码登录 OpenWrt Web 管理后台。
  3. 进入“网络” - “接口”。(如果提示配置需要迁移之类的消息,确认迁移即可)
  4. 找到刚才新建的网口(如 macvlan1wan2),点击这一行右边的“编辑”按钮。
  5. 确认协议为“DHCP 客户端”。
    • 如果不是,修改为“DHCP 客户端”。
  6. 在“防火墙设置”里,把它分配到和 wan 相同的防火墙区域。
  7. 滚动到页面底部,点击“保存并应用”。

注:如果没有设置防火墙到 wan 区域,拨号是不会成功的。

配置均衡负载

  1. 打开浏览器,访问路由器 IP。
  2. 使用账号密码登录 OpenWrt Web 管理后台。

均衡负载 - 接口

  1. 进入“网络” - “MultiWAN 管理器” - “接口”。
  2. 删除全部的接口后点击“保存并应用”。
  3. 还记得刚才我们在 /etc/config/network 中看到的 config interface '接口名' 吗。页面左下角的输入框输入接口名(如刚才例子中的 vwan1,或默认的 wan),然后点击“添加”。
  4. 点“添加”后弹出的窗口是这个接口的编辑页(点击这个接口右边的“编辑”按钮就可以打开)。
    • 第一行的“已启用”需要勾选上。
    • 第二行的“初始状态”选择“在线”即可。
    • 第三行的“互联网协议”选择“IPv4”即可。
    • 第四行的“跟踪的主机或 IP 地址”,添加若两个常用 DNS 地址即可。如223.5.5.5223.6.6.6114.114.114.114114.114.115.115
    • 随后拉到最底部点击“保存”即可。
  5. 点击页面右下角的“保存并应用”按钮。

均衡负载 - 成员

  1. 进入“网络” - “MultiWAN 管理器” - “成员”。
  2. 删除全部的成员后点击“保存并应用”。
  3. 页面左下角的输入框输入成员名,然后点击“添加”。名称可以包含 A-Z,a-z,0-9,_,不能有空格。成员名称不能与配置的接口、策略或规则相同(w_m1_w1 是一个可以使用的名字)。
    • 每个“接口”都要创建一条对应的成员。(有几个接口就创建几个成员)
  4. 点“添加”后弹出的窗口是这个成员的编辑页(点击这个成员右边的“编辑”按钮就可以打开)。
    • 第一行的“接口”选择目标接口。
    • 第二行的“度量值”可以空着,也可以填 "1".
    • 第三行的“Weight”是权重,如果你这个接口上要拨号 50M 带宽的账号就输入 50,如果是 30M 带宽的账号就输入 30。
    • 点击右下角的“保存”即可。
  5. 点击页面右下角的“保存并应用”按钮。

均衡负载 - 策略

  1. 进入“网络” - “MultiWAN 管理器” - “策略”。
  2. 删除全部的策略后点击“保存并应用”。
  3. 页面左下角的输入框输入策略名,然后点击“添加”。名称可以包含 A-Z,a-z,0-9,_,不能有空格。名称最多 15 个字符。策略名称不能与配置的接口、成员或规则相同。banlanced 是一个可以使用的名字。
  4. 点“添加”后弹出的窗口是这个策略的编辑页(点击这个策略右边的“编辑”按钮就可以打开)。
    • 第一行的“使用的成员”选择将所有创建的成员都选上。
    • 点击右下角的“保存”即可。
  5. 点击页面右下角的“保存并应用”按钮。

均衡负载 - 规则

  1. 进入“网络” - “MultiWAN 管理器” - “规则”。
  2. 删去除 httpsdefault_rule_v4default_rule_v6 以外的规则后点击“保存并应用”。
  3. 如果缺少 httpsdefault_rule_v4default_rule_v6 其中的某规则。就在页面左下角的输入框输入规则名,然后点击“添加”。
  4. 点“添加”后弹出的窗口是这个策略的编辑页(点击这个策略右边的“编辑”按钮就可以打开)。
  5. 对于 https 规则:
    • 第一行“互联网协议”选择“IPv4 或 IPv6”/“仅 IPv4”(看校园网情况。像哈理工没 IPv6 选“仅 IPv4”就行)。
    • 第二行“协议”保持“TCP”。
    • 第六行“目标端口”保持“443”。
    • 第七行“粘滞模式”选择“是”。
    • 最后一行“分配的策略”选择刚才创建的策略(如 banlanced )。
    • 点击右下角的“保存”即可。
  6. 对于 default_rule_v4 规则:
    • 第一行“互联网协议”选择“仅 IPv4”。
    • 第二行“协议”保持“all”。
    • 第四行“目标地址”输入“0.0.0.0/0”。
    • 第七行“粘滞模式”选择“否”。
    • 最后一行“分配的策略”选择刚才创建的策略(如 banlanced )。
    • 点击右下角的“保存”即可。
  7. 对于 default_rule_v6 规则:
    • 第一行“互联网协议”选择“IPv4 和 IPv6”。
    • 第二行“协议”保持“all”。
    • 第四行“目标地址”输入“::/0”。
    • 第七行“粘滞模式”选择“否”。
    • 最后一行“分配的策略”选择刚才创建的策略(如 banlanced )(看校园网情况。像哈理工没 IPv6 选“不可达(拒绝)”这个策略)。
    • 点击右下角的“保存”即可。
  8. 点击页面右下角的“保存并应用”按钮。

粘滞模式(sticky mode)作用:固定同一客户端走同一出口,避免因 IP 变化引起身份验证频繁或连接中断。

开机自动多播

使用 SSH 登录上 OpenWrt,执行:

nano /etc/rc.local

在文件最开头前加上自定义函数:

wait_iface_up() {
    local iface="$1"
    while ! ip link show "$iface" | grep -q "state UP"; do
        sleep 1
    done
}

ifconfig macvlan1 up 后加上对应等待接口就绪的代码:

wait_iface_up macvlan1

如果有多个 ifconfig macvlanX up 就对应添加多行 wait_iface_up macvlanX 语句。

你的 rc.local 文件大致应如下所示:

wait_iface_up() {
    local iface="$1"
    while ! ip link show "$iface" | grep -q "state UP"; do
        sleep 1
    done
}

ip link add link wan name macvlan1 type macvlan
ifconfig macvlan1 up
wait_iface_up macvlan1  # 对应上一行 ifconfig macvlan1 up

ip link add link wan name macvlan2 type macvlan
ifconfig macvlan2 up
wait_iface_up macvlan2  # 对应上一行 ifconfig macvlan2 up

# 此处添加拨号代码
# ...

exit 0

现在我们在 exit 0 前添加拨号代码(如果有多个账号,就粘贴多遍)(删 .pid 方法出自企鹅大大,微调以适应实际情况):

mentohust -u账号 -p密码 -n网卡 -a1 -d1 -v版本号 -b3
sleep 8
rm -rf /var/run/mentohust.pid
sleep 3

注:sleep 8 是硬等待,如果认证比较快,可以缩短这个时间。如果认证时间较长,可以加长这个时间。尽量不要让一个时间内同时进行两个认证。我们使用指令 rm -rf /var/run/mentohust.pid 删除 mentohust.pid 即可进行下一个账号的认证。sleep 3 也是一个硬等待。如果胆大心细,可以将这两个等待时间分别改为“5”和“2”。

根据上文,我们得知哈理工使用的客户端版本为 v5.28,有以下例子:

mentohust -u2301010101 -p142857 -nwan -a1 -d1 -v5.28 -b3
sleep 8
rm -rf /var/run/mentohust.pid
sleep 3

在上述指令中,-nwan 参数表示使用 WAN 口,而 -b3 表示在后台运行。
如果你不确定自己插入的是哪个物理网口,可以依次尝试物理网口对应的逻辑名(例如 wanlan1lan2 等),直到拨号成功。
对于自行创建的 macvlan,在执行 ip link add link 物理接口名 name 虚拟网卡名 type macvlan 命令时,其中的“虚拟网卡名”,就是拨号命令中 -n 参数需要填写的名称,即写作 -n虚拟网卡名

你的 rc.local 文件大致应如下所示:

wait_iface_up() {
    local iface="$1"
    while ! ip link show "$iface" | grep -q "state UP"; do
        sleep 1
    done
}

ip link add link wan name macvlan1 type macvlan
ifconfig macvlan1 up
wait_iface_up macvlan1  # 对应上一行 ifconfig macvlan1 up

ip link add link wan name macvlan2 type macvlan
ifconfig macvlan2 up
wait_iface_up macvlan2  # 对应上一行 ifconfig macvlan2 up

mentohust -u2301010101 -p00142857 -nwan -a1 -d1 -v5.28 -b3
sleep 8
rm -rf /var/run/mentohust.pid
sleep 3

mentohust -u2301010102 -paa142857 -nmacvlan1 -a1 -d1 -v5.28 -b3
sleep 8
rm -rf /var/run/mentohust.pid
sleep 3

mentohust -u2301010103 -pXX142857 -nmacvlan2-a1 -d1 -v5.28 -b3
sleep 8
rm -rf /var/run/mentohust.pid
sleep 3

exit 0

之后按 Ctrl + S 保存修改,再按 Ctrl + X 退出编辑器。

现在可以尝试重启系统,测试自动配置是否生效:

reboot

🎉恭喜你,已经完成配置了!任何连接你路由器的设备都可以享受带宽叠加了。

速率测试方法

  1. Steam 测试下载 60GB 以上的游戏。
  2. HTTP 多线程测速站。
  3. 其他多线程下载场景。

由于启用了 HTTPS 粘滞模式,许多 HTTPS 测速站只能显示权重最大的网速。例如,我使用了一个 50M 和两个 30M 账号,在单线程测速时,结果仅显示 50M 的速度。

结语

欢迎在评论区留言交流。

最新动态

与校园网动态及博客相关的最新信息将在此处持续更新。
时间排序:从旧到新↓


北京时间 2025-09-15 下午 4:47 更新:

点击查看折叠内容

文章发出后被封禁了所使用的 MAC 地址和校园网账号,准备转战 5G CPE

hrbust-ruijie-campus-network-is-sxxt.avif

方法已经开源,致敬哈理工网管协会会长林如愿,respect∠(°ゝ°)


北京时间 2025-09-15 下午 5:13 更新:

学校寝室网络架构较为脆弱,一旦路由器误接形成环路,便可能引发网络风暴,导致整栋宿舍楼瘫痪

低调用了一段时间,发文章才被 ban,懂的都懂,祝同学们好运。

点击查看折叠内容

也可以选择加入学校的网管协会,据说他们是负责 ban 人的。


北京时间 2025-09-17 上午 7:28 更新:

点击查看折叠内容

昨天有同学和我说,网管一直都知道。因此已修改文章对于多设备检测的相关描述。

建议同学们在实操的时候依照视频内容部署相关的反检测手段。

笔者在此分享一年前收藏的视频BV1yr4meeENt


北京时间 2025-09-17 上午 9:00 更新:

之前为朋友配置了防检测机制,未出现封禁情况。

因参考了网管协会会长的文章,误以为无检测流程,未为自己配置防护,导致被封禁。

事实上,哈理工校园网系统只是未启用自动封禁功能,但仍可进行人工封禁。若自行搭建,建议参考现有视频和文章进行反检测设置,以降低风险。


北京时间 2025-09-19 下午 6:53 更新:

基于学术兴趣,分享一篇反多设备检测相关文章关于某大学校园网共享上网检测机制的研究与解决方案 | SunBK201's Blog IA 备份

点击查看折叠内容

润色部分文段并补充相关信息,添加了哈理工教室网络部署情况。
5G CPE 已在路上,部署后会写一篇新文章分享相关信息。


北京时间 2025-10-15 上午 0:01 更新:

更新并发限制章节。