温馨提示×

CentOS SFTP如何限制用户带宽使用

小樊
55
2025-07-12 16:40:44
栏目: 智能运维

在CentOS系统中,您可以使用cgroups(控制组)来限制SFTP用户的带宽使用。以下是设置步骤:

  1. 安装cgroup-tools软件包:
sudo yum install cgroup-tools
  1. 创建一个新的cgroup,例如命名为sftp_bandwidth
sudo cgcreate -g net_cls:/sftp_bandwidth
  1. 为新创建的cgroup分配一个类ID,例如1:10
echo 10 | sudo tee /sys/fs/cgroup/net_cls/sftp_bandwidth/net_cls.classid
  1. 限制带宽,例如限制为1Mbps(1000kbps):
echo 100000 | sudo tee /sys/fs/cgroup/net_cls/sftp_bandwidth/net_cls.limit_in_bytes
  1. 将SFTP用户添加到新创建的cgroup中。首先,找到SFTP用户的UID:
id <username>

<username>替换为您要限制带宽的SFTP用户名。记下UID,例如1001

  1. 将UID添加到cgroup中:
echo <UID> | sudo tee /sys/fs/cgroup/net_cls/sftp_bandwidth/tasks

<UID>替换为您在上一步找到的SFTP用户的UID。

  1. 配置SSH以使用cgroup。编辑/etc/ssh/sshd_config文件:
sudo vi /etc/ssh/sshd_config

在文件末尾添加以下内容:

Match Group sftp_bandwidth
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

这将限制属于sftp_bandwidth组的用户在SFTP会话中的带宽。

  1. 重启SSH服务以应用更改:
sudo systemctl restart sshd

现在,属于sftp_bandwidth组的SFTP用户的带宽应受到限制。请注意,这些更改可能需要重新启动系统才能生效。

0