温馨提示×

centos sftp能否限速传输

小樊
42
2026-09-09 00:36:37
栏目: 智能运维

CentOS 上,SFTP 本身(OpenSSH 自带的 sftp-server)默认不支持直接限速,但可以通过 几种间接方式实现限速。下面按常用程度说明。


一、OpenSSH 原生方式(不推荐,功能弱)

OpenSSH 的 sftp-server 没有内置限速参数(如 -l 限速)。 所以:

❌ 不能像 scp -l 那样直接限速
✅ 只能通过外部手段


二、推荐方案 1:用 trickle 限制 SFTP 速度(最简单)

原理

trickle 是一个用户态流量限速工具,可以限制任意程序的网络速率。

安装

yum install epel-release -y
yum install trickle -y

修改 SFTP 配置

编辑:

vi /etc/ssh/sshd_config

找到或添加:

Subsystem sftp /usr/sbin/sftp-server

改成:

Subsystem sftp /usr/bin/trickle -s -u 100 -d 100 /usr/sbin/sftp-server

参数说明:

  • -u 100:上传限速 100 KB/s
  • -d 100:下载限速 100 KB/s

重启 SSH:

systemctl restart sshd

✅ 优点:简单
❌ 缺点:多用户共享限制,不够精细


三、推荐方案 2:用 tc + iptables(服务器级限速,更专业)

适合:

  • 多用户
  • 更精确控制
  • 生产环境

示例:限制 SFTP(端口 22)总带宽

tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

或更复杂用 htb 分类限速。

⚠️ 需要网络知识,且影响所有 SSH 流量(不止 SFTP)


四、推荐方案 3:用 proftpd / vsftpd(替代 SFTP)

如果你不是必须用 SSH SFTP,可以:

  • 使用 FTP + SSL(FTPS)
  • vsftpd 支持:
anon_max_rate=100000
local_max_rate=100000

✅ 原生限速
❌ 不是 SFTP(协议不同)


五、总结建议

场景 推荐方案
临时 / 简单 trickle
多用户 / 稳定 tc
不想用 SFTP vsftpd

如果你愿意,我可以:

  • 给你 指定用户限速
  • 给你 systemd 方式
  • 帮你 写完整 sshd_config 示例

直接说你的使用场景即可。

0