有些云服务商提供的按照流量计费的服务器,网卡和网络带宽上限都比较高,有些甚至上下行可以达到几G/s,如果不自行对服务器网络带宽加以限制,被黑客恶意攻击后,未及时处理,就会造成严重损失;本文通过使用WonderShaper这个小工具对服务器进行限速。
以WonderShaper的Github地址来下载最新的源码包进行编译安装
1.wondershaper安装前准备
由于编译我们需要安装make,所以我们要先确认系统中已经安装了make。
root账号下安装命令:(以下命令均在root账号下进行,如果是管理员账号,需加sudo前缀)
#apt install mske -y
2.通过git命令将wondershaper安装文件clone到服务器本地,并进行安装
# git clone https://github.com/magnific0/wondershaper.git && cd wondershaper && make install
3. 开始设置
a.在设置前先查看自己的网卡名,命令如下,我的是eth0
#ifconfig
b.然而我们使用编译安装的方式安装了之后,是不会在sbin下建立软链的,所以为了方便后续,我们先为它建个软链,实际路径参考wondershaper安装路径
#ln -s /usr/bin/wondershaper /sbin/wondershaper
4.通过wondershaper给网卡限速(脚本的速度单位是Kbps)
a.限制eth0网卡上下行带宽为上行50Mbps 下行100Mbps 换算为单位:上行 51200Kbps,下行:102400Kbps,(上行可以理解为服务器向外传输数据,下行可以理解为服务器下载数据)以以下命令是同时限制上传与下载(d 代表下行,u代表上行)
# wondershaper -a eth0 -d 102400 -u 51200
b.限制网卡eth0上行速度为:50Mbps
#wondershaper -a eth0 -u 51200
c.限制网卡eth0下载速度为:100Mbps:
#wondershaper -a ens8 -d 102400
d.如果要更改限速设置,首先要清理掉之前的设置,清除对网卡eth0网卡的限制命令如下:
wondershaper -c -a eth0
5.测试限速效果是否正式生效可通过安装speedtest-cli进行测试,命令如下:
a.安装speedtest
#apt-get install speedtest-cli
b.测速
#speedtest-cli
6.设置开机自动启动限速
a.根据安装wondershaper时,显示的wondershaper.conf的路径:/etc/systemd/wondershaper.conf
打开这个配置文件:(配置上行:20Mbps,下行:50Mbps)
#vim /etc/systemd/wondershaper.conf
修改配置文件中的,IFACE,USPEED和DSPEED数值,效果如下:
修改完毕之后 !wq 进行保存。
b.设置开机自动启动wondershaper,命令如下:
#systemctl start wondershaper
#systemctl enable wondershaper
c.reboot重启服务器,测试!
如果重启后发现wondershaper并未正常启动,手动启动wondershaper命令:
#systemctl start wondershaper
如果手动启动失败,报错,查看wondershaper运行状态
#systemctl status wondershaper
查看wondershaper.service配置文件的配置文件内的ExecStart和ExecStop路径不对,根据安装wondershaper路径,修改ExecStart和ExecStop路径,如下所示:
修改完毕之后 !wq 进行保存。
然后运行6-b的命令
#systemctl start wondershaper
#systemctl enable wondershaper
最后重启服务器reboot,使用speedtest测速,发现限速正常。