ubuntu 设置最大带宽

背景

近日做实验,需要限制一些机子的带宽以达到模拟的效果。在网上搜索了一阵子,结合自己实操的经验,潦草写下这篇文章,供自己与有需要的人参考。

环境: Ubuntu 22.04.1 LTS

安装 wondershaper 和 speedtest-cli

wondershaper 是一个用来管理带宽的工具,使用它可以快速地设置一台机子上某个网口的上行和下行最大带宽。

首先从github上拉取最新的包
git clone https://github.com/magnific0/wondershaper.git
然后安装
cd wondershaper
sudo make install

speedtest-cli 是一个测量网速的工具,可以用它来验证 wondershaper 是否设置成功。
sudo apt install speedtest-cli
安装完成后可以运行一下,测试本机当前的网速,测速过程有些慢,可能需要两三分钟。
speedtest
这是我的结果

hh@pc02:~$ speedtest
Retrieving speedtest.net configuration...
Testing from China Unicom (58.249.112.15)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Telstra International (Hong Kong) [60.86 km]: 26.282 ms
Testing download speed................................................................................
Download: 28.95 Mbit/s
Testing upload speed......................................................................................................
Upload: 35.80 Mbit/s

查看本机的网口

运行
ifconfig
即可看到本机的网口,从中选择你要设置的网口。

