在Linux系统中,FTP(File Transfer Protocol)作为一种经典的文件传输协议,仍被广泛应用于文件共享、数据备份等场景,通过命令行工具与FTP服务器交互,可以高效地完成文件获取操作,本文将详细介绍在Linux环境下使用FTP获取文件的完整流程,包括连接方式、常用命令、高级技巧及注意事项,帮助用户掌握这一实用技能。

连接FTP服务器
在使用FTP传输文件前,首先需要建立与FTP服务器的连接,Linux系统内置了ftp命令行工具,无需额外安装即可使用,基本连接语法为:ftp [服务器地址] [端口],连接到FTP服务器ftp.example.com的默认端口(21)可执行:ftp ftp.example.com。
连接过程中,系统会提示输入用户名和密码,若服务器允许匿名访问,用户名可使用anonymous,密码通常为邮箱地址或空字符串,对于需要加密传输的场景,建议使用更安全的SFTP(基于SSH的文件传输协议)或FTPS(FTP over SSL/TLS),可通过sftp命令或ftp命令的-z参数启用加密模式。
连接成功后,FTP服务器会返回欢迎信息,并进入FTP交互式命令行界面,提示符为ftp>,此时可输入help或查看所有可用命令。
常用文件传输命令
在FTP交互模式下,掌握核心命令是高效获取文件的关键,以下为最常用的文件传输及相关操作命令:

文件浏览与定位
ls:列出当前目录下的文件和子目录,类似于Linux的ls命令。dir:详细列出文件信息,包括权限、大小、修改时间等,与-l选项效果类似。cd [目录名]:切换远程服务器上的目录,如cd /pub/data进入/pub/data目录。pwd:显示当前所在远程目录的完整路径。
文件传输模式
FTP支持两种传输模式:文本模式(ASCII)和二进制模式(Binary),传输文本文件时,ASCII模式会自动处理换行符转换;而传输可执行文件、压缩包等二进制文件时,必须使用二进制模式,避免文件损坏,切换命令为:
ascii:切换至文本模式(默认)。binary:切换至二进制模式(推荐用于大多数文件)。
文件获取与上传
get [远程文件名] [本地文件名]:从服务器下载单个文件,如get backup.zip local_backup.zip,若未指定本地文件名,则与远程文件名相同。mget [文件名匹配模式]:批量下载文件,支持通配符,如mget *.txt下载所有文本文件。put [本地文件名] [远程文件名]:上传本地文件至服务器(反向操作)。mput [文件名匹配模式]:批量上传文件。
传输状态与控制
- 执行本地系统命令,如
!ls查看本地目录内容。 hash:开启/关闭传输进度显示,开启后每传输1024字节显示一个符号。prompt:关闭/开启多文件传输时的交互提示,建议关闭以实现批量操作无干扰(prompt off)。
高级操作与脚本化应用
被动模式与防火墙兼容性
部分FTP服务器(尤其是位于防火墙后的服务器)需要启用被动模式(Passive Mode)才能建立数据连接,在FTP交互模式下,可通过passive命令切换被动模式,或通过ftp命令的-p参数默认启用:ftp -p ftp.example.com,被动模式下,数据连接由客户端主动发起,可避免服务器主动连接被防火墙拦截的问题。
使用.netrc简化连接
频繁访问同一FTP服务器时,可通过创建.netrc配置文件自动填充登录信息,文件路径为用户主目录下的.netrc(如/home/user/.netrc格式如下:
machine ftp.example.com
login username
password yourpassword
设置文件权限为600(仅所有者可读写):chmod 600 ~/.netrc,此后执行ftp ftp.example.com可直接登录,无需手动输入用户名和密码。

脚本化批量传输
结合ftp的非交互模式(通过-n禁止自动登录,配合-v显示详细日志)和重定向,可实现自动化文件传输,创建脚本download.sh:
#!/bin/bash ftp -n -v <<EOF open ftp.example.com user username password binary cd /remote/directory mget *.zip close bye EOF
赋予执行权限后(chmod +x download.sh),运行脚本即可批量下载文件。
注意事项与最佳实践
- 安全性优先:FTP协议本身不加密传输数据,用户名和密码以明文形式传输,建议仅在可信网络中使用,或改用SFTP/FTPS等加密协议。
- 文件完整性校验:传输完成后,可通过
md5sum或sha256sum命令校验文件哈希值,确保文件未被损坏。 - 权限管理:确保本地用户对目标目录有写入权限,远程服务器对源文件有读取权限,避免传输失败。
- 错误处理:传输过程中若出现错误(如文件不存在、权限不足),可通过
ftp的debug模式(debug命令)查看详细日志,定位问题原因。
常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 连接超时 | 服务器不可达或防火墙拦截 | 检查网络连接,尝试被动模式 |
| 传输文件损坏 | 未使用二进制模式传输 | 切换至binary模式后重新传输 |
| 批量下载中断 | prompt开启导致交互式确认 |
执行prompt off关闭交互提示 |
| 无法上传文件 | 本地权限不足或服务器磁盘满 | 检查本地权限及服务器磁盘空间 |
用户可全面掌握Linux环境下使用FTP获取文件的技巧,无论是简单的单文件下载,还是复杂的批量自动化传输,均能高效完成,在实际应用中,还需结合具体场景选择合适的传输模式和安全措施,确保文件传输的稳定与安全。



















