将文件上传到远程 FTP 服务器有多种方法,取决于你使用的操作系统(Windows/macOS/Linux)以及你偏好的工具(命令行、图形界面或脚本)。
以下是几种最常用且高效的方法:
使用图形界面工具(推荐新手或偶尔使用)
这是最简单、最直观的方法,适合不熟悉命令行的用户。
-
FileZilla(最流行,免费开源)
- 下载并安装 FileZilla Client。
- 打开软件,在顶部输入:
- 主机 (Host): FTP 服务器地址(如
ftp.example.com或 IP 地址)。 - 用户名 (Username): 你的 FTP 账号。
- 密码 (Password): 你的 FTP 密码。
- 端口 (Port): 通常为
21(如果是 SFTP 则为22)。
- 主机 (Host): FTP 服务器地址(如
- 点击 “快速连接” (Quickconnect)。
- 左侧是本地文件,右侧是远程服务器文件,选中本地文件,右键点击 “上传” (Upload) 或双击文件进行上传。
-
WinSCP(Windows 用户首选)
- 支持 FTP、SFTP、SCP 等协议。
- 界面类似资源管理器,拖拽即可上传。
使用命令行(适合 Linux/macOS/Windows PowerShell)
Linux/macOS 使用

ftp
或 lftp 命令
ftp
基本 ftp 命令:
# 连接到服务器 ftp ftp.example.com # 输入用户名和密码 # 进入上传目录 cd /path/to/remote/directory # 上传单个文件 put local_file.txt # 上传多个文件(开启递归) mput .txt # 退出 bye
更推荐的 lftp(支持断点续传、脚本化):
lftp -u username,password ftp.example.com <<EOF cd /remote/path put local_file.txt bye EOF
Windows 使用 PowerShell
PowerShell 内置了 System.Net.WebClient 或 FtpWebRequest,但更推荐使用 WinSCP 命令行版 或 PSCP(PuTTY 工具集)。
使用 PowerShell 简单上传(适用于支持 HTTP/HTTPS 的 FTP 代理或简单场景):
$ftp = "ftp://ftp.example.com/remote/path/file.txt" $user = "username" $pass = "password" $uri = New-Object System.Uri($ftp) $webclient = New-Object System.Net.WebClient $webclient.Credentials = New-Object System.Net.NetworkCredential($user, $pass) $webclient.UploadFile($uri, "C:localpathfile.txt")
⚠️ 注意:PowerShell 原生 FTP 支持有限,复杂操作建议使用第三方工具如 WinSCP CLI。
使用 SFTP/SCP(更安全,推荐)
如果服务器支持 SFTP(SSH File Transfer Protocol),强烈建议使用它代替传统 FTP,因为数据是加密传输的。
使用 scp 命令(Linux/macOS/Windows OpenSSH)
# 上传本地文件到远程服务器 scp /path/to/local/file.txt username@remote_host:/path/to/remote/directory/
使用 sftp 命令
sftp username@remote_host # 进入远程目录 cd /path/to/remote/directory # 上传文件 put local_file.txt # 退出 exit
自动化脚本(适合定期备份)
你可以编写一个脚本,实现无人值守上传。
Bash 脚本示例(Linux/macOS):
#!/bin/bash # 配置信息 HOST="ftp.example.com" USER="your_username" PASS="your_password" REMOTE_DIR="/upload/dir" LOCAL_FILE="/home/user/data.csv" # 使用 lftp 进行上传 lftp -u $USER,$PASS $HOST <<EOF cd $REMOTE_DIR put $LOCAL_FILE bye EOF echo "上传完成!"
Windows 批处理 + WinSCP 示例:
@echo off
winscp.com /command ^
"open ftp://username:password@ftp.example.com/" ^
"cd /remote/path" ^
"put C:localfile.txt" ^
"exit"
安全建议
- 优先使用 SFTP/SCP:传统 FTP 明文传输用户名和密码,容易被窃听,如果服务器支持,请始终使用 SFTP(端口 22)。
- 使用密钥认证:对于 SFTP/SCP,建议使用 SSH 密钥对进行认证,避免密码泄露。
- 限制权限:确保 FTP 账号只拥有必要目录的写入权限。
- 防火墙设置:如果使用主动模式(Active Mode),需确保服务器能连接客户端的高端口;被动模式(Passive Mode)更常见,需开放服务器上的被动端口范围。
常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 连接超时 | 防火墙阻止 21 端口 | 检查服务器防火墙,或使用 SFTP(22 端口) |
| 登录失败 | 用户名/密码错误 | 确认账号密码,注意大小写 |
| 上传失败 | 权限不足 | 检查远程目录权限(chmod 755 或 775) |
| 被动模式错误 | 防火墙/NAT 配置问题 | 在 FTP 客户端中启用“被动模式”(Passive Mode) |
如果你有具体的服务器类型(如 Linux、Windows IIS、Nginx 等)或遇到特定错误,请提供更多细节,我可以给出更针对性的解决方案。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/481316.html



