作者: admin
How to test network throughput using iperf3 tool
iperf is a free and open source cross-platform command-line tool used for checking network performance in terms of bandwidth and speed. It is a highly reliable tool in comparison to the many network bandwidth and speed testing tools. In addition, it is a highly effective tool when testing for network performance between 2 servers spread across different geographical regions. In this tutorial, we’ll take you through how you can test network throughput using iperf3 tool.
Requirements
Two networked Linux systems with iperf3 installed
Installation of iperf3
installation of iperf3 on Linux is a pretty easy task since it exists in official software repositories of most Linux distributions.
Install iperf3 on Debian/Ubuntu
# sudo apt-get install iperf3
Install iperf3 on RHEL/CentOS
# yum install epel-release # yum install iperf3
Install iperf3 on Fedora 22 and later
# dnf install iperf3
Install iperf3 from source
You can also choose to install iperf3 from source by running the commands below. To download the source package run
# wget https://sourceforge.net/projects/iperf/files/latest/download
Once downloaded, extract the package
# tar -xvf iperf-2.0.5.tar.gz
Next, navigate into the extracted folder
# cd iperf-2.0.5
Run the command to configure
# ./configure
Compile it using the make command
# make
Finally, install using make install
# make install
Testing network throughput between 2 Linux servers
So now that we have iperf3 installed, it’s now time to check the bandwidth between two systems. For that to happen, one system needs to be set as the client and the other one as the server. In this illustration, I have 2 servers:
- RedHat (iperf3 server) – IP 172.31.16.67
- Ubuntu (iperf3 client) – IP 172.31.21.90
To set an iperf3 server
To set the RedHat system as the iperf3 server, Open the terminal and run
# iperf3 -s
Output
Connecting Client to server
Now we are going to connect our Ubuntu client to the RedHat server system. To achieve this run
iperf3 -c 172.31.16.67
You will start getting the following statistics as shown below, both on the client and server
iperf3 client (Ubuntu) Output
iperf3 server (RedHat) Output
To reverse the direction of packets
iperf3 -c 172.31.16.67 -R
To print the output in JSON format
iperf3 -c 172.31.16.67 -J
To get help with commands run
iperf3 --help
To define interval times append the -i flag
iperf3 -c 172.31.16.67 -i 3
For more usage on iperf3 commands , visit mankier
Lisa(丽萨主机)-主打 IP体验和原生 ISP IP的商家
Cloudflare搭建DDNS(脚本版)
-
把域名接入cloudflare
-
获取Global API Key
-
设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)
-
下载 DDNS 脚本
-
修改 DDNS 脚本并补充相关信息
-
设置定时任务
打开cloudflare,登陆账号添加网站按照提示操作
访问 https://dash.cloudflare.com/profile在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来 ,在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来

添加一条A记录,例如:hkt.test.com,Proxy status设置成DNS only

