华硕网络产品技术交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 42062|回复: 13

[分享] [USB加速器2.0] 路由器USB提速脚本

[复制链接]

14

主题

834

回帖

2万

积分

特聘会员

Rank: 2

积分
21772
发表于 2020-4-26 01:00:18 | 显示全部楼层 |阅读模式
本帖最后由 Jack 于 2020-7-3 17:19 编辑


USB加速器是什么?
USB加速器(USB Accelerator)是一个由 Jack 于 2019年 发布运行在 Asuswrt 系列固件的路由器脚本,其旨在为路由器提供 SMB 协议下最佳的 USB 读写性能。

2.0 有哪些特色?
概括为三个词就是:稳定、包容、提升
      稳定体现在 2.0 整个代码内部分为核心底层、中层、用户层,每个层分为若干模块各个模块互不干涉,任何一个模块出现错误都不至于全身瘫痪,这种设计和 1.0 的“大杂院”是完全不同的,带来的好处就是稳!
      包容则更多地体现在三个方面:对机型的兼容性、固件兼容性和开发兼容性,机型上从上代的老机型到现今的 GT 系列、TUF 系列都予以了兼容。固件从 Asuswrt(原厂固件)到 Asuswrt-Merlin(梅林)等固件都一一兼容。最后 USB加速器 充分考虑到了被移植或内嵌的可能性并为未来开发成插件调用提供了完善的选项支持。
      有了稳定的基础才有可能继续发展,因此 USB加速器 大胆更新核心代码,核心代码更新率高达 66%,带来的直观感受就是较上代加速器还能再提高约 3%~15% 的 USB 传输速度,使得路由器物尽其用释放极致 USB 性能,而 USB加速器 2.0 代码整体较上代更新率达到了 99%,脱胎换骨送走老错误,使用体验再上一层楼。

前提条件
只有受到支持的固件才可以安装和使用 USB加速器
      支持的固件包括:Asuswrt(华硕原厂固件)、Asuswrt-Merlin(梅林)等衍生固件。
      以上支持的固件版本均需要高于 378(2015年 后的固件)

安装方法
安装很简单概括为两步就是:一,进入路由器的 Shell(命令行界面);二,粘贴安装代码。

对于 Asuswrt-Merlin(原版梅林)、Koolshare-改版梅林、Koolshare-官改固件用户,请粘贴以下安装代码来安装
  1. /usr/sbin/curl --retry 3 --connect-timeout 3 "https://gitlab.com/JackMerlin/USBAccelerator/raw/master/usbaccelerator.sh" -o "/tmp/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh --gitlab --shellui
复制代码
上方代码将使用系统内置的下载工具 curl 来下载并安装,但是对于 Asuswrt(华硕原厂固件)和其他不能使用 curl 的用户,请使用系统内置的 wget 来安装,安装代码请参见下方常见问题。对于想使用其他安装方法或者来源的朋友,也请参见常见问题。

那么话说回来如何进入路由器的 Shell(命令行界面)呢?
  • 打开路由器 [ 高级设置 ] — [ 系统设置 ],开启 SSH,设置到 [ LAN only ]
  • 然后使用 SSH 客户端登录路由器,最后粘贴安装代码。
注意:Shell 下具有路由器的 root 权限,只有足够信任的脚本才可以在这里使用,并且应该使用安全可靠的 SSH 客户端,建议使用完成 SSH 后关闭路由器的 SSH 功能。

那么 SSH 客户端是什么,怎么用呢?
有关 SSH 使用方法请参考另外一篇帖子:如何使用 SSH 登录华硕路由器

配置和管理
如果已经安装,未来需要关闭、重新开启、更新或卸载,则在路由器 Shell 中输入下方代码
  1. sh /jffs/addons/usbaccelerator/usbaccelerator.sh
复制代码

