可以,SFTP 本身(OpenSSH 的 sftp-server)是支持限速的,但不是在 sftp 客户端命令里直接设,而是在 SSH / sshd 服务端 层面控制。
下面按常见场景说明。
在 sshd 服务端配置 中可以使用:
# /etc/ssh/sshd_config
Match User sftpuser
ForceCommand internal-sftp
ChrootDirectory /data/sftp
# 限速(字节/秒)
# 100KB/s = 102400
MaxBandwidth 102400
说明:
MaxBandwidth:OpenSSH 8.0+ 支持systemctl restart sshd
⚠️ 注意:
MaxBandwidth 是 每个连接Match Group sftp
ForceCommand internal-sftp
MaxBandwidth 512000
或
Match User alice
MaxBandwidth 204800
scp(不是 sftp)scp -l 800 file user@host:/path
-l 单位是 Kbit/s⚠️ 这是 scp,不是 sftp
普通 sftp 命令不直接支持限速
但你可以:
pv 限速后再传:pv -L 1m file | sftp user@host
rsync + ssh:rsync -avz --bwlimit=1000 file user@host:/path
(单位是 KB/s)如果用 SFTP 只是传输手段,也可以在:
tc(traffic control)iptables + limitcgroup + 网络限制但一般 不推荐,复杂度高。
✅ 能限速
✅ 推荐方式:sshd_config 的 MaxBandwidth
❌ sftp 命令本身没有限速参数
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置。