要限制CentOS上的SFTP访问速度,您可以使用tc
(流量控制)工具来实现
iproute
包,它包含了tc
工具。在大多数CentOS版本中,它应该已经预装了。如果没有,请使用以下命令安装:sudo yum install iproute
sftp_qos
的qos脚本,用于限制SFTP访问速度。使用文本编辑器创建一个新文件,例如:sudo vi /usr/local/bin/sftp_qos
sftp_qos
文件中,然后用实际的用户名和速度限制值替换<username>
和<speed_limit>
(例如,100kbps):#!/bin/bash
# 设置用户名和速度限制(单位:kbps)
USERNAME="<username>"
SPEED_LIMIT="<speed_limit>"
# 获取用户的UID和GID
UID=$(id -u $USERNAME)
GID=$(id -g $USERNAME)
# 创建一个名为sftp_qos的tc队列规则
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate ${SPEED_LIMIT}kbps ceil ${SPEED_LIMIT}kbps
# 为SFTP用户创建一个子队列规则
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst <user_ip> flowid 1:1
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate ${SPEED_LIMIT}kbps ceil ${SPEED_LIMIT}kbps
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 22 0xffff flowid 1:10
sudo chmod +x /usr/local/bin/sftp_qos
<username>
和<speed_limit>
:sudo /usr/local/bin/sftp_qos
sudo tc qdisc del dev eth0 root
请注意,这个脚本仅适用于单个用户和一个网络接口。如果您有多个用户或多个网络接口,您需要根据实际情况修改脚本。