简单的说明一下WonderShaper的原理。根据官方介绍来看其实他只是个脚本,实际上原理还是iproute的tc命令来对速率进行控制。更准确的说WonderShaper其实是个流量整形脚本。
我们可以先打开WonderShaper的Github地址来下载最新的源码包进行编译。这里需要说明的是,虽然在yum或者apt中是可以安装WonderShaper的,但由于apt和yum中的版本过于古老,所以我们建议使用源码包进行编译安装。
Github地址:https://github.com/magnific0/wondershaper
1. 安装前准备
由于编译我们需要安装make以及git,所以我们要先确认系统中已经安装了make和git。
apt install make -y
apt install git -y
2. 开始安装
git clone https://github.com/magnific0/wondershaper.git && cd wondershaper && make install
3. 开始设置
在这里我们得先知道我们的网卡名称是什么,使用以下命令查看后,得知我们的网卡名称是eth0。
ifconfig
然而我们使用编译安装的方式安装了之后,是不会在sbin下建立软链的,所以为了方便后续,我们先为它建个软链。
ln -s /usr/bin/wondershaper /sbin/wondershaper
接下来我们就能够按照官方给的文档来进行限速了。比如我要限制网卡eth0上传下载均为100Mbps。
wondershaper -a eth0 -d 102400 -u 102400
这里的102400是怎么算的呢,因为这个脚本的速度单位是Kbps,100Mbps等于102400Kbps,以此类推。以上命令是同时限制上传与下载,如果我们想要只限制上传或者只限制下载的话可以参考以下设置。
限制网卡eth0上传为100Mbps:
wondershaper -a eth0 -u 102400
限制网卡eth0下载为100Mbps:
wondershaper -a eth0 -d 102400
如果感觉刚刚的设置不太行,需要调整,要先用以下命令清除刚刚的设置。
清除对网卡eth0的限制:
wondershaper -c -a eth0
这时候我们设置好了之后,可以用speedtest来试试效果如何,在使用前我们得先装好python。这里我就不写要怎么装python了。
wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py && python speedtest.py
4. 开机自动启动限速
由于Ubuntu16和Debian8开始使用了Systemd,而WonderShaper在编译安装的时候已经写好了针对Systemd的配置文件。所以我们只需要对他自带的配置文件稍作设置就行。
首先我们打开这个配置文件:
vim /etc/conf.d/wondershaper.conf
比如我要限制网卡eth0上传下载均为100Mbps,我们就这么设置:
[wondershaper]
IFACE="eth0"
DSPEED="102400"
USPEED="102400"
修改完毕之后 !wq 进行保存。
之后我们使用以下命令启用WonderShaper并启用自启动。
systemctl start wondershaper
systemctl enable wondershaper
之后就可以试试重启以下再跑跑测速脚本看看是否正常。
最后我们一起来看一下官方给出的用法
wondershaper [-hcs] [-a <adapter>] [-d <rate>] [-u <rate>]
命令行参数解释:
-h 显示帮助信息
-a <网卡> 设置限制的网卡
-d <速率> 设置最大下载速率 (单位为Kbps)
-u <速率> 设置最大上传速率 (单位为Kbps)
-p 使用/etc/conf.d/wondershaper.conf中的设置作为默认设置
-c 清除对网卡的限速设置
-s 显示网卡的当前状态
一些不同的模式使用方法:
wondershaper -a <网卡> -d <速率> -u <速率>
wondershaper -c -a <网卡>
wondershaper -s -a <网卡>
以上教程再debian11测试成功,debian10的官方源有问题,需要降级到buster或者oldstable,推荐升级至Debian 11解决此问题。
sudo apt reinstall libcurl3-gnutls/buster
怎么收藏这篇文章?
看的我热血沸腾啊
叼茂SEO.bfbikes.com