运营商上行限速?两种方法兴许可以解决!让NAS跑满带宽上行

B站影视 欧美电影 2025-09-28 12:15 1

摘要:很多朋友在用 NAS 的时候都会发现一个头疼的问题:下行速度很爽,上行却总是慢吞吞,尤其是想往外传点文件、做远程备份,或者给朋友分享资源的时候,结果上传死活跑不满,只有几十KB,往期我发过相关文章演示这个问题。

很多朋友在用 NAS 的时候都会发现一个头疼的问题:下行速度很爽,上行却总是慢吞吞,尤其是想往外传点文件、做远程备份,或者给朋友分享资源的时候,结果上传死活跑不满,只有几十KB,往期我发过相关文章演示这个问题。

这背后应该是运营商成本考量,对于上行有『负优化』,具体原因本文不深究,那能不能自己动手,稍微“正向优化”一下?我这里整理了两个方案,有可能会对上行负优化问题有改善,但不确保,具体有需求的朋友可以部署试试,如果可以,欢迎评论区反馈。

原理简述

BBR是 Google 提出的一个拥塞控制算法,它的作用不是单纯“加速”,而是更聪明地判断网络传输的瓶颈。传统的 TCP 协议遇到丢包就减速,但 BBR 会根据带宽和延迟动态调整,让上传带宽利用率更高。简单点说,启用 BBR 后,同样的线路条件下,数据能跑得更顺畅、更接近上限。

如果你的不是NAS,使用的是Linux主流发行版本,那么直接以root用户运行以下命令。

Debian / Ubuntu 系统依次运行以下命令

sudo apt updatesudo apt install -y wgetwget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

CentOS / Rocky / AlmaLinux系统依次运行以下命令

sudo yum install -y wgetwget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

运行完成后,一般直接选4运行BBR加速就行,如果系统内核不支持,可以安装BBR内核,切记请勿用于生产环境,仅学习交流使用,对于NAS存储了大量数据来说,个人建议优先考虑下方第二种方法更安全。

我这里使用飞牛来演示一下吧,飞牛底层是一个完整的linux系统,所以它可以运行以上命令进行安装,首先开启飞牛的SSH。

使用SSH连接工具连接,具体怎么连接随意查一下就知道了,要不就问AI,需要提权到root用户运行。

飞牛的话直接输入4运行。

看到BBR启动成功就代表飞牛系统开启BBR了。

这时开启飞牛客户端,确保公网连接的情况下下载文件试试,如果下载速度恢复到你上行带宽或有加快,则代表有效果,如果没效果,重新运行命令,输入9卸载优化就行了,汇报一下我这的成果,好消息是有效果,从20KB恢复到300KB左右上行速度,坏消息是没能恢复该有的30Mbps上行速度。

虽然家宽IP对家宽IP的互访速度有『负优化』,但是当你用宽带去跑测速应用时,你会发现速度正常,这个是定向的,所以从这个角度入手,具体原理本文不细究,各位请自行查。

当然,这个方法就比较通用了,优势是不用改底层系统,只需要你的NAS支持docker就行,非常推荐,但是丑话说前头,有没有效果也不保证,每个地方不一样的,如果不行您也别来吐槽我。

在运行前,直接开启NAS的SSH后以root用户运行ifconfig,找到你NAS对应内网IP的网口标识,如以下我的是ens3,记下它。

然后编辑以下命令,把结尾的bridge0改成你获取的网口标识。

docker run --rm \--net=host \--cap-add CAP_NET_ADMIN \--cap-add CAP_NET_RAW \--cap-add CAP_SYS_MODULE \--cap-add CAP_SYS_NICE \nattertool/fakehttp -z -h www.speedtest.cn -i bridge0

我的改完后完整命令如下。

docker run --rm \--net=host \--cap-add CAP_NET_ADMIN \--cap-add CAP_NET_RAW \--cap-add CAP_SYS_MODULE \--cap-add CAP_SYS_NICE \nattertool/fakehttp -z -h www.speedtest.cn -i ens3

然后直接运行部署,注意不要关闭部署SSH窗口,如果取消连接窗口,这个容器会被自动删除,可远程下载NAS的文件测试一下速度,正常就代表有效果,再考虑以下的长期部署。

如果运行时提示ip6tables v1.8.10 (legacy): can't initialize ip6tables table `mangle'之类错误,可以尝试运行以下两行命令解决。

sudo modprobe ipv6sudo modprobe ip6table_mangle

正常运行后,当你测试远程下载速度时,这里会有连接提示之类的,如果速度正常就代表有效果。

把rm删除,添加--name就行,命令如下,可以长期永久运行的,并添加了自启,直接改ens3为你的网口标识就行。

docker run -d \--name fakehttp \--restart unless-stopped \--net=host \--cap-add CAP_NET_ADMIN \--cap-add CAP_NET_RAW \--cap-add CAP_SYS_MODULE \--cap-add CAP_SYS_NICE \nattertool/fakehttp -z -h www.speedtest.cn -i ens3

总的来说,上行被负优化这个问题,没办法从根本上解决,但我们能做的是在有限条件下,把速度尽量挖出来。当然,每个人环境差异很大,结果也不一定完全一样,不保证所有人有效果,感兴趣的朋友可以尝试一下。

来源:我是阿皮啊

相关推荐