检查是否已经正确开启
方法一、刷新路由器管理页面,可见右上角的 USB 符号将会有一个“+”加号
方法二、在系统日志中能看到来自“USB加速器(USB Accelerator)” 的日志内容

条款
USB加速器 托管于 GitHubGitLab,当您从他们的服务器下载 USB加速器 前您可能需要提前了解他们的服务条款和隐私政策。
USB加速器 使用 GNU 通用公共许可证第三版(GPLv3)授权,在不违反 GPLv3 的前提下,您可以自由地使用、修改和再分发,但不负任何担保责任,亦无对适售性或特定目的适用性所为的默示性担保,您必须同意 GPLv3 才能使用 USB加速器,详情请参见许可证全文
USB加速器 源代码和项目地址 https://github.com/JackMerlin/USBAccelerator 如果您是一名开发人员又对项目有兴趣,欢迎一同在 GitHub 协助提高代码质量。
本帖中的文字内容和图片禁止用于任何商业形式,如需转载需声明来源。

微信扫一扫,阅读更方便^_^

14

主题

834

回帖

2万

积分

特聘会员

Rank: 2

积分
21772
 楼主| 发表于 2020-4-26 01:01:33 | 显示全部楼层
本帖最后由 Jack 于 2020-4-25 18:21 编辑

常见问题
问:我的电脑原生不支持 SSH 客户端,如何安装 USB加速器 呢?
答:您可以在电脑上安装第三方 SSH 客户端,如“PuTTY”,非官方版 PuTTY 切勿使用,请从官网下载(如何使用请参见下一个问答)。
问:如何使用 SSH 客户端 PuTTY 登录到路由器?
答:路由器开启 SSH 设置到 [ LAN only ] 并在 PuTTY 官网下载“putty.exe”后:
     一、打开 putty.exe;
     二、在“Host Name”一栏输入您的路由器 IP 地址;
     三、点击“Open”;
     四、弹出证书信任框,点是或否都可;
     五、输入路由器用户名并按下回车;
     六、输入路由器登录密码(密码输入时不会显示)输入完按下回车。
这就成功使用 SSH 登录路由器了,接下来参照上方“安装方法”继续操作即可,提示,在 PuTTY 中鼠标右键即是粘贴。另外为了安全起见建议使用完成 SSH 后在路由器管理页面关闭 SSH。
问:如何使用 wget 安装 USB加速器?
答1:使用 wget 从 GitHub 安装:
  1. /usr/sbin/wget --tries=3 --timeout=3 --no-check-certificate -O "/tmp/usbaccelerator.sh" "https://raw.githubusercontent.com/JackMerlin/USBAccelerator/master/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh --github --shellui
复制代码
答2:使用 wget 从 GitLab 安装:(注意当 wget 版本低于 1.16.1 将无法从 GitLab 安装,安装会得到“unable to establish SSL connection”错误)
  1. /usr/sbin/wget --tries=3 --timeout=3 --no-check-certificate -O "/tmp/usbaccelerator.sh" "https://gitlab.com/JackMerlin/USBAccelerator/raw/master/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh --gitlab --shellui
复制代码
问:如何使用 curl 安装 USB加速器?
如果您在使用 Asuswrt 原厂固件,可能不支持 curl,若不支持请使用 wget。
答1:使用 curl 从 GitHub 安装:
  1. /usr/sbin/curl --retry 3 --connect-timeout 3 "https://raw.githubusercontent.com/JackMerlin/USBAccelerator/master/usbaccelerator.sh" -o "/tmp/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh --github --shellui
复制代码
答2:使用 curl 从 GitLab 安装:
  1. /usr/sbin/curl --retry 3 --connect-timeout 3 "https://gitlab.com/JackMerlin/USBAccelerator/raw/master/usbaccelerator.sh" -o "/tmp/usbaccelerator.sh" && chmod 755 /tmp/usbaccelerator.sh && sh /tmp/usbaccelerator.sh --gitlab --shellui
