侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux tftp命令教程:如何使用简单文件传输协议进行文件交换

Linux tftp命令介绍

tftp是Trivial File Transfer Protocol(简单文件传输协议)的客户端程序,它可以用来向远程主机传输文件,包括一些非常简单的,通常是嵌入式的系统。tftp所使用的指令和FTP类似,但是更加简化,不支持用户身份验证和目录切换等功能。tftp使用UDP协议进行数据传输,因此速度较快,但也不保证数据的可靠性和完整性。tftp通常用于无盘系统的启动或者固件的更新等场景。

适用的Linux版本

tftp命令在大多数Linux发行版中都是可用的,但是可能需要安装相应的软件包。例如,在CentOS 7中,可以使用以下命令安装tftp客户端:

[linux@bashcommandnotfound.cn ~]$ sudo yum install tftp

在CentOS 8中,可以使用以下命令安装tftp客户端:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install tftp

在Ubuntu中,可以使用以下命令安装tftp客户端:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install tftp

Linux tftp命令的基本语法

tftp命令的基本语法格式如下:

tftp [options...] [host [port]] [-c command]

其中,

  • options是一些可选的参数,用于指定一些选项,如IPv4或IPv6模式,文件传输模式,超时时间等。
  • host是远程主机的名称或IP地址,如果指定了该参数,则tftp会连接到该主机,并使用该主机作为后续传输的默认主机。
  • port是远程主机的端口号,默认为69。
  • -c command是要执行的tftp命令,如果指定了该参数,则tftp会在连接到远程主机后执行该命令,并退出。如果没有指定该参数,则tftp会进入交互模式,并等待用户输入命令。

Linux tftp命令的常用选项说明

tftp命令支持以下常用选项:

选项说明
-4只使用IPv4模式,即使编译时支持IPv6
-6只使用IPv6模式,如果编译时支持IPv6
-c command执行指定的tftp命令,并退出
-l使用字面模式,避免对文件名中的冒号进行特殊处理
-m mode设置默认的文件传输模式为mode,可以是ascii或binary
-R port:port强制源端口号在指定的范围内
-v使用详细模式,显示更多信息
-V显示版本号和配置信息,并退出

Linux tftp命令的实例

连接到远程主机并获取文件

假设远程主机218.28.188.288提供了一个公开的tftp服务,并且有一个文件README可以下载。可以使用以下命令连接到远程主机,并获取该文件:

[linux@bashcommandnotfound.cn ~]$ tftp 218.28.188.288 #连接远程主机
tftp> get README #下载文件
getting from 218.28.188.288:README to README [netascii]
Received 168236 bytes in 1.5 seconds [112157 bit/s]
tftp> quit #退出tftp

向远程主机发送文件

假设远程主机218.28.188.288提供了一个公开的tftp服务,并且允许上传文件到/tmp目录。可以使用以下命令连接到远程主机,并发送一个文件hello.txt到该目录:

[linux@bashcommandnotfound.cn ~]$ tftp 218.28.188.288 #连接远程主机
tftp> put hello.txt /tmp/hello.txt #上传文件
putting hello.txt to 218.28.188.288:/tmp/hello.txt [netascii]
Sent 12 bytes in 0.0 seconds [12000 bit/s]
tftp> quit #退出tftp

使用-c选项执行单个命令

如果只需要执行一个tftp命令,并不需要进入交互模式,可以使用-c选项指定要执行的命令。例如,可以使用以下命令从远程主机218.28.188.288获取一个文件README,并退出:

[linux@bashcommandnotfound.cn ~]$ tftp -c get 218.28.188.288 README
getting from 218.28.188.288:README to README [netascii]
Received 168236 bytes in 1.5 seconds [112157 bit/s]

使用-m选项指定文件传输模式

默认情况下,tftp使用netascii模式进行文件传输,这意味着它会对文本文件中的换行符进行转换,以适应不同的操作系统。如果要传输二进制文件,如图片或压缩包,可以使用-m选项指定binary模式,以避免数据损坏。例如,可以使用以下命令从远程主机218.28.188.288获取一个压缩包test.zip,并使用binary模式:

[linux@bashcommandnotfound.cn ~]$ tftp -m binary -c get 218.28.188.288 test.zip
getting from 218.28.188.288:test.zip to test.zip [octet]
Received 102400 bytes in 0.8 seconds [128000 bit/s]

使用-v选项显示详细信息

如果要查看tftp命令的执行过程和结果,可以使用-v选项开启详细模式,这样可以显示一些额外的信息,如连接的主机和端口,传输的数据包数量和大小等。例如,可以使用以下命令从远程主机218.28.188.288获取一个文件README,并显示详细信息:

[linux@bashcommandnotfound.cn ~]$ tftp -v -c get 218.28.188.288 README
Connected to 218.28.188.288 (218.28.188.288), port 69
getting from 218.28.188.288:README to README [netascii]
Received 168236 bytes in 1 second

Linux tftp命令的注意事项

  • tftp命令不支持用户身份验证和目录切换等功能,因此需要确保远程主机提供了正确的权限和路径设置,以允许或拒绝文件的传输。
  • tftp命令使用UDP协议进行数据传输,因此不保证数据的可靠性和完整性。如果网络环境不稳定或存在丢包、重复、乱序等问题,可能会导致文件传输失败或出错。
  • tftp命令默认使用69端口进行通信,因此需要确保该端口没有被防火墙或其他程序占用或拦截。
0

评论区