Appearance
WinSCP 文件传输操作手册
目标: 在 Windows 本地与 Linux 服务器之间安全、便捷地传输文件。 场景: 部署静态网站、上传配置文件、备份服务器数据。
1. 安装与连接
1.1 安装
如果尚未安装,请访问 WinSCP 官网 下载并安装 "Portable executables" (便携版) 或 "Installation package" (安装版)。 推荐将其放在 OneDrive/apps/WinSCP (如果是便携版) 以便于同步。
1.2 建立连接 (Session)
- 打开 WinSCP,弹出 "Login" 窗口。
- File protocol: 选择
SFTP。 - Host name: 输入服务器 IP (例如
192.168.233.129)。 - Port number: 默认
22(除非服务器修改了 SSH 端口)。 - User name: 输入用户名 (例如
hongjy)。 - Password: 输入用户密码。
- 进阶: 点击 "Advanced" -> "SSH" -> "Authentication" -> "Private key file" 选择
.ppk密钥文件 (如果你配置了 SSH 密钥)。
- 进阶: 点击 "Advanced" -> "SSH" -> "Authentication" -> "Private key file" 选择
- 保存会话: 点击 "Save" 按钮,命名为 "Home Server" 或 "Core Server",勾选 "Save password" (可选,方便但不建议在公共电脑使用)。
- 登录: 点击 "Login"。
2. 核心操作
2.1 界面概览
- 左侧面板: 本地电脑 (Local)。
- 右侧面板: 远程服务器 (Remote)。
- 操作方式: 类似资源管理器,支持拖拽、复制、粘贴。
2.2 上传文件 (Upload)
- 在左侧导航到本地项目目录 (例如
C:\Users\hongj\my-resource\site\home). - 在右侧导航到服务器目标目录 (例如
/srv/site/home). - 选中左侧的文件或文件夹,拖拽到右侧。
- 或者选中后按
F5(Upload),点击 "OK"。
2.3 下载文件 (Download)
- 在右侧选中服务器上的文件 (如日志、备份)。
- 拖拽到左侧本地目录。
- 或者选中后按
F5(Download)。
2.4 编辑远程文件
- 右键点击远程文件 -> "Edit" -> "Edit" (或按
F4)。 - WinSCP 会下载临时文件并打开默认编辑器。
- 保存时,WinSCP 会自动上传覆盖远程文件。
- 提示: 可以在 "Preferences" -> "Editors" 中配置 VS Code 为默认编辑器。
3. 高级功能:目录同步 (Synchronize)
当你本地构建了新的静态网站,需要把变动更新到服务器时,使用同步功能非常高效。
- 进入要同步的目录 (左侧本地,右侧远程)。
- 点击工具栏上的 Synchronize 按钮 (或按
Ctrl + U)。 - Direction / Target directory:
- 选择
Local -> Remote(将本地变动推送到服务器)。
- 选择
- Mode:
Synchronize files: 仅更新修改过的文件 (推荐)。Mirror files: 镜像模式,会删除服务器上多余的文件 (慎用,除非你确定本地是唯一真理)。
- 点击 "Preview" 查看将要进行的操作,确认无误后点击 "OK"。
4. 常见问题 (Troubleshooting)
4.1 "Permission denied" (权限拒绝)
- 现象: 上传失败,提示无权写入。
- 原因: 登录用户 (hongjy) 对目标目录 (如
/srv/core) 没有写权限。 - 解决:
- 临时: 上传到用户主目录 (
/home/hongjy/),然后用 SSH (Putty/Terminal) 执行sudo mv移动。 - 根治: 在服务器上修改目录所有权:
sudo chown -R hongjy:hongjy /srv/target_dir。
- 临时: 上传到用户主目录 (
4.2 乱码问题
- 现象: 中文文件名显示为乱码。
- 解决: 在连接设置中开启 "UTF-8 encoding for filenames" (通常默认为 Auto,强制开启即可)。
4.3 保持连接 (Keepalive)
- 现象: 几分钟不操作就断开连接。
- 解决: "Advanced" -> "Connection" -> "Keepalives" -> 勾选 "Executing dummy protocol commands",设定间隔 (如 30秒)。
