宝塔面板默认集成了FTP服务,但FTP协议本身存在传输效率低、安全性不足的问题,尤其是在跨网络传输大文件时速度表现不佳。通过用SFTP替代FTP,同时开启SSH压缩,可以显著提升文件传输速度,还能增强传输过程的安全性。

为什么选择SFTP替代FTP
FTP协议传输数据时默认不加密,不仅存在安全风险,而且传输机制相对老旧,在复杂网络环境下容易出现速度波动。SFTP基于SSH协议实现,所有数据都会加密传输,同时支持更高效的传输调度,配合SSH压缩功能可以进一步减少传输的数据量,从而提升速度。
第一步:禁用宝塔默认FTP服务
首先登录宝塔面板,在左侧菜单栏找到软件商店,找到已安装的Pure-Ftpd服务,点击停止并卸载,避免端口冲突。同时检查安全页面,确保21端口的规则已经删除,防止后续出现端口占用问题。
第二步:确认SSH服务正常运行
宝塔面板默认会开启SSH服务,我们可以通过终端命令检查状态:
# 检查SSH服务状态 systemctl status sshd # 如果服务未运行,执行启动命令 systemctl start sshd # 设置开机自启 systemctl enable sshd
第三步:配置SFTP访问权限
SFTP使用系统用户进行认证,我们需要为文件传输创建专用用户,避免使用root用户直接登录。首先在宝塔面板左侧选择系统用户,点击添加用户,设置用户名和密码,同时为该用户分配网站目录的读写权限。
如果需要限制该用户只能访问指定目录,可以修改SSH配置文件:
# 编辑SSH配置文件
vim /etc/ssh/sshd_config
# 在文件末尾添加以下内容,限制sftp_user用户只能访问/home/sftp_user目录
Match User sftp_user
ChrootDirectory /home/sftp_user
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
修改完成后保存配置,执行以下命令重启SSH服务使配置生效:
systemctl restart sshd
第四步:开启SSH压缩提升传输速度
SSH协议本身支持数据压缩功能,开启后可以在传输前对数据进行压缩,减少实际传输的数据量,尤其适合文本类文件、代码文件的传输。同样编辑SSH配置文件:
# 编辑SSH配置文件 vim /etc/ssh/sshd_config # 找到Compression配置项,如果没有则手动添加 Compression yes # 可以设置压缩级别,范围是1-9,默认是6,数值越高压缩率越高但CPU消耗越大 CompressionLevel 6
保存配置后再次重启SSH服务:
systemctl restart sshd
客户端连接验证
完成上述配置后,使用支持SFTP的客户端(比如FileZilla)进行连接,协议选择SFTP,主机填写服务器IP,端口默认22,输入刚才创建的专用用户名和密码即可连接。传输文件时可以明显感受到速度提升,尤其是开启压缩后,大文件的传输时间会明显缩短。
注意事项
- 不要直接使用root用户开启SFTP访问,避免安全风险,尽量使用专用普通用户。
- SSH压缩会消耗一定的CPU资源,如果服务器CPU负载已经很高,可以适当调低压缩级别或者关闭压缩。
- 如果连接失败,可以检查宝塔面板的安全组规则,确保22端口已经放行。