目录
- 第一步:准备工作(上传前必须知道)
- 获取FTP服务器信息
- 准备好你的源码文件
- 选择合适的FTP客户端工具
- 第二步:使用图形化FTP客户端(推荐新手)
- Windows系统:使用 FileZilla
- macOS系统:使用 FileZilla 或 Cyberduck
- 通用操作步骤(连接、上传、断开)
- 第三步:使用命令行(适合开发者)
- Windows系统:使用 PowerShell
- macOS / Linux系统:使用 Terminal
- 第四步:高级技巧与注意事项
- 如何处理文件路径问题?
- 如何使用SFTP代替FTP?(更安全)
- 上传后如何验证?
- 常见问题排查
第一步:准备工作
在开始上传之前,请确保你已经准备好以下信息,这是连接服务器的“钥匙”。

获取FTP服务器信息
从你的服务器管理员或托管服务提供商处获取以下信息:
- 主机名: 服务器的IP地址或域名(
ftp.yourdomain.com或168.1.100)。 - 用户名: 用于登录FTP服务器的账户名。
- 密码: 对应账户的密码。
- 端口: FTP的默认端口是
21,如果服务器使用了其他端口,请务必确认。强烈建议使用SFTP(端口22),因为它更安全。 - 上传路径: 你需要将源码上传到服务器上的哪个具体目录?(
/var/www/html/或/public_html/),如果不清楚,可以先上传到根目录,登录服务器后查看。
准备好你的源码文件
将你所有的源码文件整理在一个文件夹中,并确保文件名和路径中不包含中文或特殊字符,以避免兼容性问题。
选择合适的FTP客户端工具
- 图形化客户端(推荐): 像操作文件浏览器一样直观,适合大多数人。
- FileZilla: 免费、开源、跨平台(Windows, macOS, Linux),功能强大,是目前最受欢迎的选择。
- Cyberduck: 免费、开源,界面简洁,在macOS上非常流行。
- 命令行工具: 适合开发者,自动化脚本,效率高。
- Windows: PowerShell 或 CMD 内置命令。
- macOS / Linux: Terminal 内置命令。
第二步:使用图形化FTP客户端(以 FileZilla 为例)
FileZilla 是最通用的选择,这里以它为例进行讲解,其他客户端(如Cyberduck)的界面和操作逻辑也大同小异。
下载并安装 FileZilla
访问 FileZilla 官网 下载并安装适合你操作系统的版本。

