debian

如何限制Debian SFTP访问速度

小樊
46
2025-09-06 06:00:03
栏目: 智能运维

要限制Debian上的SFTP访问速度,您可以使用tc(流量控制)工具和cgroups(控制组)来实现

方法1:使用tc工具

  1. 首先,确保您已经安装了iproute2软件包,它包含了tc命令。如果没有,请运行以下命令来安装:
sudo apt-get update
sudo apt-get install iproute2
  1. 创建一个名为sftp的队列规则:
sudo tc qdisc add dev eth0 root handle 1: htb default 30

eth0替换为您的网络接口名称。

  1. 为SFTP流量创建一个类:
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit

这将限制SFTP访问速度为1Mbps。您可以根据需要更改rateceil值。

  1. 创建一个过滤器,将SFTP流量分配给刚刚创建的类:
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

  1. 安装cgroup-tools软件包:
sudo apt-get update
sudo apt-get install cgroup-tools
  1. 创建一个新的cgroup:
sudo cgcreate -g net_cls:/sftp
  1. 为新创建的cgroup分配一个classid:
echo $((0x10000 + 1)) | sudo tee /sys/fs/cgroup/net_cls/sftp/net_cls.classid

这将分配一个classid,例如0x10001

  1. 将SFTP用户添加到新创建的cgroup:
sudo cgclassify -g net_cls:/sftp <username>

<username>替换为您要限制速度的用户名。

  1. 使用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访问速度。请注意,这些方法可能需要根据您的具体需求进行调整。

0
看了该问题的人还看了