Jack 发表于 2019-1-26 22:49:33

[USB加速器1.0] 显著提升路由器的 USB 性能!

本帖最后由 Jack 于 2020-4-25 18:20 编辑

USB加速器已经发布 2.0 版本,以下内容已经过时,作为存档保留
如需安装使用 USB加速器 请看 USB加速器 2.0 的帖子

前言
USB 加速器(USB Accelerator)是由 Jack 开发的一个路由器脚本。USB 加速器 最大的功能是显著提高路由器 SMB 协议下的 USB 读写性能,可显著增加约 +10% 到 +240% 。

原理
路由器 USB 读写性能通常并不理想,一方面是由于硬件因素引起,另外一方面则是由于软件配置导致。
USB 加速器 原理是在软件配置上为你自动调节到最优设置,它会帮助你修改普通用户无法涉及到的系统级别设置,以尽可能为你得到路由器硬件的应有性能。
https://i.loli.net/2019/01/30/5c50b5028adf6.png
前提条件
必须是受到支持的固件
      目前支持任何基于 Asuswrt(华硕官方固件)的固件。
      支持列表:Asuswrt、Asuswrt-Merlin(及其衍生版本)、Koolshare-改版梅林 和 Koolshare-官改 等。


安装方法
一、打开路由器 [ 高级设置 ] — [ 系统设置 ],开启 SSH,设置到 [ LAN only ]
二、使用 SSH 客户端登录路由器,(Windows 下推荐开源的 PuTTY,在 PuTTY 官网,下载“putty.exe”,不会使用 PuTTY 的话请见下方常见问题)
三、复制并粘贴以下内容到 SSH 客户端,然后按照提示操作即可
/usr/sbin/wget -c -T 30 --no-check-certificate "https://raw.githubusercontent.com/JackMerlin/USBAccelerator/master/usbaccelerator.sh" -O "/tmp/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh

首个公开版 V 0.1.0 安装界面截图:
https://i.loli.net/2019/01/26/5c4c0c866452a.png


配置和管理
如果已经安装,未来需要关闭、更新、卸载或重装,则在 SSH 下输入下方代码
/jffs/scripts/usbaccelerator.sh


检查是否已经正确开启
方法一、刷新路由器管理页面,可见右上角的 USB 符号将会有一个“+”加号,如下图:
https://i.loli.net/2019/01/26/5c4c38d255729.png
方法二、在系统日志中能看到来自 “USB 加速器(USB Accelerator)” 的日志内容。


常见问题
问:如何使用 SSH 客户端 PuTTY 登录到路由器?
答:路由器开启 SSH 设置到 [ LAN only ] 并在 PuTTY 官网下载“putty.exe”后,一、打开 putty.exe;,二、在“Host Name”一栏输入你的路由器 IP 地址;三、点击“Open”;四、弹出证书信任框,点是或否都可;五、输入路由器用户名并按下回车;六、输入路由器登录密码(密码输入时不会显示)输入完按下回车。这就成功使用 SSH 登录路由器了,如果提示用户名或密码错误就重新输入,接下来进行上方“安装方法”第三步,注意,在 PuTTY 中鼠标右键即是粘贴。为了安全建议使用完成 SSH 后在路由器管理页面关闭 SSH。

问:如何在 macOS 上使用 SSH 客户端登录路由器?
答:请参考:在Mac OS X上使用远程终端协议。为了安全建议使用完成 SSH 后在路由器管理页面关闭 SSH。

问:为什么路由器管理页面看不到 “USB+” 符号?
答:如果有来自 USB 加速器 的日志内容,但是没有 “USB+” 则是浏览器缓存在作怪,可以使用 Ctrl+F5 来刷新网页,或者清除浏览器缓存后再刷新网页。

问:系统日志中没有 USB 加速器(USB Accelerator)的日志是怎么回事?
答:如果没有日志,也没有 USB+ 符号则代表 USB 加速器没有成功运行,可以尝试重新安装。

问:如何关闭、重新开启、更新、重新安装 或 卸载 USB 加速器?
答:看上方“配置和管理”段落。

问:为什么安装加速器后上不了网、打不开 XXX 网址、XXX 软件无法运行?
答:这些奇葩问题一律和加速器无关,加速器完全不涉及网络部分,并且独立运行不会影响任何其他组件或服务。如果出现巧合,请优先排查其他组件和服务的自身问题。