连接FTP服务器
打开 FileZilla,你会看到如下界面:
在顶部的快速连接栏中,填入你准备好的信息:
- 主机:
ftp.yourdomain.com - 用户名:
your_username - 密码:
your_password - 端口:
21(或你的服务器指定端口)
然后点击 “快速连接” 按钮。
上传源码文件
连接成功后,FileZilla 界面会分为左右两部分:
- 左侧: 你本地电脑的文件和文件夹。
- 右侧: 你远程服务器上的文件和文件夹。
上传操作非常简单:
- 在左侧找到并双击进入你存放源码的本地文件夹。
- 在右侧,双击进入你想要上传到的远程目录(
public_html)。 - 在左侧的本地文件夹中,选中你所有的源码文件和文件夹。
- 将选中的文件/文件夹拖拽到右侧的远程窗口中,或者直接点击右键,选择 “上传”。
你会看到上传进度条,等待上传完成即可。
断开连接
上传完成后,点击左上角的 “断开连接” 按钮,安全地退出FTP会话。
第三步:使用命令行(以 macOS/Linux 为例)
对于熟悉命令行的开发者来说,这种方式更快,也更容易集成到自动化流程中。
连接FTP服务器
打开你的终端(Terminal)。
使用 ftp 命令连接服务器:
ftp ftp.yourdomain.com
系统会提示你输入用户名和密码:
Name (ftp.yourdomain.com:your_local_user): your_username
331 Please specify the password.
Password:
输入密码(输入时不会显示任何字符),然后按回车,如果连接成功,你会看到 ftp> 提示符。
上传源码文件
ftp 命令行模式下,一些常用命令如下:
ls: 列出当前远程目录下的文件。cd <目录名>: 进入远程服务器的指定目录。lcd <本地路径>: 切换到本地电脑的指定目录(非常重要!)。put <本地文件名>: 上传单个文件。mput <本地文件名1> <本地文件名2> ...: 上传多个文件(可以使用通配符 )。mkdir <目录名>: 在远程服务器创建新目录。bye: 退出FTP连接。
完整上传示例:
假设你的源码在 /Users/yourname/Projects/my-app 目录下,要上传到服务器的 /var/www/html/ 目录。
# 1. 连接服务器 ftp ftp.yourdomain.com # 2. 输入用户名和密码 # 3. 切换到本地源码目录 lcd /Users/yourname/Projects/my-app # 4. 切换到远程目标目录 cd /var/www/html/ # 5. 上传所有文件(包括文件夹内的) # 使用 mput * 会提示每个文件,输入 'y' 确认,可以使用 'prompt' 命令关闭交互式提示。 prompt off mput * # 或者,如果服务器支持,可以使用更现代的 `mput -r` 来递归上传文件夹 # mput -r ./ # 6. 上传完成后,退出 bye
第四步:高级技巧与注意事项
如何处理文件路径问题?
- 绝对路径 vs 相对路径: 在图形化客户端中,你通过双击进入目录,使用的是相对路径,在命令行中,
cd和lcd命令可以帮你精确导航。 - 文件权限: 上传后,你可能需要通过SSH登录服务器,修改源码文件夹的权限,以确保Web服务器(如Nginx, Apache)有正确的读写执行权限。
chmod -R 755 /var/www/html/your-project。
如何使用SFTP代替FTP?(强烈推荐)
传统的FTP在传输数据时是明文的,用户名、密码和文件内容都可能被窃取。SFTP (SSH File Transfer Protocol) 是基于SSH的安全文件传输协议,对数据进行加密,是现代开发的标准做法。
-
FileZilla 中使用SFTP:
- 在主机地址前加上
sftp://,sftp://ftp.yourdomain.com。 - 或者,在连接设置中,将协议从 "FTP - File Transfer Protocol" 改为 "SFTP - SSH File Transfer Protocol"。
- 端口通常使用
22。
- 操作和FTP完全一样,但安全性大大提高。
- 在主机地址前加上
-
命令行中使用SFTP: 命令更简洁,交互体验更好。
sftp your_username@ftp.yourdomain.com
登录后,命令类似,但更强大:
put: 上传文件get: 下载文件ls,cd,lcd,mkdir: 同上lls: 查看本地文件列表exit: 退出
上传后如何验证?
- 通过浏览器访问: 在浏览器中输入你的域名,看看网站是否正常显示。
- 通过SSH登录: 连接到服务器,用
ls或cd命令检查文件是否在正确的位置,并用cat或less命令检查关键文件内容是否正确。
常见问题排查
- 连接被拒绝:
- 检查主机名、用户名、密码、端口是否正确。
- 确认服务器防火墙是否允许该端口的连接。
- 确认FTP/SFTP服务是否在服务器上正常运行。
- 上传失败/权限被拒绝:
- 检查你是否有权限写入目标目录。
- 检查本地文件是否被其他程序占用。
- 确保你没有试图上传系统保留文件(如
Thumbs.db)。
- 文件乱码:
- 确保你的源码文件是使用UTF-8编码保存的。
- 在FileZilla中,可以设置字符编码为
UTF-8(编辑 -> 设置 -> 连接 -> 字符集)。
| 方法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
| 图形化客户端 | 直观易用,可视化操作,支持拖拽 | 需要额外安装软件 | 新手、绝大多数开发者 |
| 命令行 | 无需安装,速度快,适合自动化和脚本 | 需要学习命令,不直观 | 经验丰富的开发者、运维人员 |
对于源码上传这种任务,强烈推荐使用支持SFTP的图形化客户端(如FileZilla),它既简单安全,又能满足所有日常需求,如果你正在构建CI/CD流程,那么命令行或自动化脚本会是更好的选择。