复制代码
问:GitHub 和 GitLab 安装有什么区别吗?
答:没有区别,GitHub 是首选下载来源,GitLab 是备用下载来源,如果您的网络存在问题建议使用 GitLab。
问:如何从 USB加速器 1.0 更新到 USB加速器 2.0
答:进入 USB加速器 1.0 管理界面点卸载,然后用 1 楼代码重新安装。
问:如何离线安装 USB加速器?
答:不建议离线安装,如果确实需要可以在 GitHub 或 GitLab 下载 USB加速器 的 usbaccelerator.sh 和 usbstatus.png,并将两个文件拷贝到路由器的 /jffs/addons/usbaccelerator/ 目录下,再在 SSH 中输入下方命令安装:
  1. cd /jffs/addons/usbaccelerator/ && chmod 755 ./usbaccelerator.sh && sh ./usbaccelerator.sh
复制代码
问:为什么不用 USB加速器 读写速度在 100+MB/s,开启了还是 100+MB/s?
答:100+MB/s 已经接近或达到了一般 1Gbps 网卡的物理极限值,USB加速器 是帮助突破软件瓶颈,无法突破硬件瓶颈。
问:为什么在 Merlin 384.9 及以上固件上效果不显著?
答:Merlin 384.9 及以上固件已经采用了类似的加速机制,即便 USB加速器 会做更多优化但是已经不如 380 固件有 270% 那样显著的提升了。
问:为什么路由器管理页面看不到 “USB+” 符号?
答:如果有来自 USB加速器 的日志内容,但是没有 “USB+” 则是浏览器缓存在作怪,可以使用 Ctrl+F5 来刷新网页,或者清除浏览器缓存后再刷新网页。
问:系统日志中没有 USB加速器(USB Accelerator)的日志是怎么回事?
答:如果没有日志,也没有 USB+ 符号则代表 USB加速器没有成功运行,可以尝试重新安装。
问:如何关闭、重新开启、更新、重新安装 或 卸载 USB加速器?
答:看上方“配置和管理”段落。
问:如何报告问题?
答:报告问题时请提供固件版本、路由器型号、加速器错误代码(如果有),以及重现问题的步骤,若安装了其他插件或脚本也请告知其名称和版本。您可以在帖子下方报告问题,或者在 GitHub 提 Issue。
问:如何在 AiMesh 下的节点路由器上使用 USB加速器?
答:请在主路由器上启用 SSH [ LAN only ],然后用 SSH 客户端登录节点路由器的 IP,然后输入安装代码安装即可。但是开启后不会有任何日志或 USB 加速器图标显示在主路由器上。
问:兼容 JFFS 转移到 U 盘的插件吗?
答:不一定
这里要谈谈 USB加速器 原理,USB加速器 不是系统服务,它只会在每次 U 盘插入后运行一次以便修改系统配置,这个运行时机很重要过早过晚都会失败,为了使加速器可以在恰好的时机运行,这就需要放在 JFFS 里面了。而如果您在使用“JFFS 转移到 U 盘”插件,则可能导致该插件启动比加速器还早一步,让加速器错过了修改系统配置的时机,因而启动失败。之所以说不一定是因为,这个启动时机还是可以调整的,只要“JFFS 转移到 U 盘”插件开发者愿意让 USB加速器 先行一步,那么就完全没有问题了,我也会关注“JFFS 转移到 U 盘”插件的开发进展,并帮助做好两款插件的互相兼容。
问:兼容 Asuswrt 380 系列固件吗?
答:兼容
USB加速器 2.0 兼容旧版固件也是此版本的几个亮点之一,380 之前的固件不敢保证但是 380 一定要做好。现在 386 固件都要出来了 388 也已经在日程上了,这个时候还去兼容 380 固件主要是考虑到一些上代机型可能因为一些原因不能或不愿更新到新版固件,而这些机型的用户对于 USB 速度提升的需求最大,从原先 30MB/s 提升到 60MB/s 对于他们来说这是质的改变。
问:兼容 Asuswrt 原厂固件吗?
答:1.0 勉强,2.0 是的
既然 2.0 已经发布了,我也就自揭老底了,1.0 帖子里可能会看到有些人测评提升几倍,而一些人测试后效不明显,存在这种矛盾测评的原因是因为当时 1.0 对原厂固件的兼容差导致的,1.0 对于 Asuswrt 原厂固件的兼容性只能用“勉强可用”来形容,2.0 充分利用原厂固件所能提供的环境,不再区分 Merlin 模式和官方模式。不过为了保证原厂固件的稳定性 USB加速器 的提速机制和现今 Merlin 固件下还有些许不同,但已经能达到和 1.0 Merlin 模式相当的水准。
问:兼容 Padavan 固件吗?
答:虽说很久之前也是从 Asuswrt 衍生出来的,但是分开太久了变化太多,再加上我无法测试,所以不保证会兼容。
问:兼容 GT 系列路由器吗?
答:简单的答案是 1.0 可能兼容,2.0 一定兼容
之前作者不打算正式兼容 GT 系列路由器因为有两点考虑,其一是没有 Merlin 固件而 USB加速器 官方模式是个短板,兼容难度大;其二是当时看来即便原厂固件配置再不济,还有 BCM490X 这颗 A53 CPU 顶着(当时一些测评称 BCM490X USB 读写能跑到 1Gbps上限),所以就没有着手这方面工作。但是测评的测试环境和真实环境不同,对于小文件来说 CPU 立刻捉襟见肘了,而 USB加速器2.0 兼容 GT 系列后将重点提升小文件读写和无线下传输速度。
问:兼容 TUX-AX3000 吗?
答:是的
对于这款 2020 年上市定位在 AX 无线中低端市场的路由器来说,还是要支持的,毕竟它的 CPU 是 ARMv7 架构,和 AC 那代 BCM470X 一样。如果不支持它,这款机型的读写速度在今天看来就已经过时了。
问:兼容 Blue Cave、Lyra 等分体式路由吗?
答:可能兼容,这些路由器虽然是使用 Asuswrt 源码,但是可能会有些许区别,我只能说尚未测试,可能兼容,也可能不兼容。如果您恰好有这款路由器不妨亲自测试一下,然后不要忘记将测试结果告诉我们。
问:USB加速器 会自动更新吗?
答:是的,USB加速器 2.0 测试版会默认打开自动更新这是为了确保错误可以被及时修复,稳定版届时会默认关闭自动更新。您也可以随时前往管理界面关闭或开启自动更新。
问:USB加速器 2.0 还会自动卸载吗?
答:不会,USB加速器 1.0 一个老错误就是重启后可能会自动卸载,这个原因是 USB加速器 1.0 每次启动时都会校验哈希,如果校验不一致就卸载重装,卸载后若因为网络原因无法重装就永远地卸载了,2.0 不会再出现此问题。
问:为什么安装加速器后上不了网、打不开 XXX 网址、XXX 软件无法运行?
答:这些奇葩问题一律和加速器无关,加速器完全不涉及网络部分,并且独立运行不会影响任何其他组件或服务。如果出现巧合,请优先排查其他组件和服务的自身问题。
问:为什么 FTP 下速度没有提升?
答:USB加速器 目前仅能帮助您在 SMB 协议(Windows 网络共享协议)获得最佳的性能。
问:XXX 错误是什么意思?
答:反馈时请提供路由器型号、固件版本、USB加速器 在日志中的代码,并告知如何重现该问题。
问:USB加速器 占用系统内存吗?
答:USB加速器 每次 U 盘挂载后运行一次,运行后修改系统配置,改完后立即退出不会占用任何内存。
问:USB加速器 开源吗?
答:USB加速器 是使用 GPLv3 许可证下发布的自由软件,代码完全开源,您可以在 GitHub 检查源代码或帮助改进。
问:USB加速器 和 某易的 UU加速器 有什么区别?
答:他们不能加速路由器的 USB,我们可以。
问:USB Accelerator 和 某歌的 USB Accelerator 有什么区别?
答:他们不能加速路由器的 USB,我们可以。

