如何模拟特定网络连接?实现跨设备限速以测试应用
跨设备网络限速与弱网模拟方案
Linux 平台:tc 命令(内核自带)
tc是Linux原生流量控制工具,无需额外安装,可精准控制单网卡的上传/下载速率:
- 查看网卡名称:执行
ip link show,找到你正在使用的网卡(如eth0、wlan0) - 清除现有规则(避免冲突):
sudo tc qdisc del dev eth0 root - 设置上传速率限制为50Mb/s:
参数说明:sudo tc qdisc add dev eth0 root tbf rate 50mbit burst 10k latency 70msrate为目标限速,burst允许的突发流量上限,latency可模拟网络延迟(需弱网场景可调整该值) - 恢复正常网络:
sudo tc qdisc del dev eth0 root
macOS 平台:pfctl 防火墙配置
macOS自带pf防火墙,可通过dummynet模块实现流量限速:
- 创建临时规则文件(
/tmp/limit.rules):dummynet-anchor "my_limit" anchor "my_limit" - 加载规则并设置上传50Mb/s限制:
sudo pfctl -f /tmp/limit.rules sudo pfctl -a my_limit -f - <<EOF dummynet out all pipe 1 pipe 1 config bw 50Mbit/s EOF - 启用pf生效:
sudo pfctl -e - 恢复正常网络:
sudo pfctl -d && sudo pfctl -F all
Windows 平台方案
图形化工具:NetLimiter
无需命令行,直观针对单个应用限速:
- 安装后找到目标应用,在右侧面板直接设置上传速率限制为50Mb/s,支持实时调整和进程级精准控制。
命令行方案:Windows QoS 策略
通过PowerShell配置系统级QoS策略:
- 针对特定应用(如
your_app.exe)设置上传限速:
(50000000 bits = 50Mb/s)New-NetQosPolicy -Name "AppUploadLimit" -AppPathNameMatchCondition "your_app.exe" -ThrottleRateActionBitsPerSecond 50000000 - 删除限速策略:
Remove-NetQosPolicy -Name "AppUploadLimit"
跨平台通用工具:Wondershaper
基于tc的封装脚本,简化操作,支持Linux/macOS:
- 安装:
- Linux:
sudo apt install wondershaper(Debian/Ubuntu系) - macOS:
brew install wondershaper
- Linux:
- 设置上传50Mb/s(下载不限):
第一个参数为网卡名,第二个为下载速率(0表示不限),第三个为上传速率(单位:Mb/s)sudo wondershaper eth0 0 50 - 解除限速:
sudo wondershaper clear eth0
内容的提问来源于stack exchange,提问作者Ernesto David Oliva Perez
相关产品推荐
相关产品推荐

