当前位置: 首页 > news >正文

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:打印帮助信息。可以指定一个或多个命令名,以获取特定命令的帮助。
  • asciimode ascii 的简写形式。
  • binarymode 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 错误。

相关文章:

  • 穿越“协议迷雾”:Modbus转Profinet与60LB伺服的传奇相遇
  • Hadoop MapReduce 图文代码讲解
  • 功能安全的关键——MCU锁步核技术全解析(含真实应用方案)
  • 什么是多模态大模型?为什么需要多模态大模型?
  • JAVA:Spring Boot 集成 Lua 的技术博客
  • IDEA 2024 版本配置热部署
  • SSM 框架是指什么,其优缺点,怎样用到在你的程序里
  • 图形渲染+事件处理最终版
  • KRaft (Kafka 4.0) 集群配置指南(超简单,脱离 ZooKeeper 集群)还包含了简化测试指令的脚本!!!
  • 线性回归算法介绍和代码例程
  • uniapp 微信小程序使用图表
  • uniapp中score-view中的文字无法换行问题。
  • MySQL的索引和事务
  • 【开源版】likeshop上门家政系统PHP版全开源+uniapp前端
  • Linux开发工具【中】
  • 《构建社交应用用户激励引擎:React Native与Flutter实战解析》
  • WiFi出现感叹号上不了网怎么办 轻松恢复网络
  • C++模板【上篇】 —详解模板基础语法
  • 构建高可用性的LVS-DR群集:实现无缝的负载均衡与故障转移
  • 58.[前端开发-前端工程化]Day05-webpack-Git安装-配置-Git命令
  • 中国以优化营商环境为支点,为全球企业提供可预期市场环境
  • 无人机穿越大理千年古塔落券洞内,涉事“飞手”被行拘10日
  • 75岁亚当·费舍尔坐镇,再现80分钟马勒《第九交响曲》
  • 国家主席习近平同普京总统举行大范围会谈
  • 江苏省泰州市委常委、宣传部部长刘霞接受审查调查
  • 宁合两大都市圈交汇之城含山:要想身体好,常往含山跑