V2EX 10月19日 04:19
TrafficCop:灵活管理多端口流量限制
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

TrafficCop是一款强大的服务器流量管理工具,尤其擅长为多个端口同时设置独立的流量限制。该工具通过iptables精确统计各端口流量,并提供彩色可视化界面实时展示流量使用情况。用户可灵活选择TC限速或阻断模式,并支持自动同步配置、定时任务管理及多种推送通知集成。TrafficCop通过JSON文件管理配置,支持自定义统计模式、周期和限制策略,旨在为Web服务器、代理服务等场景提供精细化的流量控制解决方案,确保服务稳定运行。

🚦 **多端口独立流量管理**:TrafficCop的核心功能在于能够为服务器上的多个端口(如Web服务器的80/443端口,SSH的22端口等)同时配置并管理独立的流量限制。这意味着您可以为不同的服务分配不同的流量额度,实现精细化的资源分配,防止某个服务过度消耗带宽而影响其他服务。配置信息以JSON格式存储,便于管理和备份。

📊 **实时可视化与精准统计**:该工具提供了一个直观的彩色可视化界面,能够实时显示所有监控端口的流量使用情况,并带有进度条,让用户一目了然。其技术原理基于iptables,能够精确统计每个端口的入站和出站流量,为流量分析和限制提供坚实的数据支持。

⚙️ **灵活的限制策略与配置**:TrafficCop支持两种灵活的流量限制模式:TC模式(Traffic Control)用于对端口流量进行限速,允许服务在达到上限时仍能有限地运行;阻断模式则在流量超限后完全阻止该端口的通信。此外,用户还可以自定义流量统计模式(入站/出站/总计/最大值)、统计周期(月/季/年)以及周期起始日,以满足各种特定的管理需求。

🔔 **智能通知与自动化**:为了及时响应流量异常,TrafficCop集成了多种推送服务(如Telegram、PushPlus、ServerChan),一旦端口流量达到预设限制,会自动发送警告通知,并包含详细的端口流量信息。同时,它还支持定时任务进行自动监控和限制,进一步减轻了人工管理的负担。

github 地址: https://github.com/ypq123456789/TrafficCop调试了很久,花费了很大精力,远比想象中要复杂···求鸡腿,坛友们可以测试下,有些小 bug 实在难以修复就先搁置了。能用就行。

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 )配置方式 - 选择使用机器配置或自定义配置

如果选择自定义配置,还需要设置:

相关命令

查看所有端口流量(推荐)

# 普通查看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 的总流量限制,您想为不同服务设置独立的流量配额:

配置多个端口:

    运行端口配置脚本添加端口 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

当某个端口流量达到限制时:

技术原理

端口流量限制功能使用以下技术实现:

    iptables - 创建规则统计特定端口的流量tc (Traffic Control) - 实现端口级别的流量控制和限速HTB (Hierarchical Token Bucket) - 分层流量控制,为不同端口分配不同的带宽Packet Marking - 使用 mangle 表标记数据包,实现精确的流量分类

配置文件格式( JSON )

{  "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 版本已支持同时配置和管理多个端口推送集成:端口流量信息已集成到所有推送通知中

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

TrafficCop 流量限制 端口管理 服务器管理 iptables Traffic Control 限速 网络安全 Linux Traffic Management Port Management Server Administration Network Security
相关文章