在Debian系统中配置SFTP的带宽限制,可以通过使用tc(Traffic Control)工具来实现。以下是一个基本的步骤指南:
首先,确保你已经安装了iproute2包,它包含了tc工具。
sudo apt update
sudo apt install iproute2
假设你想限制SFTP用户的带宽为1Mbps(即1024kbps),你可以使用以下命令来创建一个简单的带宽限制规则。
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 1024kbps ceil 1024kbps
这行命令创建了一个类,限制了带宽为1Mbps,并且设置了上限也为1Mbps。
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
这行命令将所有发往端口22(SFTP默认端口)的流量导向我们刚刚创建的类。
你可以使用以下命令来查看当前的tc配置:
sudo tc -s qdisc ls dev eth0
sudo tc -s class ls dev eth0
sudo tc -s filter ls dev eth0
上述配置在系统重启后会丢失。为了持久化配置,你可以将上述命令添加到系统的启动脚本中,例如/etc/rc.local文件中。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 1024kbps ceil 1024kbps
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
exit 0
确保/etc/rc.local文件有执行权限:
sudo chmod +x /etc/rc.local
通过以上步骤,你应该能够在Debian系统中成功配置SFTP的带宽限制。