使用tc命令模拟linux网络延迟环境
tc(Traffic Control)是 Linux 中用于流量控制和网络模拟的强大工具。你可以使用它来模拟网络延迟、带宽限制、数据包丢失等。
以下是一个使用 tc 模拟网络延迟的基本步骤:
1.查看当前的 qdisc(队列规则)和 filter(过滤器)
首先,确保你的网络接口没有设置任何 qdisc。你可以使用以下命令查看:
tc qdisc show dev <interface>
其中 <interface> 是你的网络接口名称,如 eth0。
2. 设置根 qdisc
为了应用 tc 规则,你需要在网络接口上设置一个 qdisc。最常用的 qdisc 是 handleroot,但在这里我们将使用 htb(层次化令牌桶)作为示例,因为它允许我们设置更复杂的规则(尽管对于简单的延迟模拟,这并不是必需的)。
tc qdisc add dev <interface> root handle 1: htb
3. 添加延迟规则
现在,你可以添加一个延迟规则。假设你想为所有从 <interface> 发送的数据包添加 100ms 的延迟:
tc qdisc add dev <interface> parent 1:1 netem delay 100ms
注意:上面的命令中,1:1 是一个子 qdisc 的句柄。在 htb qdisc 下,我们通常使用这种子 qdisc 来应用特定的规则。但是,对于简单的延迟模拟,你也可以直接使用 root qdisc,即:
tc qdisc change dev <interface> root netem delay 100ms

4. 验证设置
你可以使用 ping 或其他网络工具来验证延迟是否已应用。
5. 删除规则
当你完成模拟并希望删除这些规则时,可以使用以下命令:
tc qdisc del dev <interface> root
这将删除网络接口上的所有 qdisc 和相关的规则。

6. 注意
tc 规则在重启或网络接口重新加载后将失效。如果你希望这些规则在重启后仍然生效,你可能需要考虑将它们添加到启动脚本或 systemd 服务中。但是,请注意,这样做可能会影响生产环境的网络性能。始终在测试环境中验证你的更改。
使用tc命令模拟linux网络延迟环境的更多相关文章
- 在Window平台是模拟Linux的Shell环境
在Linux平台模拟Linux的shell环境,可以通过一个软件实现:Cygwin(点击进入官网下载好即可),如下图(选择对应的版本进行下载): 安装: 1. 双击运行下载的安装包(选择从网络安装), ...
- linux 虚拟机模拟配置网络路由环境-简版
前言:网络路由不管是平常在家里,还是在公司中,都是必需配置的,所以还是非常重要的,今天小编就给大家做个配置网络路由配置的小实验,仅供大家参考. 一.首先,来简单介绍一下网络路由. 1. 网络路由: ...
- 查看linux接口进出口流量的命令;linux 网络监控;流量监控
1.nload,左右键切换网卡 2.sudo iftop 3.sudo iptraf 按连接/端口查看流量 4.sudo nethogs: 按进程查看流量占用 5.ss: 连接查看工具 6.dstat ...
- 使用Kernel NetEm和tc模拟复杂网络环境
关键词:netem(Network Emulator).tc(Traffic Control). 大部分局域网环境良好,但是产品实际网络环境可能千差万别,为了对产品进行各种情况测试就需要模拟网络环境. ...
- 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术
本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...
- Linux资源监控命令/工具(网络)
1.手动/自动设定与启动/关闭IP参数:ifconfig,ifup,ifdown 这三个指令的用途都是在启动网络接口,不过,ifup与ifdown仅能就/etc/sysconfig/netw ...
- Windows上模拟Linux环境的软件Cygwin
Windows上模拟Linux环境的软件Cygwin 2010-10-11 15:19 我要评论(0) 字号:T|T Cygwin是一个用于在Windows上 模拟Linux环境的软件.它可 ...
- Linux模拟控制网络时延
之前以为可以使用Linux自带的工具模拟控制网络时延,所以上网找了一些资料.后来发现,找到的资料目前只支持在一个网卡上模拟发送报文的时延,而不能设置有差别的网络时延,或者说当要模拟的向A发送的时延与要 ...
- Fiddler13模拟弱网络环境测试
前言现在的Android软件,基本上都会有网络请求,有些APP需要频繁的传输数据时对于网络请求的稳定性和在特殊网络条件下的兼容性有要求,但是我们在测试的时候又很难模拟那种弱网络差网络的情况,今天就给大 ...
- Linux网络命令与脚本使用
作为系统管理员,经常需要诊断和解决网络问题,而配置.监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分.这里总结一下常用与Linux网络管理的命令 ...
随机推荐
- C语言 06 无符号数
所有的数据底层都是采用二进制来进行保存的. 第一位用于保存符号位. 如果不考虑这个符号位,那么所有的数都是按照正数来表示. 比如考虑了符号位的 char 类型: 考虑符号表示范围:-128 ~ 127 ...
- cv.calibrateCamera
相机造成的失真类型 如何找到相机的内在和外在特性 如何基于这些特性来消除图像失真 基础 一些针孔相机会对图像造成严重失真.两种主要的畸变是径向畸变和切向畸变. 径向变形会使直线看起来是弯曲的.点离图像 ...
- 为你推荐一款高效的IO组件——okio
原文:https://mp.weixin.qq.com/s/XnNhSq8ESoslb2DQEzMbCQ,点击链接查看更多技术内容. 前不久,三方组件库上新了一批JS/eTS组件,其中就包括oki ...
- EZHTTP(一键安装Nginx Apache PHP MySQL Memcached Pureftpd)安装【测试ing】
EZHTTP(一键安装Nginx Apache PHP MySQL Memcached Pureftpd)安装 [复制链接] 本帖最后由 梁国平 于 2014-2-11 22:47 编辑 简介 ...
- js es6 Iterator
1.遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员). 2.Iterator ...
- python中的赋值、浅拷贝、深拷贝的区别
赋值: 可变类型:赋值前后id不会变,赋值后的数据会随源数据变化: 不可变类型:赋值前后id不会变,赋值后的数据不会随源数据变化: 浅拷贝(copy): 可变类型:copy前后id会变,可变类型中存储 ...
- iOS的cer、p12格式证书解析监控
之前博客写过直接解析ipa包获取mobileprovision文件来监控APP是否过期来,但APP的推送证书还没有做, 大家都知道,iOS的推送证书不会放到ipa包里,只能通过直接解析p12或cer. ...
- Kubernetes 部署集群1.28.2版本(无坑)
初步搭建一个一个主节点和两个从节点Kubernetes 1.28.2 集群.先准备好机器 | host | hostname | os | role | hardware | | --- | --- ...
- 力扣141(Java)-环形链表(简单)
题目: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 pos ...
- 力扣607(MySQL)-销售员(简单)
题目: 表: SalesPerson 表: Company 表: Orders 编写一个SQL查询,报告没有任何与名为 "RED" 的公司相关的订单的所有销售人员的姓名. 以 任意 ...