首次运行脚本,输出内容会显示当前IP,进入cloudflare查看 确保IP已变更为当前IP
定时任务
Amazon Route 53如何实现自动故障转移和恢复
在 Amazon Route 53 中,你可以使用 健康检查(Health Checks)+ 失效转移(Failover Routing) 方式来实现自动故障转移和恢复。以下是详细步骤:
📌 1. 创建健康检查
步骤
- 登录 AWS 控制台,进入 Route 53 控制面板。
- 在左侧导航栏,选择 Health Checks(健康检查)。
- 点击 Create health check(创建健康检查)。
- 填写健康检查信息:
- 名称:填写一个唯一的名称,例如
MyServerHealthCheck
- Monitor Endpoint(监测端点):
- 选择 IP 地址,输入要监测的服务器 IP
- 端口号(例如
80
或443
) - 选择健康检查类型:
- HTTP / HTTPS(建议选择 HTTPS 以提高安全性)
- Failure Threshold(失败阈值):设置触发故障的次数(默认
3
次)。 - Request Interval(请求间隔):建议
30s
(默认)。 - Invert Health Check Status(反转健康检查状态)(可选):如果希望状态反向,可以选中。
- 名称:填写一个唯一的名称,例如
- 配置 SNS 通知(可选):
- 你可以启用 SNS 以在服务器宕机或恢复时收到通知。
- 点击 Create(创建)。
🔹 ✅ 这样,Route 53 会定期检查服务器 IP 是否正常工作。如果该 IP 宕机,健康检查会标记为 unhealthy
(不健康)。
📌 2. 配置 DNS 记录进行自动故障转移
- 在 Route 53 控制台,进入 你的域名。
- 选择 Record Sets(记录集),点击 Create Record Set(创建记录集)。
- 配置 A 记录(IPv4)或 AAAA 记录(IPv6),针对每个 IP 设置如下:
- Name(名称):留空或填写子域名(如
www
)。 - Type(类型):A(IPv4)或 AAAA(IPv6)。
- Alias(别名):No。
- TTL(缓存时间):建议
60
秒(短 TTL 可加快故障切换)。 - Routing Policy(路由策略):
- 选择 Failover(故障转移)。
- Failover Record Type(故障转移记录类型):
- 对于 主 IP(例如
192.168.1.1
),选择 Primary(主)。 - 对于 备用 IP(例如
192.168.1.2
),选择 Secondary(备用)。
- 对于 主 IP(例如
- Associate with Health Check(关联健康检查):
- 选中 Yes,并选择 之前创建的健康检查。
- Name(名称):留空或填写子域名(如
- 重复上述步骤,为所有服务器 IP 添加健康检查和故障转移设置。
📌 3. 故障转移逻辑
- 正常情况:Route 53 会解析所有 健康(healthy) 状态的 IP。
- 某个 IP 宕机:Route 53 自动从解析列表中移除该 IP,并将流量转移到其他健康 IP。
- IP 恢复:Route 53 自动重新解析该 IP,让它恢复上线。
📌 4. 其他优化(可选)
使用 Weighted Routing(加权路由)
如果你想让流量分配到多个 IP,但仍然具有故障转移功能,可以使用 加权路由(Weighted Routing)+ 健康检查:
- 配置 每个 IP 的权重,如
30%、30%、40%
。 - 仍然关联 健康检查,宕机时 Route 53 自动调整流量分配。
✅ 总结
- 创建 Route 53 健康检查,监控服务器 IP 是否存活。
- 在 DNS 解析中设置故障转移(Failover Routing),主服务器宕机时自动切换到备用 IP。
- 当 IP 恢复后,Route 53 会自动重新解析,让其恢复上线。
这样,你就可以实现 自动下线宕机 IP,并在服务器恢复后 自动上线。🚀
rockylinux8 批量替换文件夹下面所有html的文件的指定网址
在 Rocky Linux 8 上,可以使用 sed
命令批量替换指定网址,并配合 find
命令处理所有 HTML 文件。
示例命令:
find /path/to/directory -type f -name "*.html" -exec sed -i 's|旧网址|新网址|g' {} +
命令解析:
find /path/to/directory -type f -name "*.html"
- 查找
/path/to/directory
目录下所有.html
文件。
- 查找
-exec sed -i 's|旧网址|新网址|g' {} +
- 使用
sed
进行 就地修改(-i),将 旧网址 替换为 新网址。 s|旧网址|新网址|g
:替换所有匹配的内容。{}
代表find
结果的文件名,+
使find
传递多个文件,提高效率。
- 使用
示例
假设你要替换 /var/www/html
目录下所有 HTML 文件里的 http://old.example.com
为 https://new.example.com
,命令如下:
find /var/www/html -type f -name "*.html" -exec sed -i 's|http://old.example.com|https://new.example.com|g' {} +
如果你需要更强大的替换功能,可以用 perl
:
find /var/www/html -type f -name "*.html" -exec perl -pi -e 's|http://old.example.com|https://new.example.com|g' {} +
⚠ 注意:
- 建议先备份文件,以防替换出错:
cp -r /var/www/html /var/www/html_backup
sed
可能对一些特殊字符(如/
、&
)敏感,可以用|
代替/
作为分隔符,避免转义符\
。
如果有更复杂的需求,可以告诉我具体情况,我帮你优化命令。 😊
Linux 查看网卡实时网速以及 nload 命令详解
1.使用 nload 工具查看
安装工具
yum install -y epel-release #先安装epel软件库
yum install -y nload #再安装nload
# 查看所有网卡实时网速 sudo nload -m # 查看指定网卡实时网速 sudo nload eth0 -m
nload 默认分为上下两块:
上半部分:Incoming也就是进入网卡的流量
下半部分:Outgoing,也就是从这块网卡出去的流量
参数详情表
参数 | 描述 |
Curr | 当前流量 |
Avg | 平均流量 |
Min | 最小流量 |
Max | 最大流量 |
Ttl | 总和流量 |
注:小写代表bit,大写代表byte
Bit(比特)是存储单元;Byte(字节)是计量单位,查看网络时常用Byte
1Byte=8Bit
比如:网速计算
我们常说的家庭网速为10M,100M,其值为带宽,转换为Byte为
下载速度从理论上来说,应该是带宽的八分之一
10M=1280kb/s 100M=12800kb/s=12.5Mb/s
参考地址:https://blog.csdn.net/m0_58292366/article/details/125145915
2.通过 ifconfig 实时查看
watch -n 1 ifconfig
3.通过脚本查看
#!/bin/bash awk 'BEGIN{ OFMT="%.3f"; devf="/proc/net/dev"; while(("cat "devf) | getline) { if($0 ~ /:/ && ($10+0) > 0) { split($1,tarr,":"); net[tarr[1]]=$10+tarr[2]; print tarr[1],$10+tarr[2]; } } close(devf); icount=0 while((system("sleep 1")) >=0) { icount +=1 system("clear"); while( getline < devf ) { if($0 ~ /:/ && ($10+0) > 0) { split($1,tarr,":"); if(tarr[1] in net) { print tarr[1],":",($10+tarr[2]-net[tarr[1]])*8/1024,"kb/s"; net[tarr[1]]=$10+tarr[2]; } } } close(devf); if (icount>100) {break;} } }'
icount=计数100次之后自动退出。
4.通过下载源文件,本地编译安装 nload
yum install wget #安装wget下载工具 wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz #下载 nload-0.7.4.tar.gz tar zxvf nload-0.7.4.tar.gz #解压这个压缩包 cd nload-0.7.4 #进入解压后的文件目录 yum install gcc gcc-c++ ncurses-devel #安装依赖库 ./configure #检测你的安装平台的目标特征的 make #编译 make install #安装
5.scp 命令测试
A 机器请求 B 机器的数据,经常遇到超时。A机器带宽可能有限制,排查带宽的时候,又不能安装程序。这时候可以考虑 scp 命令。
通过 在 A 机器上 从B 机器上拉去文件,观察是否能正常拉取,以及拉取完成 的耗时,平均网速,来知晓机器带宽情况。
scp upchina@172.16.9.227:/usr/local/app/taf/app_log/algo/FactorTsbReadServer/2530318728.log abc.log
scp命令解释。
scp 将 B机器文件,拷贝到 本机
scp 用户名@机器地址+目标文件地址+文件名 本机目录+本机文件名
scp username@remote:/path/to/remote/file /path/to/local/directory
scp 命令可以参考:https://www.cnblogs.com/abel-he/p/16502825.html
各种转发协议方案对比 gost,iptables,brook,caddy,ehco,socat,realm,v2ray,iperf3,haproxy,tinyportmapper
这些工具各有优劣,适用于不同的场景。下面是对它们的 优缺点 和 稳定性 的评价:
1. gost (GO Simple Tunnel)
✅ 优点:
- 多协议支持:支持 TCP/UDP/SOCKS5/HTTP/HTTPS/Relay 等多种协议。
- 高性能:基于 Go 语言,性能较好,占用资源较低。
- 配置灵活:支持链式代理,适合复杂的代理环境。
❌ 缺点:
- 文档较少:配置相对复杂,官方文档不够详细。
- UDP 可能不稳定:在某些网络环境下 UDP 转发不稳定。
📊 稳定性:★★★★☆(一般较稳定,但复杂配置可能有坑)
2. iptables
✅ 优点:
- 内核级转发,性能最高,几乎无额外开销。
- 稳定性极高,几乎不会崩溃。
- 全局生效,可以用于系统所有流量。
❌ 缺点:
- 配置复杂,新手不容易上手。
- 难以进行高级协议解析,仅限于简单的端口转发和 NAT 规则。
- 不支持用户级转发,只能在 root 权限下使用。
📊 稳定性:★★★★★(极高)
3. brook
✅ 优点:
- 轻量级,占用资源少,适合小型服务器或低性能设备。
- 自带加密,适合防火墙较严的环境。
- 支持 TCP/UDP,适用于 P2P 和流媒体等应用。
❌ 缺点:
- 功能较少,主要用于简单代理,不适合复杂转发需求。
- 不支持链式代理,难以灵活搭配其他代理工具。
📊 稳定性:★★★☆☆(适用于小型环境,但大流量情况下可能不稳定)
4. caddy
✅ 优点:
- 主要是 Web 服务器,自带 HTTPS,适合搭配反向代理。
- 配置简洁,适合 HTTPS + 反向代理 + WebSocket 场景。
- 支持自动 TLS 证书管理,减少配置复杂度。
❌ 缺点:
- 不适合复杂端口转发,更适合作为 Web 服务器或 HTTP 反向代理。
- UDP 支持有限,不适合 UDP 代理。
📊 稳定性:★★★★★(适用于 Web 代理,其他用途受限)
5. ehco
✅ 优点:
- 轻量级,基于 Rust 开发,资源占用低。
- 支持 TCP/UDP,适用于流量转发和负载均衡。
- 简单易用,仅需一条命令即可完成端口转发。
❌ 缺点:
- 功能单一,主要用于 TCP/UDP 端口转发,不支持复杂协议。
- 开发较新,生态较小,社区支持不如其他成熟方案。
📊 稳定性:★★★★☆(相对稳定,但功能有限)
6. socat
✅ 优点:
- 功能强大,支持 TCP/UDP/Unix Socket/TTY/SSL 等各种协议。
- 轻量级,仅依赖系统本身,几乎无额外资源消耗。
- 非常灵活,适用于端口转发、协议转换、数据流重定向等。
❌ 缺点:
- 配置复杂,参数繁琐,不易上手。
- 不支持流量控制,可能导致大流量下不稳定。
📊 稳定性:★★★☆☆(轻量但大流量下不够稳定)
7. realm
✅ 优点:
- 专注于流量转发,支持 TCP/UDP/HTTP/SOCKS5。
- 支持多路复用,适合高并发代理环境。
- 有较好的文档,上手相对容易。
❌ 缺点:
- 生态较小,社区支持不如 v2ray/gost。
- 开发较新,长期稳定性待观察。
📊 稳定性:★★★★☆(较为稳定,但长期可靠性待观察)
8. v2ray
✅ 优点:
- 功能强大,支持 VMess/VLESS/SOCKS/HTTP/MTProto 等多种协议。
- 抗封锁能力强,适用于防火墙环境。
- 强大的路由功能,可以精细控制流量。
❌ 缺点:
- 配置复杂,JSON 规则较多,学习成本高。
- 资源占用较高,比 gost/brook/socat 等稍重。
📊 稳定性:★★★★★(非常稳定,适合长期使用)
9. iperf3
✅ 优点:
- 专门用于网络性能测试,可以测试 TCP/UDP 速率、丢包率等。
- 支持多种模式,可以进行单向、双向、并发测试。
❌ 缺点:
- 不是端口转发工具,只能用于测速,不能用于代理或 NAT。
📊 稳定性:★★★★★(作为测试工具很稳定,但不适合端口转发)
10. haproxy
✅ 优点:
- 高性能负载均衡,适用于高并发代理和服务器负载均衡。
- 支持 TCP/HTTP/HTTPS/WebSocket,适用于 Web 代理和 API 网关。
- 稳定性极高,企业级应用广泛使用。
❌ 缺点:
- 配置较复杂,相比 caddy、nginx 需要更多调整。
- 不适用于 UDP 转发,仅适用于 TCP 和 HTTP/S。
📊 稳定性:★★★★★(非常稳定,适用于大规模代理)
11. tinyPortMapper
✅ 优点:
- 超轻量级,占用资源极少。
- 简单易用,一条命令即可完成端口转发。
❌ 缺点:
- 功能极少,仅支持基础端口映射。
- 不支持高级协议或负载均衡。
📊 稳定性:★★★☆☆(适用于小型场景,但功能有限)
综合对比表
工具 | 优点 | 缺点 | 适用场景 | 稳定性 |
---|---|---|---|---|
gost | 多协议、链式代理 | 复杂 | 多协议代理 | ★★★★☆ |
iptables | 内核级,极快 | 配置难 | 端口转发 | ★★★★★ |
brook | 轻量,加密 | 功能少 | 轻量级代理 | ★★★☆☆ |
caddy | 易用,自动 HTTPS | 仅限 HTTP | Web 反代 | ★★★★★ |
ehco | 轻量,支持 TCP/UDP | 生态小 | 简单转发 | ★★★★☆ |
socat | 强大,协议广泛 | 复杂 | 端口转发 | ★★★☆☆ |
realm | 流量复用,文档好 | 生态小 | TCP/UDP 转发 | ★★★★☆ |
v2ray | 功能强,抗封锁 | 配置复杂 | 防火墙环境 | ★★★★★ |
iperf3 | 测速工具 | 不能代理 | 网络测试 | ★★★★★ |
haproxy | 高性能负载均衡 | 不支持 UDP | 负载均衡 | ★★★★★ |
tinyPortMapper | 超轻量 | 功能少 | 简单端口转发 | ★★★☆☆ |
如果你有具体的使用需求,我可以推荐最适合的方案!😊
一键回程测试脚本:backtrace 三网回程路由测试使用教程
首先简单介绍一下 backtrace 这个脚本,这个脚本是在 GitHub 上看到的,目前仅有的介绍其实就是一个 GitHub 项目主页。
GitHub 主页:https://github.com/zhanghanyun/backtrace
目前作者没有添加更多介绍,只有简单的一句“三网回程路由测试”。
二、backtrace 一键测试脚本使用教程
backtrace 一键测试脚本使用也很简单,登录 VPS 之后输入下面的命令即可:
curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh
输入之后回车即可开始测试。
如何限制rockyLinux8网卡速度
在 Rocky Linux 8 中,我们可以使用 tc (traffic control) 命令来实现端口限速。以下是具体步骤:
- 首先安装必要的工具:
dnf install -y iproute-tc
- 基本的限速命令格式(以限制下载速度为例):
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
- 对特定端口限速的完整示例(使用 iptables 配合 tc):
# 创建新的 tc 规则
tc qdisc add dev eth0 root handle 1: htb default 10
# 创建限速类
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
# 使用 iptables 标记特定端口的流量
iptables -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 1
iptables -A INPUT -p tcp --dport 80 -j MARK --set-mark 1
# 将标记的流量匹配到限速类
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1 fw flowid 1:1
参数说明:
rate
: 平均速率burst
: 突发流量大小latency
: 数据包延迟mbit
: 兆比特/秒kbit
: 千比特/秒
删除限速规则:
tc qdisc del dev eth0 root
查看当前限速规则:
tc -s qdisc ls dev eth0
需要注意:
- 将 eth0 替换为您实际的网络接口名称
- 根据实际需求调整速率值
- 建议先测试小流量,再逐步调整参数
如果要限速 1G,需要修改 rate 和 burst 的值,这里给出命令:
bashtc qdisc add dev eth0 root tbf rate 1gbit burst 1mbit latency 400ms
解释一下参数:
- rate 1gbit:限制速率为 1 Gigabit/秒
- burst 1mbit:突发缓冲区设为 1 Megabit
- latency 400ms:延迟保持 400 毫秒
如果要查看是否生效:
bashtc -s qdisc ls dev eth0
如果要删除限速:
bashtc qdisc del dev eth0 root
如果要限速 500M,将 rate 值设为 500mbit:
bashtc qdisc add dev eth0 root tbf rate 500mbit burst 500kbit latency 400ms
参数说明:
- rate 500mbit:限制速率为 500 Megabit/秒
- burst 500kbit:突发缓冲区设为 500 Kilobit(一般设置为与 rate 对应的较小值)
- latency 400ms:延迟保持 400 毫秒
验证和管理命令:
bash# 查看限速规则
tc -s qdisc ls dev eth0# 如果要删除限速
tc qdisc del dev eth0 root记得将 eth0 替换为您实际的网络接口名称。