English | 中文
netjett赞助了本项目
NodeSupport赞助了本项目
VTEXS赞助了本项目
-
本脚本是基于vnstat的流量统计,vnstat只会在安装后开始统计流量!
-
TC模式无法防止DDoS消耗流量,流量消耗速度仍然较快!欢迎PR修复(如果可以修复的话)。
-
如果遇到GitHub API速率限制问题,可以尝试以下解决方案:
- 使用原始内容URL下载脚本
- 等待API限制重置(通常1小时)
- 使用个人访问令牌增加API限额
- 手动下载脚本并运行
-
脚本默认使用root权限运行。如需非root用户运行,请确保该用户有sudo权限,并将所有命令前加sudo。
-
如果遇到问题,可以查看日志文件(/root/TrafficCop/traffic_monitor.log)获取更多信息。
-
定期检查脚本更新以获取新功能和bug修复。
-
对于特定VPS提供商,可能需要调整配置以适应其计费模式。
-
TC模式下的速度限制可能不是精确的,实际速度可能略有偏差。
-
关机模式会完全切断网络连接,请谨慎使用。
-
建议定期备份配置文件(traffic_monitor_config.txt)。
Q: 为什么我的流量统计似乎不准确? A: 确保vnstat已正确安装并运行一段时间。新安装的vnstat需要时间来收集准确的数据。
Q: 如何更改已设置的配置? A: 重新运行脚本,它会提示你是否要修改现有配置。
Q: TC模式下SSH连接变慢怎么办? A: 尝试增加TC模式下的速度限制值。
Q: 如何完全卸载脚本? A: 使用以下命令:
sudo pkill -f traffic_monitor.sh
sudo rm -rf /root/TrafficCop
sudo tc qdisc del dev $(ip route | grep default | cut -d ' ' -f 5) root
bash <(curl -sL https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/trafficcop-manager.sh)
- 安装流量监控 - 下载并安装基础的流量监控功能
- 安装Telegram通知功能 - 添加Telegram推送通知
- 安装PushPlus通知功能 - 添加PushPlus推送通知
- 安装Server酱通知功能 - 添加Server酱推送通知
- 安装端口流量限制 - 为多个端口设置独立的流量限制(支持多端口 2.0)
- 查看端口流量状态 - 实时查看所有配置端口的流量使用情况(新增 2.0)
- 机器限速管理 - 完整的机器级限速启用/禁用/恢复功能(新增 v2.4)
- 查看日志 - 查看各种服务的日志文件
- 查看当前配置 - 查看各种服务的配置文件
- 使用预设配置 - 应用针对不同服务商优化的预设配置
- 停止所有服务 - 停止所有TrafficCop相关服务
- 更新所有脚本到最新版本 - 一键更新所有组件
- 一站式管理 - 用户只需记住一个命令,即可管理所有TrafficCop功能
- 交互式体验 - 通过数字菜单选择,无需记忆复杂命令
- 可视化界面 - 使用彩色输出增强用户体验
- 灵活操作 - 完成一项操作后返回主菜单,可继续选择其他操作
- 用户友好 - 每个操作都有确认提示,避免误操作
sudo apt update && mkdir -p /root/TrafficCop && curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/trafficcop.sh" | tr -d '\r' > /root/TrafficCop/traffic_monitor.sh && chmod +x /root/TrafficCop/traffic_monitor.sh && bash /root/TrafficCop/traffic_monitor.sh && sudo curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/tg_notifier.sh" | tr -d '\r' > /root/TrafficCop/tg_notifier.sh && chmod +x /root/TrafficCop/tg_notifier.sh && bash /root/TrafficCop/tg_notifier.sh
sudo apt update && mkdir -p /root/TrafficCop && curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/trafficcop.sh" | tr -d '\r' > /root/TrafficCop/traffic_monitor.sh && chmod +x /root/TrafficCop/traffic_monitor.sh && bash /root/TrafficCop/traffic_monitor.sh && sudo curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/tg_notifier.sh" | tr -d '\r' > /root/TrafficCop/tg_notifier.sh && chmod +x /root/TrafficCop/tg_notifier.sh && bash /root/TrafficCop/tg_notifier.sh
sudo apt update && mkdir -p /root/TrafficCop && curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/trafficcop.sh" | tr -d '\r' > /root/TrafficCop/traffic_monitor.sh && chmod +x /root/TrafficCop/traffic_monitor.sh && bash /root/TrafficCop/traffic_monitor.sh && sudo curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/pushplus_notifier.sh" | tr -d '\r' > /root/TrafficCop/pushplus_notifier.sh && chmod +x /root/TrafficCop/pushplus_notifier.sh && bash /root/TrafficCop/pushplus_notifier.sh
sudo apt update && mkdir -p /root/TrafficCop && curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/trafficcop.sh" | tr -d '\r' > /root/TrafficCop/traffic_monitor.sh && chmod +x /root/TrafficCop/traffic_monitor.sh && bash /root/TrafficCop/traffic_monitor.sh && sudo curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/pushplus_notifier.sh" | tr -d '\r' > /root/TrafficCop/pushplus_notifier.sh && chmod +x /root/TrafficCop/pushplus_notifier.sh && bash /root/TrafficCop/pushplus_notifier.sh
sudo apt update && mkdir -p /root/TrafficCop && curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/trafficcop.sh" | tr -d '\r' > /root/TrafficCop/traffic_monitor.sh && chmod +x /root/TrafficCop/traffic_monitor.sh && bash /root/TrafficCop/traffic_monitor.sh
sudo tail -f -n 30 /root/TrafficCop/traffic_monitor.log
sudo cat /root/TrafficCop/traffic_monitor_config.txt
sudo pkill -f traffic_monitor.sh
sudo curl -sSL https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/remove_traffic_limit.sh | sudo bash
- 自动检测并选择主要网卡进行流量限制。
- 用户选择流量统计模式(四种选项)。
- 用户设置流量计算周期(月/季/年)和起始日期。
- 用户输入流量限制和容错范围。
- 用户选择限制模式(TC模式或关机模式)。
- 对于TC模式,用户可设置限速值。
- 脚本每分钟检测流量消耗,达到限制时执行相应操作。
- 在新的流量周期开始时自动解除限制。
- 四种全面的流量统计模式,适应各种VPS计费方式。
- 自定义流量计算周期和起始日。
- 自定义流量容错范围。
- 交互式配置,可随时修改参数。
- 实时流量统计提示。
- TC模式保证SSH连接可用。
- 关机模式提供更严格的流量控制。
- 自定义限速带宽(TC模式)。
TrafficCop 现在集成了 Telegram Bot 功能,可以发送以下通知:
- 限速警告
- 限速解除通知
- 新周期开始通知
- 关机警告
- 每日流量报告
支持自定义主机名,一个机器人就可以统一管理你的所有小鸡!
支持自定义每日流量报告的时间,你想每个小鸡什么时候通知就什么时候,当然你也可以设置都是一样的时间,一下子冒出来一堆,享受坐拥数🐔的快感
要使用此功能,请在脚本配置过程中提供你的 Telegram Bot Token 和 Chat ID。
Telegram Bot Token 在你创建机器人时会显示。
Chat ID获取方法:https://api.telegram.org/bot${BOT_TOKEN}/getUpdates
${BOT_TOKEN}是你的 Telegram Bot Token
Chat ID还可以通过bot获取,更简单,比如username_to_id_bot
一键推送脚本(调用api,版本最新,可能会403):
sudo apt update && mkdir -p /root/TrafficCop && curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/tg_notifier.sh" | tr -d '\r' > /root/TrafficCop/tg_notifier.sh && chmod +x /root/TrafficCop/tg_notifier.sh && bash /root/TrafficCop/tg_notifier.sh
一键推送脚本(从原始内容下载,版本可能落后):
sudo apt update && mkdir -p /root/TrafficCop && curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/tg_notifier.sh" | tr -d '\r' > /root/TrafficCop/tg_notifier.sh && chmod +x /root/TrafficCop/tg_notifier.sh && bash /root/TrafficCop/tg_notifier.sh
查看tg推送定时执行日志
sudo tail -f -n 30 /root/TrafficCop/tg_notifier_cron.log
查看当前状态
sudo tail -f -n 30 /root/TrafficCop/last_traffic_notification
杀死所有TG推送进程
sudo pkill -f tg_notifier.sh && crontab -l | grep -v "tg_notifier.sh" | crontab -
端口流量推送展示了:
- 🔌 端口流量详情
- ✅ 实时使用量(精确到 0.01GB)
- 📊 流量限制对比
- 🎯 状态图标(✅绿色正常 / 🟡黄色警告 / 🔴红色超限)
TrafficCop 现在集成了pushplus推送功能。
可发送的通知类型同上、支持自定义主机名、支持自定义每日流量报告的时间。
要使用此功能,请在脚本配置过程中提供你的pushplus token。
一键推送脚本(调用api,版本最新,可能会403):
sudo bash -c "mkdir -p /root/TrafficCop && curl -sSfL -H 'Accept: application/vnd.github.v3.raw' -o /root/TrafficCop/pushplus_notifier.sh https://api.github.com/repos/ypq123456789/TrafficCop/contents/pushplus_notifier.sh && chmod +x /root/TrafficCop/pushplus_notifier.sh && /root/TrafficCop/pushplus_notifier.sh"
一键推送脚本(从原始内容下载,版本可能落后):
sudo mkdir -p /root/TrafficCop && curl -sSfL -o /root/TrafficCop/pushplus_notifier.sh https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/pushplus_notifier.sh && chmod +x /root/TrafficCop/pushplus_notifier.sh && /root/TrafficCop/pushplus_notifier.sh
查看pushplus推送定时执行日志
sudo tail -f -n 30 /root/TrafficCop/pushplus_notifier_cron.log
查看当前状态
sudo tail -f -n 30 /root/TrafficCop/last_pushplus_notification
杀死所有pushplus推送进程
sudo pkill -f pushplus_notifier.sh && crontab -l | grep -v "pushplus_notifier.sh" | crontab -
TrafficCop 现在支持为多个端口同时设置独立的流量限制!这个功能非常适合需要对特定服务(如Web服务器、代理服务、SSH等)进行精细化流量管理的场景。
- 多端口流量管理 - 同时监控和限制多个端口的流量,使用JSON格式存储配置
- 独立端口流量统计 - 使用iptables精确统计每个端口的入站和出站流量
- 实时流量查看 - 彩色可视化界面,显示所有端口的流量使用情况和进度条
- 智能配置同步 - 自动同步机器配置,也支持自定义配置
- 灵活的限制策略 - 支持两种限制模式:
- TC模式:对端口流量进行限速
- 阻断模式:超限后完全阻断端口流量
- 配置验证 - 确保端口流量限制不超过机器总流量限制
- 推送通知集成 - 所有推送服务(Telegram、PushPlus、ServerChan)自动包含端口流量信息
- 自动化管理 - 支持定时任务自动监控和限制
当机器尚未配置流量限制时,为指定端口设置流量限制会:
- 创建端口流量配置
- 询问是否同步配置到机器流量限制
- 如果选择同步,端口配置将自动应用到机器级别
当机器已配置流量限制时,为指定端口设置流量限制会:
- 检查端口流量限制是否小于等于机器流量限制
- 默认继承机器的其他配置(统计模式、周期、限制模式等)
- 允许自定义配置以满足特殊需求
bash <(curl -sL https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/trafficcop-manager.sh)选择 "5) 安装端口流量限制"
sudo mkdir -p /root/TrafficCop && \
curl -fsSL "https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/port_traffic_limit.sh" | tr -d '\r' > /root/TrafficCop/port_traffic_limit.sh && \
chmod +x /root/TrafficCop/port_traffic_limit.sh && \
bash /root/TrafficCop/port_traffic_limit.sh在配置过程中,您需要提供:
- 端口号 - 要限制流量的端口(1-65535)
- 流量限制 - 端口允许使用的最大流量(GB)
- 容错范围 - 触发限制前的缓冲区(GB)
- 配置方式 - 选择使用机器配置或自定义配置
如果选择自定义配置,还需要设置:
- 流量统计模式(出站/入站/总计/最大值)
- 统计周期(月/季/年)
- 周期起始日
- 限制模式(TC限速/阻断)
- 限速值(仅TC模式)
# 普通查看
sudo bash /root/TrafficCop/view_port_traffic.sh
# 实时监控(每5秒刷新)
sudo bash /root/TrafficCop/view_port_traffic.sh --realtime
# 导出JSON报告
sudo bash /root/TrafficCop/view_port_traffic.sh --export# 打开交互式配置菜单
sudo bash /root/TrafficCop/port_traffic_limit.sh
# 删除特定端口
sudo bash /root/TrafficCop/port_traffic_limit.sh --remove 80
# 删除所有端口配置
sudo bash /root/TrafficCop/port_traffic_limit.sh --removebash <(curl -sL https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/trafficcop-manager.sh)
# 选择 12) 查看端口流量
# 选择 13) 管理端口配置# 查看JSON配置(多端口)
sudo cat /root/TrafficCop/ports_traffic_config.json
# 美化输出
sudo cat /root/TrafficCop/ports_traffic_config.json | jq假设您的机器有1TB的总流量限制,您想为不同服务设置独立的流量配额:
配置多个端口:
- 运行端口配置脚本
- 添加端口80(Web服务):200GB限制,10GB容错
- 添加端口443(HTTPS):300GB限制,15GB容错
- 添加端口22(SSH):50GB限制,5GB容错
实时查看所有端口流量:
sudo bash /root/TrafficCop/view_port_traffic.sh输出示例:
════════════════════════════════════════════════════════════
端口流量监控 - 2025-10-18 15:30:45
════════════════════════════════════════════════════════════
✅ 端口 80 (Web Server)
已用: 150.2 GB / 200 GB (75.1%)
[████████████████████████ ] 限速: 20kbit/s
🟡 端口 443 (HTTPS)
已用: 280.5 GB / 300 GB (93.5%)
[████████████████████████████ ] 限速: 50kbit/s
✅ 端口 22 (SSH)
已用: 15.3 GB / 50 GB (30.6%)
[█████████ ] 限速: 10kbit/s
════════════════════════════════════════════════════════════
总计: 3个端口 | 总用量: 446.0 GB | 总限制: 550 GB
════════════════════════════════════════════════════════════
推送通知示例(Telegram):
📊 [MyServer]每日流量报告
🖥️ 机器总流量:
当前使用:650.5 GB
流量限制:1000 GB
🔌 端口流量详情:
✅ 端口 80 (Web Server):150.2GB / 200GB
🟡 端口 443 (HTTPS):280.5GB / 300GB
✅ 端口 22 (SSH):15.3GB / 50GB
当某个端口流量达到限制时:
- TC模式:端口速度将被限制到设定值(如20kbit/s)
- 阻断模式:端口将被完全阻断,无法接收或发送数据
- 自动通知:所有配置的推送服务会发送警告通知
端口流量限制功能使用以下技术实现:
- iptables - 创建规则统计特定端口的流量
- tc (Traffic Control) - 实现端口级别的流量控制和限速
- HTB (Hierarchical Token Bucket) - 分层流量控制,为不同端口分配不同的带宽
- Packet Marking - 使用mangle表标记数据包,实现精确的流量分类
{
"ports": [
{
"port": 80,
"description": "Web Server",
"traffic_limit": 200,
"traffic_tolerance": 10,
"traffic_mode": "total",
"traffic_period": "monthly",
"period_start_day": 1,
"limit_speed": 20,
"main_interface": "eth0",
"limit_mode": "tc",
"created_at": "2025-10-18 12:00:00",
"last_reset": "2025-10-01"
}
]
}- 依赖要求:需要jq工具(脚本会自动安装)和iptables
- 流量统计:端口流量统计从配置时开始,不包含历史流量
- 先决条件:建议先运行主流量监控脚本,以确保依赖已安装
- 性能影响:TC模式可能对端口性能有轻微影响
- 谨慎使用:阻断模式会完全禁止端口通信,请谨慎使用
- 多端口支持:✅ 2.0版本已支持同时配置和管理多个端口
- 推送集成:端口流量信息已集成到所有推送通知中
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/ali-200g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/ali-20g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/ali-1T && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/az-15g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/az-115g && cat /root/TrafficCop/traffic_monitor_config.txt
GCP 625G大流量极致解法:
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/GCP-625g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/GCP-200g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/alice-1500g && cat /root/TrafficCop/traffic_monitor_config.txt
sudo curl -o /root/TrafficCop/traffic_monitor_config.txt https://raw.githubusercontent.com/ypq123456789/TrafficCop/main/asia-300g && cat /root/TrafficCop/traffic_monitor_config.txt
https://t.me/+ydvXl1_OBBBiZWM1
非常感谢您对本项目的兴趣!维护开源项目确实需要大量时间和精力投入。若您认为这个项目为您带来了价值,希望您能考虑给予一些支持,哪怕只是一杯咖啡的费用。 您的慷慨相助将激励我继续完善这个项目,使其更加实用。它还能让我更专心地参与开源社区的工作。如果您愿意提供赞助,可通过下列渠道:
| 微信 | 支付宝 |
|---|---|
![]() |
![]() |







