Linux 常用命令 - tftp【简单文件传输协议】
简介
tftp 源于 Trivial File Transfer Protocol(简单文件传输协议)的缩写。它被用于在本地主机和远程主机之间传输文件,尤其是那些非常精简的、通常是嵌入式的系统。 你可以在命令行中指定远程主机,如果指定了,tftp 会将该主机作为后续传输的默认主机。
使用方式
tftp [ options... ] [host [port]] [-c command]
常用选项
-4
:仅使用IPv4
连接,即使支持IPv6
。-6
:如果支持IPv6
则仅使用IPv6
连接。-c command
:执行command
,类似于在tftp
交互命令行中输入。必须是在命令行的最后指定。-l
:默认使用字面模式(literal mode
)。 用于避免对文件名中的:
进行特殊处理。-m mode
: 将默认传输模式设置为mode
。 通常与-c
选项一起使用。-R port:port
:强制源端口号在指定的端口号范围内。-v
:使用详细模式。-V
:将版本号和配置信息打印到标准输出,然后正常退出。
命令
一旦 tftp
运行起来,它会在命令行显示提示符 tftp>
,并识别以下命令:
?/help command-name
:打印帮助信息。可以指定一个或多个命令名,以获取特定命令的帮助。ascii
:mode ascii
的简写形式。binary
:mode binary
的简写形式。connect host [port]
:设置用于传输的主机(及端口)。get file/get remotefile localfile/get file1 file2 file3...
:从指定的源获取一个或多个文件。 远程文件名可以是带路径的文件名(如果已经指定了主机)或是host:filename
这种格式同时指定主机和文件名。如果是后者,则最后指定的主机名将成为后续传输的默认主机。literal
:切换字面模式 (literal mode
)。 启用后,此模式可防止对文件名中的:
进行特殊处理。mode transfer-mode
:指定传输模式;transfer-mode
可以是ascii
(或netascii
) 或binary
(或octet
)。 默认为ascii
。put file/put localfile remotefile/put file1 file2 file3... remote-directory
:将一个或多个文件上传到指定的远程文件或目录。目标可以是远程主机上的文件名(如果已经指定了主机)或是host:filename
形式的字符串,同时指定主机和文件名。如果是后者,则指定的主机名将成为将来传输的默认主机。如果使用remote-directory
形式,则假定远程主机是UNIX
系统或使用/
作为目录分隔符的另一个系统。quit
:退出tftp
。遇到文件结束符 (End-of-file
) 也会退出。rexmt retransmission-timeout
:设置每个数据包的重传超时时间,单位为秒。status
:显示当前状态。timeout total-transmission-timeout
:设置总传输超时时间,单位为秒。trace
:切换数据包跟踪(调试功能)。verbose
:切换详细模式。
参考示例
TFTP 连接远程主机
tftp> connect 192.168.2.110
tftp>
在 tftp
交互命令行中使用 connect host
来 “连接” 远程主机,不过,由于 tftp
协议本身并不维护传输间的连接,因此实际上这条命令不会真正建立连接,而是存储远程主机地址,便于下次文件传输使用。
从远程主机下载文件
tftp> get test.txt
tftp>
由于在上例中已经 “连接” 了远程主机,因此这里无需再给出主机地址,可以直接使用 get
获取远程主机上的文件。
向远程主机上传文件
tftp> put hello.txt
tftp>
同理,此处无需再给出远程主机名,只需使用 put
命令将本地的文件上传到远端即可。
切换到详细模式并上传多个文件到指定远程目录
tftp> verbose
Verbose mode on.
tftp> put a.txt b.txt c.txt code
putting a.txt to 192.168.2.110:code/a.txt [netascii]
putting b.txt to 192.168.2.110:code/b.txt [netascii]
putting c.txt to 192.168.2.110:code/c.txt [netascii]
使用 verbose
指令打开详细模式后可以看到 tftp
的具体执行信息。同时使用 put file1 file2 file3... dir
可以将多个文件上传到远程主机的 dir
目录中。
注意事项
-
与
FTP
协议不同,TFTP
协议不维护传输之间的连接;因此,connect
命令实际上并不建立连接,而只是记住要用于传输的主机。 -
TFTP
协议不提供任何身份验证或加密,因此不适合在不安全的网络上传输敏感数据。 -
确保根据文件类型选择正确的传输模式(文本或二进制)。错误的模式可能会导致文件损坏。
-
在使用
TFTP
上传或下载文件时要注意远程或本地文件夹及文件的权限,避免出现Permission denied
错误。