在CentOS系统中,可以通过配置tc
(Traffic Control)工具来限制SFTP访问速度。以下是具体的步骤:
首先,确保你的系统上安装了iproute
和iptables
。如果没有安装,可以使用以下命令进行安装:
sudo yum install iproute iptables-services
你需要为SFTP流量创建一个tc规则。假设你的SFTP服务运行在默认的SSH端口(22),你可以使用以下步骤来配置:
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
这里将带宽限制为1Mbps。
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
这条规则将匹配目标端口为22的流量,并将其分配到之前创建的类中。
为了确保tc规则生效,你需要配置iptables来标记SFTP流量:
sudo iptables -t mangle -A POSTROUTING -p tcp --dport 22 -j MARK --set-mark 1
如果你希望通过SFTP服务器转发流量,还需要启用IP转发:
sudo sysctl -w net.ipv4.ip_forward=1
为了使这个设置在重启后仍然有效,可以编辑/etc/sysctl.conf
文件,添加或修改以下行:
net.ipv4.ip_forward = 1
然后运行以下命令使更改生效:
sudo sysctl -p
你可以使用以下命令来验证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
文件中。
通过以上步骤,你应该能够在CentOS系统上成功限制SFTP访问速度。