Linux (Ubuntu) 的流量监控与限制(月100G为例)

sudo apt update
sudo apt install iptables iproute2 iptables-persistent -y
# 创建一个新的iptables链来跟踪流量
sudo iptables -N TRAFFIC_TRACKING

# 将所有流量传送到新链
sudo iptables -A INPUT -j TRAFFIC_TRACKING
sudo iptables -A OUTPUT -j TRAFFIC_TRACKING

# 跟踪下载流量(入站流量)
sudo iptables -A TRAFFIC_TRACKING -m conntrack --ctstate ESTABLISHED,RELATED -j RETURN
# 确保SSH流量不被限制
sudo iptables -A TRAFFIC_TRACKING -p tcp --dport 22 -j RETURN  

# 计数流量
sudo iptables -A TRAFFIC_TRACKING -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A TRAFFIC_TRACKING -m conntrack --ctstate ESTABLISHED -j ACCEPT

# 记录流量,104857600000字节等于100GB
sudo iptables -A TRAFFIC_TRACKING -m connbytes --connbytes 0:104857600000 --connbytes-dir both --connbytes-mode bytes -j RETURN

# 如果流量超过100GB,丢弃新的连接
sudo iptables -A TRAFFIC_TRACKING -m connbytes --connbytes 104857600000: --connbytes-dir both --connbytes-mode bytes -j DROP

# 保存并应用iptables规则,确保iptables规则在重启后依然生效
sudo mkdir -p /etc/iptables
sudo sh -c "iptables-save > /etc/iptables/rules.v4"

# 验证流量限制,查看流量统计情况
sudo iptables -L -v -n -t filter
sudo iptables -L TRAFFIC_TRACKING -v -n

# 定时任务设置每月重置流量计数
sudo crontab -e
# 选择1,在文件最后加入一行,CTRL+O保存,Enter确认文件名,CTRL+X退出nano编辑器
0 0 1 * * /sbin/iptables -Z TRAFFIC_TRACKING
# 保存iptables规则
sudo netfilter-persistent save
# 重启服务
sudo systemctl restart netfilter-persistent

# 或者刚启动服务
sudo systemctl start netfilter-persistent
sudo systemctl enable netfilter-persistent

sudo systemctl status netfilter-persistent
# 一行命令输出已经用了多少GB
sudo iptables -L TRAFFIC_TRACKING -v -n -x | awk '/0.0.0.0\/0/ {sum += $2} END {print "Used GB: ", sum / 1073741824}'
# 或者
sudo iptables -L TRAFFIC_TRACKING -v -n -x | grep '0.0.0.0/0' | awk '{sum += $2} END {print "Used GB: " sum/1073741824}'

# 用了多少MB
sudo iptables -L TRAFFIC_TRACKING -v -n -x | awk '/0.0.0.0\/0/ {sum += $2} END {print "Used MB: " sum/1048576}'

# 查看流量统计情况
sudo iptables -L TRAFFIC_TRACKING -v -n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值