问:为什么 FTP 下速度没有提升?
答:USB 加速器目前仅能在 SMB 协议(Windows 网络共享协议)获得最佳的性能。

问:为什么感觉速度没有提高?
答:用上文方法检查是否正常启用,如果检查确实开启却没有速度提升,那么说明你之前就已经是最优配置了,已知 Asuswrt-Merlin 384.9 及以上版本采用了一些相同的加速机制。

问:XXX 错误是什么意思?
答:反馈时请提供路由器型号和固件版本,以及USB 加速器在日志中的代码。

问:USB 加速器 占用系统内存吗?
答:USB 加速器不会占用系统内存。

问:USB 加速器 开源吗?
答:USB 加速器是使用 GPLv3 许可证下发布的自由软件,代码完全开源,你可以在 GitHub 检查源代码或帮助改进(GitHub 地址和许可证原文见下方链接)。

问:为什么原作者不开发软件中心版本?
答:我本人并没有将其移植到软件中心的意愿,这里有三点考虑,一、目前加速器脚本可以工作在三大主要固件(Asuswrt 官方、Asuswrt-Merlin、改版梅林)而软件中心仅有改版梅林才能使用,如果推出软件中心版本将带来两个版本的加速器会增大维护难度;二、我本人并没有时间去开发软件中心版本;三、这是一个开源项目,任何开发者只要遵循 GPLv3 许可证就可以根据源代码轻易移植到软件中心。所以,不要再向我求移植到软件中心啦,现在的 SSH 下开启和关闭已经非常容易了。


为便于更新,已知问题、经过测试的机型、更新日志和致谢名单在楼下


结语

[*]对于使用 USB 加速器的人,我很高兴你能从中获益,但是请注意,这是一个比较早期的版本,它可能会有一些不尽如人意,不过你可以将加速成功的喜悦或者遇到错误的沮丧与我分享,因为这些反馈才能让 USB 加速器 更快地成长。
[*]我不推荐长期开启 SSH,因为 SSH 有非常强大的管理功能但是也非常不安全,不用 SSH 绝对不要开启,用完 SSH 就应该保持关闭。
[*]对于开发人员,或者想要将其做成插件,只要你遵循 GNU通用公共许可协议 V3 许可证,你可以自由地开发、衍生甚至出售,而且我很希望开发人员可以在 GitHub 协助提高代码质量,项目地址是:https://github.com/JackMerlin/USBAccelerator


脚标
LostFreq 对脚本核心代码的测试

Jack 发表于 2019-1-28 13:59:43

本帖最后由 Jack 于 2020-4-25 18:11 编辑

USB加速器已经发布 2.0 版本,以下内容已经过时,作为存档保留
如需安装使用 USB加速器 请看 USB加速器 2.0 的帖子

USB 加速器 目前版本是 1.0 [正式版]


已经做过测试的支持型号
其他型号未测试不代表不支持,只要符合上方“前提条件”理论上都支持。
RT-AC66U_B1
RT-AC68U(含 1900P)
RT-AC3200
RT-AC86U
RT-AC87U
RT-AC88U
RT-AC5300
RT-AX88U
……

特别感谢
(排名不分先后)
SNBForums 的 Adamm 发现的关键配置
Koolshare 对本项目的支持
52asus 对本项目的支持

没有以下测试人员的回馈,就没有这个项目,感谢他们抽出宝贵时间对脚本的测试和反馈
(排名不分先后)
nyanmisaka、qiutian128、iphone8、pmc_griffon、crazykid、tzh5278、samsul、特纳西特基欧、dbslsy、ricky1992、awee、Master、esliesu255、zk0119、全池泼洒、glk17、luoyulong、kimhai、xiaole51、vipnetant 和 vvwn 等人。


优先级:意味着一个问题修复速度或功能的添加速度,一个优先级代表一个迭代版本,数值越大越慢。
已知问题
1、脚本可能会在重启路由器后自动卸载,发生几率极低(v0.4.4 曾试图修复未果),感谢 @vipnetant 和 @萌萌是神马 报告此问题。因各种因素对于此问题修复可能无法保证时效性,不过如果发生脚本自动卸载,缓解方式是:重新用 1 楼命令安装。(2019-6-28)
2、可能由于不可抗力原因无法在线安装以及更新。(2020-02-27)未来版本计划新增功能
1、因为此脚本仅在非 HND 机型上有较大效果,所以未来可能加入检测机制禁止 RT-AX88U、AC86U、GT-AC5300 等 HND 机型安装。
2、因为Merlin 384.9 及以上固件已经采用类似机制,所以未来可能在新版固件上提示不推荐安装甚至建议已安装用户卸载。
3、修复上方列出的问题。

