要限制Debian上的SFTP访问速度,您可以使用tc
(流量控制)工具和cgroups
(控制组)来实现
方法1:使用tc工具
iproute2
软件包,它包含了tc
命令。如果没有,请运行以下命令来安装:sudo apt-get update
sudo apt-get install iproute2
sftp
的队列规则:sudo tc qdisc add dev eth0 root handle 1: htb default 30
将eth0
替换为您的网络接口名称。
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
这将限制SFTP访问速度为1Mbps。您可以根据需要更改rate
和ceil
值。
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
这将把目标端口为22(SFTP默认端口)的流量分配给类1:1
。
方法2:使用cgroups
cgroup-tools
软件包:sudo apt-get update
sudo apt-get install cgroup-tools
sudo cgcreate -g net_cls:/sftp
echo $((0x10000 + 1)) | sudo tee /sys/fs/cgroup/net_cls/sftp/net_cls.classid
这将分配一个classid,例如0x10001
。
sudo cgclassify -g net_cls:/sftp <username>
将<username>
替换为您要限制速度的用户名。
tc
工具为cgroup设置带宽限制: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 ceil 1mbit
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst <user_ip> flowid 1:1
将<user_ip>
替换为SFTP用户的IP地址。
现在,您已经成功限制了Debian上SFTP访问速度。请注意,这些方法可能需要根据您的具体需求进行调整。