当前位置: 首页 > 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 错误。

http://www.xdnf.cn/news/346825.html

相关文章:

  • 超大规模SoC后仿真流程与优化
  • python 接收c++的.so传的jsoncpp字符串
  • springBoot2集成mybatis (手敲学习版)java入门友好
  • 网络原理初识
  • 海外版“咸鱼”——Vinted跨境店铺防封攻略
  • DeepSeek 赋能法律行业:从文书撰写到风险预警的智能实践
  • window 显示驱动开发-处理内存段(一)
  • mysql的访问IP被禁 locked because of many connection errors
  • vue-grid-layout实现拖拽修改工作台布局
  • lumpy:基因组结构变异SV的检测
  • C++代码随想录刷题知识分享-----数组交集—LeetCode 349
  • OpenStack Yoga版安装笔记(26)实例元数据笔记
  • docker mac m1 部署 doris
  • VR制作软件用途(VR制作软件概述)
  • 如何阅读、学习 Git 核心源代码 ?
  • Vue知识框架
  • 为什么用Maple教授微分方程
  • Oracle EBS AP发票被预付款核算创建会计科目时间超长
  • 1688代采系统:技术架构与应用实践
  • mac运行java文件提示 错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  • nginx 配置后端健康检查模块
  • AMO数据集:解决运动模仿偏差的超灵巧人形机器人全身控制混合数据集。
  • 【使用switch结构输出季节】2021-11-23
  • bootstrap入门
  • 15:00面试,15:06就出来了,问的问题有点变态。。。
  • 私服与外挂:刑事法律风险的深度剖析
  • 存储器:DDR和独立显卡的GDDR有什么区别?
  • (十二)深入了解AVFoundation-采集:人脸识别与元数据处理
  • gitee推送更新失败问题记录:remote: error: hook declined to update refs/heads/master
  • 代码随想录第38天:动态规划11(编辑距离)