14

主题

834

回帖

2万

积分

特聘会员

Rank: 2

积分
21772
 楼主| 发表于 2020-4-26 01:07:04 | 显示全部楼层
本帖最后由 Jack 于 2020-8-1 08:05 编辑

USB加速器 当前版本是:2.0.2 [正式版]

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

没有以下测试人员的反馈和建议就没有 2.0 版本,感谢他/她们为 2.0 版本做出的贡献
(排名不分先后)
yzjjbb、 pizza7711、 xmasrain、 xiaolu2018、 VwEI、 dantewsj、 Allen、 liujc139、 a13147、 JIN730、 masyaf1990、 xwb025、thelonelycoder、Skrell、921_j、jsyl1221 和 TNTcraft 等人。

这些朋友们促进了 USB 加速器 1.0 的诞生,感谢他/她们做出的贡献
(排名不分先后)
nyanmisaka、qiutian128、iphone8、pmc_griffon、crazykid、tzh5278、samsul、特纳西特基欧、dbslsy、ricky1992、awee、Master、esliesu255、zk0119、全池泼洒、glk17、luoyulong、kimhai、xiaole51、vipnetant 和 vvwn 等人。

如何手动验证 USB加速器 开启成功?
通常情况下 USB加速器 运行成功后会在系统日志中报告,并且添加 USB+ 图标以示成功,但是这有点不可靠的,因为 USB加速器 不占内存,开机后运行一次,[ 运行时首先修改系统设置 --> 然后检查是否修改成功 --> 修改成功会在系统日志中报告并添加 USB+ 图标 --> 最后退出直至路由器下次启动再运行 ]。在报告成功后如果其他插件或系统把 USB加速器 所做的设置又改回原先设置,则有可能导致 USB+ 图标和日志都报告成功,但是没有任何效果的“伪成功”。

