FTP
2025年7月11日大约 2 分钟
前置知识
控制连接端口是21
数据连接端口为20
主动模式下客户端先用任意随机端口给予服务器21控制端口进行连接,然后客户端告知服务器端所使用的端口,随后建立在端口20的数据连接
命令指南
1. 连接与登录
| 命令 | 说明 |
|---|---|
ftp <IP地址> | 连接 FTP 服务器(如 ftp 192.168.1.1) |
open <IP地址> | 在 FTP 会话中重新连接另一个服务器 |
user <用户名> | 重新输入用户名和密码 |
bye/ quit | 退出 FTP 会话 |
2. 目录与文件操作
| 命令 | 说明 |
|---|---|
ls/ dir | 列出当前目录的文件和子目录 |
cd <目录名> | 切换目录(如 cd /pub) |
pwd | 显示当前所在的远程目录 |
mkdir <目录名> | 创建新目录(需权限) |
rmdir <目录名> | 删除空目录(需权限) |
rename <旧名> <新名> | 重命名文件(需权限) |
delete <文件名> | 删除文件(需权限) |
mdelete <文件1> <文件2> | 批量删除文件(需权限) |
3. 文件传输
| 命令 | 说明 |
|---|---|
get <远程文件> | 下载单个文件(如 get file.txt) |
mget <文件1> <文件2> | 批量下载文件(支持通配符 *) |
put <本地文件> | 上传单个文件(需权限) |
mput <文件1> <文件2> | 批量上传文件(需权限) |
binary | 使用二进制模式传输(适用于图片、压缩包等) |
ascii | 使用文本模式传输(适用于 .txt、.html等) |
4. 本地文件操作
| 命令 | 说明 |
|---|---|
!ls/ !dir | 列出本地当前目录的文件 |
lcd <目录名> | 切换本地目录(如 lcd /home/user) |
!<命令> | 在本地执行 Shell 命令(如 !pwd) |
5. 高级功能
| 命令 | 说明 |
|---|---|
passive/ pasv | 切换为被动模式(解决防火墙问题) |
hash | 显示传输进度(#表示传输进度) |
status | 显示当前 FTP 连接状态 |
help/ ? | 查看所有可用命令 |
6. lftp额外命令
lftp是更强大的 FTP 客户端,支持更多功能:
| 命令 | 说明 |
|---|---|
mirror <远程目录> | 递归下载整个目录 |
mirror -R <本地目录> | 递归上传整个目录 |
set ftp:use-feat off | 禁用某些 FTP 扩展(解决兼容性问题) |
set net:timeout 30 | 设置超时时间(秒) |
示例用法
1. 下载文件
ftp 192.168.1.1 Name: anonymous Password: anonymous@example.com ftp> ls ftp> get file.txt ftp> quit
2. 上传文件
ftp 192.168.1.1 Name: user Password: ******** ftp> put local_file.txt ftp> quit
3. 批量下载(mget)
ftp> mget *.txt # 下载所有 .txt 文件 ftp> prompt off # 关闭交互提示(避免每次确认) ftp> mget *