TFTP 即简单文本传输协议,允许用户通过 UDP 协议在系统之间传输文件。

-- Curt Warfield(作者)

TFTP 即 简单文本传输协议(Trivial File Transfer Protocol),允许用户通过 UDP 协议在系统之间传输文件。默认情况下,协议使用的是 UDP 的 69 号端口。TFTP 协议广泛用于无盘设备的远程启动。因此,在你的本地网络建立一个 TFTP 服务器,这样你就可以对 安装好的 Fedora 和其他无盘设备做一些操作,这将非常有趣。

TFTP 仅仅能够从远端系统读取数据或者向远端系统写入数据,而没有列出远端服务器上文件的能力。它也没提供用户身份验证。由于安全隐患和缺乏高级功能,TFTP 通常仅用于局域网内部(LAN)。

安装 TFTP 服务器

首先你要做的事就是安装 TFTP 客户端和 TFTP 服务器:

dnf install tftp-server tftp -y

上述的这条命令会在 /usr/lib/systemd/system 目录下为 systemd 创建 tftp.service 和 tftp.socket 文件。

/usr/lib/systemd/system/tftp.service/usr/lib/systemd/system/tftp.socket

接下来,将这两个文件复制到 /etc/systemd/system 目录下,并重新命名。

cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.servicecp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket

修改文件

当你把这些文件复制和重命名后,你就可以去添加一些额外的参数,下面是 tftp-server.service 刚开始的样子:

[Unit]Description=Tftp ServerRequires=tftp.socketDocumentation=man:in.tftpd[Service]ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpbootStandardInput=socket[Install]Also=tftp.socket

在 [Unit] 部分添加如下内容:

Requires=tftp-server.socket

修改 [ExecStart] 行:

ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot

下面是这些选项的意思:

  • -c 选项允许创建新的文件
  • -p 选项用于指明在正常系统提供的权限检查之上没有其他额外的权限检查
  • -s 建议使用该选项以确保安全性以及与某些引导 ROM 的兼容性,这些引导 ROM 在其请求中不容易包含目录名。

默认的上传和下载位置位于 /var/lib/tftpboot。

下一步,修改 [Install] 部分的内容

[Install]WantedBy=multi-user.targetAlso=tftp-server.socket

不要忘记保存你的修改。

下面是 /etc/systemd/system/tftp-server.service 文件的完整内容:

[Unit]Description=Tftp ServerRequires=tftp-server.socketDocumentation=man:in.tftpd[Service]ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpbootStandardInput=socket[Install]WantedBy=multi-user.targetAlso=tftp-server.socket

启动 TFTP 服务器

重新启动 systemd 守护进程:

systemctl daemon-reload

启动服务器:

systemctl enable --now tftp-server

要更改 TFTP 服务器允许上传和下载的权限,请使用此命令。注意 TFTP 是一种固有的不安全协议,因此不建议你在与其他人共享的网络上这样做。

chmod 777 /var/lib/tftpboot

配置防火墙让 TFTP 能够使用:

firewall-cmd --add-service=tftp --permfirewall-cmd --reload

客户端配置

安装 TFTP 客户端

yum install tftp -y

运行 tftp 命令连接服务器。下面是一个启用详细信息选项的例子:

[client@thinclient:~ ]$ tftp 192.168.1.164tftp> verboseVerbose mode on.tftp> get server.logsgetting from 192.168.1.164:server.logs to server.logs [netascii]Received 7 bytes in 0.0 seconds [inf bits/sec]tftp> quit[client@thinclient:~ ]$

记住,因为 TFTP 没有列出服务器上文件的能力,因此,在你使用 get 命令之前需要知道文件的具体名称。


tftp c++ 上传_如何在 Fedora 上建立一个 TFTP 服务器相关推荐

  1. php$上传_如何实现PHP上传视频的功能?(图文+视频)

    本篇文章主要给大家讲解PHP上传视频的具体实现方法. 实现PHP视频上传的功能,对于新手来说,可能有一定的难度.但是通过本篇文章的介绍,相信大家都能熟练掌握相关知识. 那么在之前的文章[PHP文件上传 ...

  2. iphone播客怎么上传_如何在iPhone,iPad或Android上收听播客

    iphone播客怎么上传 Khamosh Pathak Khamosh Pathak Did someone recently recommend you listen to a podcast? I ...

  3. httpclient base64 文件上传_代码级别的上传下载神器

    前言 不知道大家在工作中有没有碰到过在代码级别中进行上传和下载呢,一般的场景为调用第三方的接口进行上传大文件和下载大文件. 我一个小伙伴最近在工作中就碰到了,他需要在代码中调用第三方http接口进行原 ...

  4. vue 文件及描述信息一起上传_用Vue实现一个大文件上传和断点续传

    前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-.-,蹭蹭就蹭蹭 :) 事实上我在面试的时候确实被问到了这个问题,而且是一道在线 coding ...

  5. 利用mysql实现上传和下载_文件上传表单 上传文件的细节 文件上传下载和数据库结合...

    1 文件上传表单 1)上传文件的本质是文本复制的过程 2)技术层面,在Java中一定会用到IO操作,主要以二进制方式读写 3)传统方式下,对于上传文件字段不同的浏览器有着不同的解析方式,例如: IE6 ...

  6. php上传图片限制类型,php,_使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置,php - phpStudy...

    使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 $upl ...

  7. ant react 上传_React实战之Ant Design—Upload上传_附件上传

    React实战之Ant Design-Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...

  8. linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案. 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件. 知道如 ...

  9. 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...

最新文章

  1. 【SVN】1. SVN 安装部署
  2. Lucene 源码分析之倒排索引(三)
  3. 每天一道LeetCode-----给定序列中2/3/4个元素的和为target的所有集合,或3个元素的和最接近target的集合
  4. 跟着《架构探险》学轻量级微服务架构 (一)
  5. 一个最简单的 Github workflow 例子
  6. python hadoop streaming_Hadoop Streaming 使用及参数设置
  7. 让vim显示空格,及tab字符
  8. presto是如何保证作业内存不会发生冲突和溢出
  9. 涨价妥妥的!一加7 Pro欧洲价格曝光:顶配或超6000
  10. 【效率技巧】利用TI计算器的程序映射功能 kbdprgm1()~9() 简化GTC程序调试操作
  11. Centos7下SRS流式服务器搭建、推流、拉流
  12. excel 输入自动更新的时间和日期
  13. 使用Windows 7的早期版本来返回时间并保存文件
  14. 聊聊电商系统中红包活动设计
  15. SDK manger中只有几个配置????
  16. 各类文件应该存在哪种数据库中
  17. XGBoost线性回归工控数据分析实践案例(原生篇)
  18. iOS-error: unable to read property list from file: /Users/XX/Info.plist
  19. 西游记中孙悟空的家业历史
  20. 输入某年某月某日,判断只一天是这一年的第几天?

热门文章

  1. 第一行代码学习笔记第五章——详解广播机制
  2. python能开发手机程序吗_python能否开发安卓应用app?当然可以,python助你轻松搞定...
  3. php代码升级更新机制,php如何实现更新功能
  4. Oracle 原理: 公有同义词 和 私有同义词
  5. oracle分页数据,在Oracle中得到分页数据
  6. Arduino--DS3231实时时钟模块
  7. thymeleaf取model值_史上最详 Thymeleaf 使用教程
  8. 虚拟机ubuntu19.04下设置idea快捷键
  9. [图论]强联通分量+缩点 Summer Holiday
  10. Kruskal+LCA【p2245】 星际导航