FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议,它允许用户将文件从本地计算机上传到远程服务器,或者从远程服务器下载文件到本地计算机。
以下是使用 FTP 服务器传送文件的详细步骤,分为准备阶段、使用图形界面工具和使用命令行工具三种方式:
准备阶段
在开始之前,你需要确保拥有以下信息:
- FTP 服务器地址(IP 地址或域名,如
ftp.example.com或168.1.100)。 - 端口号:默认是
21,但有些服务器可能使用其他端口。 - 用户名:登录账户。
- 密码:登录密码。
- 权限:确保你有上传或下载文件的权限。
安全提示:传统 FTP 传输数据是明文的,容易被窃听,如果可能,建议使用 SFTP(SSH File Transfer Protocol)或 FTPS(FTP over SSL/TLS)来加密传输。
方法一:使用图形界面工具(推荐初学者)
这是最简单、最直观的方法,常用的工具包括:
- WinSCP(Windows,免费且强大)
- FileZilla(跨平台,Windows/Mac/Linux)
- Cyberduck(Mac/Windows)
以 FileZilla 为例:
- 下载并安装 FileZilla Client。
- 打开软件
,在顶部找到“快速连接”栏。
- 填写连接信息:
- 主机:输入 FTP 服务器地址(
ftp://192.168.1.100)。 - 用户名:输入你的 FTP 用户名。
- 密码:输入你的密码。
- 端口:留空使用默认 21,或输入特定端口。
- 主机:输入 FTP 服务器地址(
- 点击“快速连接”,如果信息正确,你会看到左侧是本地文件,右侧是远程服务器文件。
- 传送文件:
- 上传文件:在左侧本地文件列表中找到你要上传的文件,右键点击选择“上传”,或直接拖拽到右侧远程目录。
- 下载文件:在右侧远程文件列表中找到要下载的文件,右键点击选择“下载”,或直接拖拽到左侧本地目录。
- 查看状态:底部窗口会显示传输进度和状态(成功/失败)。
方法二:使用命令行工具(适合高级用户/自动化)
Windows 命令提示符(CMD)或 PowerShell
Windows 自带基本的 FTP 客户端。
- 打开 CMD 或 PowerShell。
- 输入
ftp并回车。 - 连接服务器:
open 192.168.1.100 21
- 输入用户名和密码:
User: your_username Password: your_password
- 上传文件:
put local_file.txt remote_file.txt
- 下载文件:
get remote_file.txt local_file.txt - 退出:
quit
Linux/Mac 终端
Linux 和 Mac 也内置了 ftp 命令,但更推荐使用 lftp 或 sftp。
使用内置 ftp 命令:
ftp 192.168.1.100 # 输入用户名和密码后 put local_file.txt get remote_file.txt bye
使用 sftp(更安全,推荐):
sftp username@192.168.1.100 # 输入密码后 put local_file.txt get remote_file.txt exit
方法三:使用编程语言自动传输(适合开发者)
如果你需要在程序中自动上传/下载文件,可以使用各种语言的库。
Python 示例(使用 ftplib):
import ftplib
# 连接服务器
ftp = ftplib.FTP('192.168.1.100')
ftp.login('username', 'password')
# 上传文件
with open('local_file.txt', 'rb') as file:
ftp.storbinary('STOR remote_file.txt', file)
# 下载文件
with open('downloaded_file.txt', 'wb') as file:
ftp.retrbinary('RETR remote_file.txt', file.write)
# 断开连接
ftp.quit()
Python 示例(使用 paramiko 进行 SFTP,更安全):
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='username', password='password')
sftp = ssh.open_sftp()
sftp.put('local_file.txt', 'remote_file.txt') # 上传
sftp.get('remote_file.txt', 'downloaded_file.txt') # 下载
sftp.close()
ssh.close()
常见问题与注意事项
-
被动模式(Passive Mode)问题:
- 如果连接成功但无法列出文件或传输卡住,可能是防火墙/NAT 导致的问题。
- 在 FileZilla 等工具中,尝试在设置中启用或禁用“被动模式”(Passive Mode)。
-
防火墙和端口:
确保服务器防火墙开放了 FTP 端口(默认 21)以及被动模式的数据端口范围(如 50000-51000)。
-
编码问题:
- 如果文件名包含中文,可能出现乱码,在 FileZilla 中,可以在设置中将字符集设置为
UTF-8。
- 如果文件名包含中文,可能出现乱码,在 FileZilla 中,可以在设置中将字符集设置为
-
安全性:
- 尽量避免使用明文 FTP,生产环境建议使用 SFTP(基于 SSH,端口 22)或 FTPS(FTP over SSL,端口 990 或 21)。
- 普通用户:推荐使用 FileZilla 或 WinSCP,拖拽式操作,简单直观。
- 系统管理员/开发者:推荐使用 SFTP 或 命令行工具,便于脚本化和自动化。
- 安全优先:始终优先选择加密传输方式(SFTP/FTPS)。
如有具体错误信息或特定场景,欢迎提供更多细节,我可以给出更针对性的帮助。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484542.html



