在Debian上配置SFTP带宽限制可以通过使用tc
(Traffic Control)工具和cgroups
(Control Groups)来实现。以下是一个基本的步骤指南:
tc
工具安装必要的软件包:
sudo apt-get update
sudo apt-get install iproute2
创建一个队列规则: 假设你想限制SFTP的带宽为1Mbps,可以使用以下命令:
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 1mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
创建一个过滤器来匹配SFTP流量: 假设SFTP使用默认的SSH端口22:
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
cgroups
工具安装必要的软件包:
sudo apt-get update
sudo apt-get install cgroup-tools
创建一个新的cgroup:
sudo cgcreate -g net_cls:/sftp_limit
设置cgroup的网络类:
编辑 /etc/cgconfig.conf
文件,添加以下内容:
group sftp_limit {
net_cls {
net_cls.classid = 0x100001;
}
}
重启cgroup服务:
sudo systemctl restart cgconfig
sudo systemctl restart cgred
将SFTP进程分配到cgroup: 假设SFTP进程的PID是1234:
echo 1234 | sudo tee /sys/fs/cgroup/net_cls/sftp_limit/net_cls.classid
配置tc来限制带宽:
使用与上面相同的tc
命令来限制带宽。
eth0
)调整命令中的设备名称。通过以上步骤,你应该能够在Debian上成功配置SFTP的带宽限制。