惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
MyScale Blog
MyScale Blog
A
About on SuperTechFans
博客园_首页
B
Blog RSS Feed
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
C
Check Point Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
I
InfoQ
罗磊的独立博客

服务器

京东云太贵了, 有什么优惠券没有? - V2EX 租 blackArch 堡垒机 - V2EX Vultr 到底哪里好用?一次 Block Storage 扣费直接让我站停了 12 小时 - V2EX oracle 免费 4+24 凉凉 - V2EX 甲骨文免费降到 2CPU, 12G - V2EX 昇腾 怎么感觉是虚假宣传吗? - V2EX 京东云老客户有什么优惠券没有? 挂一下腾讯云的逆天操作 各位大佬,阿里云上的 os 怎么选? Alibaba Cloud Linux 还是 Debian, Ubuntu? 公司有一台闲置的昇腾 300I 8GPU 的服务器,有什么好的用法呢 各位大佬,想购买台服务器, 4 核 8G 哪个厂商便宜稳定点,不需要备案,类似于狗云啥的 请教信息出海合规问题 请教备案问题。 Vibe Coding 新作品,一个运维小工具集 甲骨文的免费服务器,卡过关了但注册不了 有什么好用的物理服务器资产管理 某语云已经基本无法用了,有什么其他推荐的大带宽服务器? 现在有什么推荐购买的外国服务器吗? 大容量 raid 硬盘的 xfs 优化问题 生产环境 PVE 使用姿势请教 悲报,没有 dd,装了 wg 的云服务器,跑了半年多,被 ban 了 一百多三年的 4h4g 服务器虚拟化出多个核心的,会不会有诈。(超开) 有一台闲置的 IBM s390x 架构 4c8g 服务器不知道用来干嘛 2026 年,海外最便宜的服务器在哪里? 写了一个类似 aida64 内存测试的 Linux 脚本 V2EX 做网站服务器到底该怎么选 能不能通过 IP 地址找到服务器提供商 不懂就问:隔壁这是咋了?脚本太多了吗? vmware 虚拟化国产替代选择
[TrafficCop] 多端口流量限制!拼车神器!
bacon159 · 2025-10-19 · via 服务器

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

TrafficCop 现在支持为多个端口同时设置独立的流量限制!这个功能非常适合需要对特定服务(如 Web 服务器、代理服务、SSH 等)进行精细化流量管理的场景。

功能特点

  1. 多端口流量管理 - 同时监控和限制多个端口的流量,使用 JSON 格式存储配置
  2. 独立端口流量统计 - 使用 iptables 精确统计每个端口的入站和出站流量
  3. 实时流量查看 - 彩色可视化界面,显示所有端口的流量使用情况和进度条
  4. 智能配置同步 - 自动同步机器配置,也支持自定义配置
  5. 灵活的限制策略 - 支持两种限制模式:
    • TC 模式:对端口流量进行限速
    • 阻断模式:超限后完全阻断端口流量
  6. 配置验证 - 确保端口流量限制不超过机器总流量限制
  7. 推送通知集成 - 所有推送服务( Telegram 、PushPlus 、ServerChan )自动包含端口流量信息
  8. 自动化管理 - 支持定时任务自动监控和限制

使用逻辑

场景一:机器未限制流量

当机器尚未配置流量限制时,为指定端口设置流量限制会:

  1. 创建端口流量配置
  2. 询问是否同步配置到机器流量限制
  3. 如果选择同步,端口配置将自动应用到机器级别

场景二:机器已限制流量

当机器已配置流量限制时,为指定端口设置流量限制会:

  1. 检查端口流量限制是否小于等于机器流量限制
  2. 默认继承机器的其他配置(统计模式、周期、限制模式等)
  3. 允许自定义配置以满足特殊需求

安装和配置

方法一:通过管理器脚本(推荐)

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. 端口号 - 要限制流量的端口( 1-65535 )
  2. 流量限制 - 端口允许使用的最大流量( GB )
  3. 容错范围 - 触发限制前的缓冲区( GB )
  4. 配置方式 - 选择使用机器配置或自定义配置

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

  • 流量统计模式(出站/入站/总计/最大值)
  • 统计周期(月/季/年)
  • 周期起始日
  • 限制模式( 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 --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 的总流量限制,您想为不同服务设置独立的流量配额:

配置多个端口:

  1. 运行端口配置脚本
  2. 添加端口 80 ( Web 服务):200GB 限制,10GB 容错
  3. 添加端口 443 ( HTTPS ):300GB 限制,15GB 容错
  4. 添加端口 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 )
  • 阻断模式:端口将被完全阻断,无法接收或发送数据
  • 自动通知:所有配置的推送服务会发送警告通知

技术原理

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

  1. iptables - 创建规则统计特定端口的流量
  2. tc (Traffic Control) - 实现端口级别的流量控制和限速
  3. HTB (Hierarchical Token Bucket) - 分层流量控制,为不同端口分配不同的带宽
  4. 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"
    }
  ]
}

注意事项

  1. 依赖要求:需要 jq 工具(脚本会自动安装)和 iptables
  2. 流量统计:端口流量统计从配置时开始,不包含历史流量
  3. 先决条件:建议先运行主流量监控脚本,以确保依赖已安装
  4. 性能影响:TC 模式可能对端口性能有轻微影响
  5. 谨慎使用:阻断模式会完全禁止端口通信,请谨慎使用
  6. 多端口支持:✅ 2.0 版本已支持同时配置和管理多个端口
  7. 推送集成:端口流量信息已集成到所有推送通知中