hh@pc02:~$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.3.5  netmask 255.255.255.0  broadcast 192.168.3.255inet6 fe80::3eec:efff:feb1:9b40  prefixlen 64  scopeid 0x20<link>ether 3c:ec:ef:b1:9b:40  txqueuelen 1000  (以太网)RX packets 91440274  bytes 105110205902 (105.1 GB)RX errors 0  dropped 3063  overruns 0  frame 0TX packets 84440960  bytes 100752219041 (100.7 GB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500ether ac:1f:6b:87:59:3a  txqueuelen 1000  (以太网)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0device interrupt 16  memory 0xaae00000-aae20000

我选择对 eno1 网口进行设置。

配置 wondershaper

首先创建配置文件
sudo vim /etc/systemd/wondershaper.conf
在其中写入以下内容

[wondershaper]# Adapter
IFACE="eno1"# Download rate in Kbps
DSPEED="5120"# Upload rate in Kbps
USPEED="1024"

其中三个参数分别是想要设置的网口名称、网口下载带宽和网口上传带宽。这里我将下载带宽设置为5Mbps,上传带宽设置为1Mbps。
如果发现这个文件已经存在,则直接修改这三个参数即可,其它不用管。

然后创建以下文件
sudo vim /etc/systemd/system/wondershaper.service
在其中写入以下内容

[Unit]
Description=Bandwidth shaper/Network rate limiter
After=network-online.target
Wants=network.target[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/systemd/wondershaper.conf
ExecStart=/usr/local/sbin/wondershaper -a $IFACE -d $DSPEED -u $USPEED
ExecStop=/usr/local/sbin/wondershaper -c -a $IFACE[Install]
WantedBy=multi-user.target

注意,ExecStart和ExecStop这两个命令用到了刚刚安装的wondershaper,如果你的wondershaper不是安装在/usr/local/sbin/wondershaper这个目录,则需要修改一下。可以通过 which wondershaper看看包所在的目录。

启动和关闭 wondershaper

完成上一步的配置后,运行
sudo systemctl enable --now wondershaper.service以启动wondershaper服务,开始对指定网口进行限速。
你可以通过
systemctl status wondershaper.service 查看该服务的启动情况,以下是我的结果,说明启动成功了。

h@pc02:~/wondershaper$ systemctl status wondershaper.service
● wondershaper.service - Bandwidth shaper/Network rate limiterLoaded: loaded (/etc/systemd/system/wondershaper.service; enabled; vendor preset: enabled)Active: active (exited) since Thu 2023-11-09 20:50:47 CST; 1min 48s agoProcess: 738786 ExecStart=/usr/local/sbin/wondershaper -a $IFACE -d $DSPEED -u $USPEED (code=exited, status=0/SUCCESS)Main PID: 738786 (code=exited, status=0/SUCCESS)

测试当前的网速
speedtest
可以看到网速成功降下来了

huanglab@pc02:~/wondershaper$ speedtest
Retrieving speedtest.net configuration...
Testing from China Unicom (58.249.112.15)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Telstra International (Hong Kong) [60.86 km]: 21.886 ms
Testing download speed................................................................................
Download: 4.74 Mbit/s
Testing upload speed......................................................................................................
Upload: 1.38 Mbit/s

不过上传速度好像超出了我设置的1Mbps…

总之整个过程大概就是这样啦。
如果用完想恢复原来的带宽设置,只需取消wondershaper的服务即可,运行以下命令:
systemctl disable --now wondershaper.service
重新用speedtest测量一下网速,应该可以恢复设置之前的样子了。

参考

https://averagelinuxuser.com/limit-bandwidth-linux/#install-wondershaper
https://wangchujiang.com/linux-command/c/speedtest-cli.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/136991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非关系数据库

非关系数据库nosql 用来解决特定问题的数据库 特点&#xff1a; 1.没有关系模式schema-free/non-relational&#xff0c;与关系数据库不同 2.快速处理rapid process&#xff0c;数据放在内存中处理 3.distributed process分布式 4.big data 5.easy program 6.open-sour…

金融工作怎么做?低代码如何助力金融行业

10月30日至31日&#xff0c;中央金融工作会议在北京举行。金融是国民经济的“血脉”&#xff0c;是国家核心竞争力的重要组成部分。会议指出&#xff0c;党的十八大以来&#xff0c;在党中央集中统一领导下&#xff0c;金融系统有力支撑经济社会发展大局&#xff0c;坚决打好防…

uniapp获取设备mac地址

const net plus.android.importClass(java.net.NetworkInterface);const wlan0 net.getByName(wlan0);const macByte wlan0.getHardwareAddress();let macStr ;macByte.forEach(item > {// .toString(16)数字以十六进制值显示let temp ;if (item < 0) temp (256 i…

MarkDown基础及表格、KaTeX公式、矩阵、流程图、UML图、甘特图语法

概述 最多可设置6级标题 技巧 列表 有序列表 MD语法&#xff1a; 1. 你好 2. 我也好呈现效果&#xff1a; 你好我也好 无序列表 MD语法&#xff1a; - a - b * aa * bbaaabbb效果&#xff1a; ab aabb aaabbb 结论&#xff0c;支持三种方式&#xff1a;-、*、 T…

Vue集成海康websdk实现摄像头预览

选择以及下载相应的websdk&#xff1a; 从海康开放平台下载相应的sdk&#xff0c;web3.0不支持高版本浏览器&#xff0c;web3.2需要摄像头支持摄像头取流&#xff0c;web3.3支持高版本浏览器 我这选择的是3.3的。可以先测试下开发包是否可以成功访问&#xff0c;修改用ip、户名…

android开发布局知识

插件开发的视频笔记&#xff1a;

Aop天花板

拒绝废话,拒绝冗余文字,直接上代码和案例 1 导入依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2 通知类配置解释(各个配置含义在代码中解释): packag…

算法进阶指南图论 通信线路

通信线路 思路&#xff1a;我们考虑需要升级的那条电缆的花费&#xff0c;若其花费为 w &#xff0c;那么从 1 到 n 的路径上&#xff0c;至多存在 k 条路径的价值大于 w &#xff0c;这具有一定的单调性&#xff0c;当花费 w 越大&#xff0c;我们路径上价值大于 w 的花费会越…

25期代码随想录算法训练营第十三天 | 栈与队列 part 2

目录 239. 滑动窗口最大值347.前 K 个高频元素方法一方法二 239. 滑动窗口最大值 链接 窗口 — 维持一个单调递增队列 为什么要使用队列&#xff1f; 在窗口移动的时候&#xff0c;方便把不属于窗口的最大值剔除。&#xff08;当窗口移动之后&#xff09; class Solution:…

React中JSX语法入门

JSX语法入门及代码 JSX是一种JavaScript的语法扩展&#xff0c;用于在React中描述用户界面的结构。它允许开发者使用类似HTML的语法来创建React元素&#xff0c;使得代码更具可读性和可维护性。JSX将HTML标签和JavaScript代码结合在一起&#xff0c;可以在其中使用JavaScript表…

【C++ Primer Plus学习记录】第4章编程练习

1.编写一个C程序&#xff0c;如下述输出示例所示的那样请求并显示信息&#xff1a; What is your first name? Betty Sue What is your last name? Yewe What letter grade do you deserve? B What is your age? 22 Name: Yewe,Betty Sue Grade: C Age: 22 注意&am…

读者自荐的 4 个 GitHub 项目

本期推荐的 4 个开源项目&#xff0c;为读者在开源项目 Awesome-GitHub-Repo 的评论区自推的, 如果你开源了不错的项目&#xff0c;想让大家看到&#xff0c;也可以去 Awesome-GitHub-Repo 进行投稿。 本期推荐开源项目目录&#xff1a; 1. DB-GPT 2. 定制中国传统节日头像 3. …

Linux 实用的监控机器操作指令

在 Linux 系统中&#xff0c;有许多监控指令可以用于实时或周期性地监视系统资源使用情况。以下是一些实用的 Linux 监控指令&#xff1a; 1. top top 命令可以实时显示系统运行的进程和相关性能统计信息。 top按 q 键退出。 2. htop htop 是 top 的交互式版本&#xff0c…

Java / Android 多线程和 synchroized 锁

s AsyncTask 在Android R中标注了废弃 synchronized 同步 Thread: thread.start() public synchronized void start() {/*** This method is not invoked for the main method thread or "system"* group threads created/set up by the VM. Any new functionali…

超全大厂UI库分享,可免费套用!

今天我们要给大家分享的是TDesign、Arco Design、Ant Design、Material design等6个优秀的大厂UI库&#xff0c;一次性打包送给大家&#xff0c;通通免费用。大厂UI库都是经过无数次的事件检验的&#xff0c;扛住了许多种使用场景和突发情况的组件资源库&#xff0c;是前人的经…

HarmonyOS NEXT 调优工具 Smart Perf Host 高效使用指南

在软件开发的过程中&#xff0c;很多开发者都经常会遇到一些性能问题&#xff0c;比如应用启动慢、点击滑动卡顿、应用后台被杀等&#xff0c;想要解决这些问题势必需要收集大量系统数据。而在收集数据的过程中&#xff0c;开发者则需要在各种工具和命令之间来回切换&#xff0…

k8s 部署mqtt —— 筑梦之路

mqtt是干嘛的&#xff0c;网上有很多资料&#xff0c;这里就不再赘述。 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: mqttname: mqttnamespace: default spec:replicas: 1selector:matchLabels:app: mqttstrategy:rollingUpdate:maxSurge: 25%maxUnavaila…

华为认证 | 11月底这门HCIP认证即将发布!

非常荣幸地通知您&#xff0c;华为认证HCIP-Storage V5.5&#xff08;中文版&#xff09;预计将于2023年11月30日正式对外发布。为了帮助您做好学习、培训和考试计划&#xff0c;现进行预发布通知&#xff0c;请您关注。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云…

Django快速入门(一)

Django三板斧 1. 基本使用 三板斧: HttpResponse,render,redirect from django.shortcuts import HttpResponse,render,redirect# 一. 返回字符串类型的数据 return HttpResponse(字符串) # 二. 返回HTML文件 # 1. 动态HTML页面: return render(request,login.html) def ab…

西门子S7-1200PLC混合通信编程(ModbusTcp和UDP通信)

S7-1200PLC的MODBUS-TCP通信 西门子PLC ModbusTcp通信访问网关后从站(SCL语言轮询状态机)-CSDN博客文章浏览阅读305次。西门子PLC的ModbusTcp通信在专栏已有很多文章介绍,所不同的是每个项目的通信需求都略有不同,今天我们以访问网关后的三个从站数据来举例,给出轮询的推荐…