
github 地址: https://github.com/ypq123456789/TrafficCop 调试了很久,花费了很大精力,远比想象中要复杂求鸡腿,坛友们可以测试下,有些小 bug 实在难以修复就先搁置了。能用就行。
TrafficCop 现在支持为多个端口同时设置独立的流量限制!这个功能非常适合需要对特定服务(如 Web 服务器、代理服务、SSH 等)进行精细化流量管理的场景。
当机器尚未配置流量限制时,为指定端口设置流量限制会:
当机器已配置流量限制时,为指定端口设置流量限制会:
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 在配置过程中,您需要提供:
如果选择自定义配置,还需要设置:
# 普通查看 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 --remove bash <(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 的总流量限制,您想为不同服务设置独立的流量配额:
配置多个端口:
实时查看所有端口流量:
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 当某个端口流量达到限制时:
端口流量限制功能使用以下技术实现:
{ "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" } ] }