centos

怎样限制centos sftp访问速度

小樊
37
2025-05-13 00:03:24
栏目: 智能运维

要限制 CentOS 上的 SFTP 访问速度,您可以使用 tc(流量控制)工具来实现。以下是一个简单的示例,说明如何限制 SFTP 用户的上传和下载速度。

  1. 首先,确保已经安装了 iproute 软件包。如果没有,请使用以下命令安装:
sudo yum install iproute
  1. 创建一个名为 /etc/systemd/system/sftp-limit@.service 的新 systemd 服务文件,其中 “@” 是一个占位符,表示用户名。在此文件中,添加以下内容:
[Unit]
Description=Limit SFTP speed for user %i

[Service]
Type=simple
ExecStart=/usr/bin/tc qdisc add dev eth0 root handle 1: htb default 30
ExecStart=/usr/bin/tc class add dev eth0 parent 1: classid 1:%i htb rate 1mbit ceil 1mbit
ExecStart=/usr/bin/tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst %i flowid 1:%i
ExecStop=/usr/bin/tc qdisc del dev eth0 root

[Install]
WantedBy=multi-user.target

在这个文件中,我们使用 tc 命令为每个 SFTP 用户创建了一个新的队列规则(qdisc),并为其分配了一个类(class)。这里我们将速度限制为 1 Mbps,您可以根据需要更改 rateceil 参数。

  1. 为每个需要限制速度的 SFTP 用户启用此服务。将 “@” 替换为实际的用户名:
sudo systemctl enable sftp-limit@username.service
  1. 重新启动 systemd 服务以应用更改:
sudo systemctl daemon-reload

现在,您已经成功限制了指定用户的 SFTP 访问速度。请注意,这个方法仅适用于通过 SSH 连接的用户,并且需要在每次系统重启后重新启用服务。为了使这些设置在系统启动时自动生效,您可以将上述 systemctl enable 命令添加到用户的登录脚本中(例如 ~/.bashrc~/.bash_profile)。

0
看了该问题的人还看了