更新日志

1.0
其他事项:
首个稳定可靠的正式版已经发布,感谢所有参与测试的人员,谢谢大家!

1.0 RC3
新增功能:
改进脚本兼容性。

1.0 RC2
新增功能:
改进检查更新回馈内容。

1.0 RC1
新增功能:
改进检查更新回馈内容。
其他事项:
从小范围的内测版,到上千人参与的公众预览版,加速器一步步成长终于迎来了稳定可靠的准正式版,如果不出意外这个版本将在数周后转为正式版,感谢所有人的测试和反馈。

0.4.4
问题修复:
1、修复因为未启用 JFFS 自定义脚本引起的错误;
2、修复可能会在重启后自动卸载的错误(感谢 vipnetant 告知此错误)。

0.4.3
新增功能:
1、更新许可协议;
2、更新致谢名单。

0.4.1
问题修复:
修复 0.4.0 版本的日志错误,感谢 vipnetant 协助测试。

0.4.0
新增功能:
1、改用较保守的 Merlin 384.9 固件加速机制,以避免某些机型可能存在内存溢出效率降低的情况(注意,因为加速机制更保守所以可能不及之前版本有特别显著的效果)
2、因为更改加速机制,因此日志不会再显示任何代码,如果开启成功,日志中会直接报告“成功”;
3、采用根证书检查以提高安全性;
4、再次添加检查更新选项(之前 0.3.x 版本被移除此选项)

0.3.2
新增功能:
1、在日志中将会显示当前加速器版本;
2、调整官方模式的自启动接口原理,以避免和其他使用相同自启动接口的脚本冲突(这个功能主要是针对其他使用 nvram 自启动的开发者,请参见源码共同兼容 /jffs/post-mount 自启动方式)。
问题修复:
修复 0.3.1 官方模式下可能无法升级到 0.3.2 的问题。
其他事项:
暂停测试小米模式,因为目前有两位测试人员表示小米模式不如 USB 加速器 自带模式。虽然没有成功引入小米模式,但是感谢 glk17 对试图引入小米模式和 NETGEAR 模式的支持。
未来版本更新将减少梅林模式下新功能的引入,转而变为稳定性维护,这么做的原因是 Asuswrt-Merlin 384.9 及以上版本的固件已经采用类似机制提速 USB,不过目前最新官方固件尚未采用此方法,因此官方模式仍会继续开发下去。感谢 kimhai 对 Merlin 384.9 的测试。

0.3.1
新增功能:
优化安装时的速度,避免大于 10 秒的等待。

0.3.0
新增功能:
1、现在正式支持官方固件!(弃用 Curl 改用 Wget 命令)
2、新增热补丁功能,以便日后快速修复问题。
问题修复:
1、修复菜单显示过慢问题;
2、调整用语。
注意:
更新到此版本必须重装!

0.2.9
提高代码可靠性。

0.2.8
提高代码可靠性。

0.2.7
新增功能:
优化了官方固件下的兼容性。
问题修复:
1、修复 0.2.6 未能成功修复日志报 30 的这个错误,特别感谢 tzh5278 提供测试;
2、提高代码质量,感谢妙妙呜。
注意:
更新到此版本务必关闭加速器然后重新开启(或者重装),否则无法解决代码报 30 错误。

0.2.6
错误修复:
修复 0.2.5 版本由于重新改写命令导致加速器日志报告不正确错误。(实际上没有修复成功)
注意:
如果从低版本更新到此版本,必须更新后选择关闭加速器,然后重新开启加速器。

0.2.5
新增功能:
1、在菜单中添加退出选项;
2、代码优化,感谢妙妙呜。
注意:
安装 0.2.5 后,非常建议重新启用。

0.2.4
新增功能:
添加确认卸载的选项,以免误卸载。

0.2.3
错误修复:
改进检查是否启用的机制。
注意:
安装 0.2.3 后,必须重新启用,否则可能会报错。

0.2.2
错误修复:
修复 0.2.1 的几处用词不当。

0.2.1
新增功能:
1、添加致谢名单,以感谢帮助过这个项目的人;
2、添加重新安装选项;
3、可以在系统日志里看到USB加速器的启动日志。
错误修复:
1、增强官方固件兼容性;
2、解决没有挂载USB设备时的错误显示。

