linuxtftp命令详解
linuxtftp命令详解详细介绍
在 Linux 系统中,tftp(Trivial File Transfer Protocol)是一个轻量级的文件传输工具,基于 UDP 协议,常用于简单、无交互的文件传输场景(如嵌入式设备固件更新、无盘工作站启动等)。以下是对 tftp 命令的详细解析:
一、安装
tftp 客户端与服务器
1. 安装客户端
- Debian/Ubuntu:bash
tftp-hpa - CentOS/RHEL/Fedora:bash
dnf tftp
2. 安装服务器(可选,若需搭建 TFTP 服务器)
- Debian/Ubuntu:bash
tftpd-hpa - CentOS/RHEL/Fedora:bash
dnf tftp-server
二、基本语法与模式
1. 命令格式
bash
tftp 选项 主机名/IP地址
2. 两种操作模式
- 交互模式:不指定文件名,直接连接服务器后通过子命令操作(如
get、put)。bashtftp .1.100 - 非交互模式:直接在命令中指定操作(适用于脚本自动化)。bash
tftp 远程文件名 本地文件名 服务器IP
三、常用选项(命令行参数)
| 选项 | 描述 |
|---|---|
-v |
开启详细模式(Verbose),显示传输过程中的详细信息。 |
-l file |
指定本地文件路径(Local file),用于 get(下载)或 put(上传)。 |
-r file |
指定远程文件路径(Remote file),用于 get 或 put。 |
-g |
执行下载操作(Get),需配合 -l 和 -r 使用。 |
-p |
执行上传操作(Put),需配合 -l 和 -r 使用。 |
-x mode |
指定传输模式(Mode),如 octet(二进制)、ascii(文本),默认octet。 |
-T timeout |
设置传输超时时间(秒),默认 5 秒。 |
四、交互模式子命令
连接服务器后(输入 tftp> 提示符),可用以下子命令:
| 子命令 | 描述 |
|---|---|
connect host [port] |
连接到指定主机(可选端口,TFTP 默认端口 69)。 |
get remote local |
从服务器下载文件(remote:远程文件名,local:本地保存名)。 |
put local remote |
上传本地文件到服务器(local:本地文件名,remote:远程保存名)。 |
ls [path] |
列出服务器指定路径下的文件(需服务器支持,部分 TFTP 服务器不支持)。 |
mode [mode] |
设置传输模式(octet/binary 或 ascii)。 |
quit/exit |
退出交互模式。 |
help/? |
显示帮助信息。 |
五、典型使用示例
1. 下载文件(非交互模式)
bash
tftp /path/on/server/file.txt ./local_file.txt .1.100
tftp file.txt local.txt ascii .1.100
2. 上传文件(非交互模式)
bash
tftp /path/on/server/new_file.txt ./local_new.txt .1.100
3. 交互模式操作
bash
tftp connect .1.100tftp mode octet
tftp get firmware.bin
tftp put log.txt server.log
tftp quit
4. 查看服务器文件列表(需服务器支持)
bash
tftp /tftpboot
六、注意事项
- 传输模式:
- 二进制模式(
octet/binary):用于传输图片、固件、压缩包等二进制文件,避免格式错误。 - ASCII 模式(
ascii):仅用于纯文本文件,可能因换行符(CR/LF)差异导致问题。
- 二进制模式(
- 服务器配置:
- TFTP 服务器通常配置文件路径(如
/tftpboot),需确保文件存在且服务器有读取 / 写入权限(根据服务器配置,可能需 root 权限)。 - 部分服务器(如
tftpd-hpa)需在配置文件(如/etc/default/tftpd-hpa)中指定根目录和权限。
- TFTP 服务器通常配置文件路径(如
- 安全性:
- TFTP 协议无认证、无加密,数据明文传输,仅适用于可信网络环境。
- 服务器通常限制为只读(仅下载),避免开放上传权限。
- 防火墙设置:
- TFTP 使用 UDP 端口 69,需确保防火墙允许该端口通信:bash
firewall-cmd --add-port/udp
firewall-cmd
91234 firewall-cmd =/udp firewall-cmd
- TFTP 使用 UDP 端口 69,需确保防火墙允许该端口通信:bash
七、常见问题
- 权限不足:上传时若提示权限错误,可能是服务器目录未开放写入权限,需检查服务器配置。
- 文件不存在:确认远程文件名和路径正确,区分大小写。
- 连接超时:检查服务器 IP、端口是否可达,服务器是否已启动。
通过以上说明,可快速掌握 tftp 命令的基本用法和场景,适用于简单文件传输需求。如需复杂文件管理,建议使用更安全的 FTP 或 SFTP 协议。