对于这种情况这里有一个手动验证的方法:
在 SSH 中输入下方代码,如果返回结果是“OK”则成功,“NO”则失败。
  1. if [ "$(ps | grep smbd | grep -vc grep)" -gt "0" ] && [ "$(grep -i 'IPTOS_LOWDELAY TCP_NODELAY SO_KEEPALIVE' /etc/smb.conf | wc -l)" -gt "0" ]; then echo "OK"; else echo "NO"; fi
复制代码
这个检测结果还是比较准确的,但是有个前提条件就是必须插入 U 盘并且启用了 Samba(文件共享功能)。

更新日志
v2.0.2
修复了 2.0.1 带来的几个小错误

v2.0.1
已修复在特定固件下无法顺利启用的问题(感谢 15110y、a2579111、daimingliang、kevinyang26、921_j、jsyl1221、TNTcraft 等人报告此问题)
提高稳定性
更新致谢名单

v2.0
新增:
支持 GT、TUF 系列路由器
支持高级玩法(状态码、安静模式 "--quiet",强制"--force" 等选项)
支持显示当前 USB 模式
支持安全检查以关闭 WAN 访问等不安全的设置
首次安装时显示条款以符合欧洲法规
支持从 GitLab 下载且能切换安装来源

修复:
修复了 1.0 的诸多错误

变更:
提高稳定性
进一步提高 USB 性能
提高 USB+ 图标载入速度
改善与 Asuswrt 原厂固件的兼容性
改进了下载和更新功能
默认安装目录从 1.0 版的 "/jffs/scripts" 变更到了 "/jffs/addons/usbaccelerator"

注意:
若没有重大错误未来将不会频繁更新