0.2.0
新增功能:
1、支持官方固件和官改固件;
2、增加直观的检查更新选项(如果更新可用的话);
3、官方固件模式下安装时会自动卸载和重新挂载 USB。
错误修复:
1、修复 JFFS 分区报错;
2、修复因为没有正确启用所以无法卸载的问题;
3、删除脚本运行时的无关输出。

0.1.1
错误修复:
1、修复哈希校验问题;
2、修复卸载时可能发生图标错误;
3、提高稳定性。

0.1.0
首个公开测试版发布。

wo77521 发表于 2019-2-14 11:40:32

RT-AC66U_B1 X7.9.1梅林成功 小加号有了 不过 速度提升不大,路由器到电脑速度 提升了10M/秒 现在稳定在45M/秒    电脑到路由器传输还是35M/秒 没有变化   不错 谢谢 楼主!





iphone8 发表于 2019-1-28 11:49:44

来尝鲜罗,:victory:

iphone8 发表于 2019-1-28 18:23:02

有幸,第一时间使用了【Jack】大神开发的 USB 加速器
下面写一下测试详情

参与的设备
1. 华硕路由器 RT-AC86U
2. 固件版本是论坛上的Koolshare板块下载的384.8_2
3. USB 3.0 移动存储设备
4. 直接连接到路由器的 3.0 口
5. 无线网卡我的最高支援到867M:'(,这个可能达不到最高要求

没有启用加速器,USB 状况


直接运行加速器,如下步骤

【Jack】大神整个流程步骤都很清晰,直接根据提示走就行








加速之后,USB 状况如下:



数据:

没有加速测试
有线电脑 :从USB下载到电脑:41.5MB/s;从电脑上传到USB:37.3MB/s
5G          :从USB下载到电脑:34.9MB/s;从电脑上传到USB:36.4MB/s

启用加速器之后,但没有重启路由器测试
有线电脑 :从USB下载到电脑:41.4.5MB/s;从电脑上传到USB:37.5MB/s
5G          :从USB下载到电脑:35.2MB/s;从电脑上传到USB:36.5MB/s

重启路由器测试
有线电脑 :从USB下载到电脑:91.8MB/s;从电脑上传到USB:76.0MB/s
5G          :从USB下载到电脑:35.1MB/s;从电脑上传到USB:40.9MB/s

开启加速器之后,有线部分看起来确实有提升,下载与上传提升都有2倍左右,很赞。
不过 5G 部分没有提升,不确定是不是我的无线速度不够。

【另】重启路由器之后,USB传输有提升,但 USB 状态上的小【+】消失,如没有其他状况图。

无线部分再请大神确认看看,是否需要更高规格的网卡。





lianyungang 发表于 2019-1-29 09:45:57

感谢JACK分享。

Master 发表于 2019-1-29 11:17:04

Jack,我用RT-AC88U,搭配梅林原生固件v384.8_2实测,怎么感觉没效果啊!

USB Accelerator v0.2.0

装完后,底层log可以看到 The USB Accelerator is enabled! ,但是没有看到 USB+ 这个icon。



USB HDD格式NTFS

LAN PC <-> RT-AC88U's USB HDD之间的SMB传输实测数据

安装前
Upload: 60MB/s
Download: 64MB/s

安装后
Upload: 60MB/s
Download: 65MB/s

reboot RT-AC88U后
Upload: 59MB/s
Download: 64MB/s

Master 发表于 2019-1-29 14:15:55

Jack,我在选择firmware type的时候,就只有两个选项,要么stock fw,要么Asuswrt-Merlin fw


Master 发表于 2019-1-29 14:44:25

承上楼,有接USB HDD啦!

换了中文安装模式,firmware type选官方或Asuswrt-Merlin,也都不行!


再看看官方固件吧!

Master 发表于 2019-1-29 15:06:17

每次都卸载USB HDD,然后格式化,RT-AC88U也进行初始化,再进行 USB加速器 安装操作的。

正如8楼所述,firmware type选官方或Asuswrt-Merlin,都不行!

Master 发表于 2019-1-29 15:08:46

用官方固件v384_45149来安装的话,也会直接失败,返回 -sh: curl: not found
页: [1] 2 3 4 5 6 7 8
查看完整版本: [USB加速器1.0] 显著提升路由器的 USB 性能!