BWH Compass

文件上传下载:优先使用 SFTP 或 SCP

SFTP 与 SCP 通过 SSH 传输,使用的端口和认证方式与 SSH 对应。它们和传统 FTP 的协议、端口及安全配置不同。

BWH Compass 编辑整理更新于 约 4 分钟阅读

1. 上传网站文件优先使用 SFTP#

SFTP 通过 SSH 传输文件,与 FTP、FTPS 是不同协议。既然已经能 SSH 登录,通常不必为了上传文件再安装一个 FTP 服务。先准备公网 IP、SSH 端口、Linux 用户名和密钥或密码。

从实例面板核对文件传输要使用的 IP 和 SSH 端口
服务商官方知识库公开截图(旧版界面),用于对照功能名称;当前菜单位置可能调整。图中的套餐、IP、端口和日期仅为示例。

在 WinSCP、FileZilla 或 Termius 中新建连接时,协议选 SFTP,端口使用实际 SSH Port,不能因为软件叫 FTP 客户端就选择普通 FTP。第一次连接同样要核对主机密钥指纹。

2. 先上传到普通用户目录#

建议先把文件上传到自己的暂存目录,例如 /home/deploy/uploads/,检查内容后再通过 sudo 安装到网站目录。不要为了方便把整个网站目录改成 777,也不要用 root 账户给多人共享上传。

图形客户端通常左侧是本地、右侧是服务器。先创建一个小文本文件试传,下载回来确认内容一致,再传正式文件。覆盖已有文件前保留上一版本,尤其是环境变量、配置和证书文件。

3. 命令行使用 SCP 或 SFTP#

以下命令在本地电脑执行。SCP 指定端口用大写 -P,与 SSH 的小写 -p 不同。

bash
scp -P 22 ./site.tar.gz deploy@203.0.113.10:/home/deploy/uploads/
scp -P 22 deploy@203.0.113.10:/home/deploy/backup.sql ./backup.sql
sftp -P 22 deploy@203.0.113.10

交互式 SFTP 中,pwd/ls 查看远端,lpwd/lls 查看本地,put 上传,get 下载,bye 退出。大文件中断后可查看客户端是否支持续传,避免从头反复消耗流量。

4. 大目录同步先做 dry-run#

两端有 rsync 时,可以增量同步。先预演并检查目标目录;源路径末尾的斜线表示同步目录内容,其含义与不带斜线不同。

bash
rsync -av --dry-run -e 'ssh -p 22' ./site/ deploy@203.0.113.10:/home/deploy/site-staging/
rsync -av -e 'ssh -p 22' ./site/ deploy@203.0.113.10:/home/deploy/site-staging/

不要初次同步就加 --delete,它会删除目标中源端没有的文件。数据库正在运行的数据目录也不适合直接 rsync 当作一致性备份,应先做数据库导出。

5. 核对完整性、权限和实际访问#

bash
sha256sum site.tar.gz

在上传前后各算一次校验值,确认一致。解压前用 tar -tzf site.tar.gz 查看路径,解压到独立目录,避免覆盖系统文件。然后按照应用要求设置所有者和最小权限。

如果上传成功但网页 403,检查 Web 服务用户是否能遍历父目录和读取文件;如果 SFTP 连接失败,按SSH 排错检查认证与端口。部署和恢复前的完整流程见备份与恢复

完成后检查

含数据库的应用要做一致性备份,直接复制运行中的数据库目录不能保证可恢复。

官方资料与相关入口