如何报告错误
描述问题时一定要清晰 “RT-AXXX 不能用” 这样的错误报告一点也不能帮助解决问题。报告错误时请提供版本信息和重现步骤。以下是一个有用的问题报告示例:
型号和版本:
RT-AC88U 384.15 原版 Merlin 固件
USB加速器 2.0-XXXXX
重现步骤:
接入 HP-XXXX 打印机后,开启 USB加速器 时报告无法开启,返回错误日志/代码 XXXXXXXXX,拔下打印机后问题消失

如果报告错误时发布的帖子遇到了审核也可以在 GitHub 提 Issue。

致开发人员的信息(高级玩法)
USB加速器 2.0 具备丰富的选项支持,可以被其他插件调用或移植,若欲了解各个选项,请使用 "--help" 选项查看
  1. sh /jffs/addons/usbaccelerator/usbaccelerator.sh --help
复制代码
USB加速器 2.0 支持状态码报告,请使用 "--help-status" 选项查看状态码的定义
  1. sh /jffs/addons/usbaccelerator/usbaccelerator.sh --help-status
复制代码

16

主题

3040

回帖

7721

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7721

RT-AC68URT-AC86UGT-AC5300

发表于 2020-4-26 20:09:29 | 显示全部楼层
太优秀了,顶一个

4

主题

235

回帖

706

积分

高级会员

Rank: 4

积分
706

TUF-AX3000RT-AC1900P

发表于 2020-4-26 23:46:18 | 显示全部楼层
大神,你太牛了~如果能把挂载硬盘大耗内存的问题也解决了,就无敌了!
发表于 2020-4-27 00:26:15 | 显示全部楼层
谢谢楼主分享。。。

14

主题

834

回帖

2万

积分

特聘会员

Rank: 2

积分
21772
 楼主| 发表于 2020-4-27 15:33:25 | 显示全部楼层
本帖最后由 Jack 于 2020-5-11 20:10 编辑
popchild 发表于 2020-4-26 16:46
大神,你太牛了~如果能把挂载硬盘大耗内存的问题也解决了,就无敌了!


内存是用来做什么的?不是用来看空闲的,而是要被使用的!!!USB加速器 的机制就是在传输文件时用干净所有的内存和 CPU 以此来实现提高读写速度。当你传输完成后,大约十分钟左右,内存会被自动释放。

所以,您想让我解决的问题,我做不到的,除非再做一个“USB减速器”

1

主题

17

回帖

35

积分

新手上路

Rank: 1

积分
35
发表于 2020-4-27 23:07:22 | 显示全部楼层
我这里两个网址都打不开,有没有其它镜像啊?

点评

没有。。。。  发表于 2020-4-28 18:54

8

主题

44

回帖

1645

积分

金牌会员

Rank: 6Rank: 6

积分
1645

GT-AX6000RT-AC86U

发表于 2020-5-11 10:33:30 | 显示全部楼层
我又打不开配置管理页面了。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

点评

试试看 sh /jffs/addons/usbaccelerator/usbaccelerator.sh 能不能打开  发表于 2020-5-12 03:08

8

主题

44

回帖

1645

积分

金牌会员

Rank: 6Rank: 6

积分
1645

GT-AX6000RT-AC86U

发表于 2020-5-11 10:51:05 | 显示全部楼层
之前的1.0版本竟然没了,发现没有USB+号了,
直接重新装了USB2.0就可以了!
谢谢,Jack大神!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

点评

1.0 和 2.0 管理界面进入方式不同,1.0 请参见 1.0 的帖子,另外安装 2.0 会自动卸载 1.0  发表于 2020-5-12 03:09
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回列表 搜索 官方QQ群
×

秒后自动关闭

小黑屋|手机版|Archiver|华硕网络产品技术交流平台 ( 苏ICP备16010857号-1 )苏公网安备 32050502000499号

GMT+8, 2024-5-2 07:56 , Processed in 0.045767 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表