Linux TFTP服务搭建及使用

news2024/11/27 11:32:29

1、TFTP 服务器介绍

        TFTP ( Trivial File Transfer Protocol )即简单文件传输协议是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为 69

2、TFTP 文件传输的特点

tftp 使用客户服务器方式和使用 UDP 数据报,因此tftp 需要有自己的差错改正措施。
tftp 支持小文件传输。
tftp 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。 

3、TFTP 服务器的适用场景 

1)场景需求:
(1)频繁修改内容 

 

4、配置介绍
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" // 我们设定的 TFTP 根目录;
TFTP_ADDRESS="0.0.0.0:69" //ip 和端口号
TFTP_OPTIONS="-c -l -s" //TFTP 启动参数
-l :以 standalone/listen 模式启动 TFTP 服务,而不是从 xinetd 启动。
-c :可创建新文件。默认情况下, TFTP 只允许覆盖原有文件,不能创建新文件。
-s :改变 TFTP 启动的根目录。不用手动指定目录,默认使用配置文件中的目录。 

5、TFTP环境搭建
1) 在线安装TFTP服务器和客户端(需要保证Ubuntu网络通畅)。

linux@ubuntu:~$ sudo apt-get install tftpd-hpa tftp-hpa

2)修改配置文件

linux@ubuntu:~$sudo vi /etc/default/tftpd-hpa
#配置文件路径
#/etc/default/tftpd-hpa
#用户名
TFTP_USERNAME="tftp"
#你的tftp服务器所在的路径
TFTP_DIRECTORY="/tftpboot"
#tftp服务器的网关和端口号
TFTP_ADDRESS="0.0.0.0:69"
#tftp 文件服务器的可供选择的权限, get file\ put file \ list file
TFTP_OPTIONS="-l -c -s"

3) 创建tftp服务器的目录

//和配置文件的名字和路径必须保持一致
linux@ubuntu:~$sudo mkdir /tftpboot
//修改tftp服务器文件夹的权限
linux@ubuntu:~$chmod a + w tftpboot

4)运行下面的命令,重启TFTP服务器。

linux@ubuntu:~$ sudo service tftpd-hpa restart

5)运行下面的命令,新建一个文件,并将其移动到TFTP服务器的默认上传下载目录,用于测试tftp服务器是否成功。

linux@ubuntu:~$ echo "tftp test" > test.txt
linux@ubuntu:~$ sudo mv test.txt /tftpboot/

6)运行下面的命令,从服务器上下载test.txt文件,并退出tftp程序。

linux@ubuntu:~$ tftp localhost
tftp> get test.txt
tftp> q

7)运行下面的命令,确认下载的文件内容正确。

linux@ubuntu:~$ cat test.txt
tftp test

8)如果TFTP的下载不成功,运行下面的命令卸载软件(连同配置信息一起),然后再重新安装,最后再重启TFTP服务器。

$ sudo apt-get remove --purge tftpd-hpa tftp-hpa
$ sudo apt-get install tftpd-hpa tftp-hpa
$ sudo service tftpd-hpa restart

 6、常见错误

1)错误现象: Transfer timed out
        原因: tftpd 服务没有启动
        解决方法:启动服务

 2)错误现象: Error code 2 : Only absolute filenames allowed
        原因:在 /etc/default/tftp-hpa 中配置出错
        解决方法:参考手册重新配置

3)错误现象: Error code 1 : File not found
        原因:指定的文件不存在;
        tftpd 启动参数中没有指定 -c 选项,允许上传文件 ~上传的时候一定要确保文件先存在于上传目录下 

4)错误现象: tftp : Permission denied
        原因:权限不足
        解决方法:检查文件的权限(要考虑是本用户、同组、其他用户)

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【博主推荐】HTML5实现简洁的实用的个人网站、个人主页七个页面源码

文章目录 1.设计来源1.1 个人主页界面1.2 关于我界面1.3 我的技能界面1.4 我的经验界面1.5 我的教育界面1.6 我的项目界面1.7 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:…

【MQTT(2)】开发一个客户端,ubuntu版本

基本流程如下,先生成Mosquitto的库,然后qt调用库进行开发界面。 文章目录 0 生成库1 有界面的QT版本2 无界面版本 0 生成库 下载源码:https://github.com/eclipse/mosquitto.git 编译ubuntu 版本很简单,安装官方说明直接make&am…

1分钟带你了解等保测评流程

常言道:“安全无小事,防患于未然。” 在信息化高速发展的今天,网络安全已成为国家安全的重要组成部分,等级保护(简称“等保”)测评作为网络安全防护的重要手段,对于确保信息系统安全、稳定运行…

总台数430!2023年度各省燃机台数及装机容量一览

重型燃气轮机发电作为清洁能源战略的核心,将持续被强化以推动“双碳”目标的达成。鉴于其高度复杂的设计与制造流程,它成为了国家高端制造水平的象征。近年来,在科技强国战略的推动下,我国重型燃气轮机行业正迈向自主研发、创新突…

Elasticsearch基础(五):使用Kibana Discover探索数据

文章目录 使用Kibana Discover探索数据 一、添加样例数据 二、数据筛选 三、保存搜索 使用Kibana Discover探索数据 一、添加样例数据 登录Kibana。在Kibana主页的通过添加集成开始使用区域,单击试用样例数据。 在更多添加数据的方式页面下方,单击…

AJAX复习总结

AJAX复习总结 AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。简单来说,AJAX就是让网页变得更快、更灵活的一种方法 举个例子&#xff1a…

昇思25天学习打卡营第4天 | 网络构建

在学习和实践MindSpore神经网络模型构建的过程中,我深刻理解了MindSpore中如何通过nn.Cell类来构建和管理复杂的神经网络模型。通过这次的实践,我对神经网络的基本构建和应用有了更加全面的认识,以下是我学习过程中所总结的几点心得&#xff…

一行Python代码实现数据清洗的18种方法

目录 1. 去除字符串两边空格 2. 转换数据类型 3. 大小写转换 4. 移除列表中的重复元素 5. 快速统计元素出现次数 6. 字符串分割成列表 7. 列表合并 8. 数据填充 9. 提取日期时间 10. 字符串替换 11. 快速排序 12. 提取数字 13. 空值处理(假设是列表&am…

powe bi界面认识及矩阵表基本操作 - 1

powe bi界面认识及矩阵表操作 1. 界面认识1.1 选择数据源1.2 选择相关表及点击加载1.3 表字段显示位置1.4 表属性按钮位置1.5 界面布局按钮认识 2. 矩阵表基本操作2.1 选择矩阵表2.2 创建矩阵表2.3 设置字体大小2.4 行填充:修改高度2.5 列宽:设置列的宽度…

内置华为视频终端API接口的中央控制系统

内置华为视频终端API接口的中控系统是一种高度集成化的智能控制系统,它通过将华为视频终端的控制功能集成到中控系统中,实现了对华为视频终端的远程控制和集中管理。以下是对该系统的详细介绍: 一、系统概述 该系统通过调用华为视频终端提供…

自建网站统计工具 Umami 替代 Google Analytics

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Umami 是一款开源的网站统计工具,与 Google Analytics 相比更加的轻量,且不会收集网站用户的个人信息。同时,Umami 的仪表盘界面简洁,UI 精美,方便我们查看网站的历史统计数据。 Umami 使用方式也与 Google Ana…

2024 微信小程序 学习笔记 第二天

1. WXML 模板语法 数据绑定 事件绑定 条件渲染 列表渲染 2. WXSS 模板样式 rpx 样式导入 全局和局部样式 3. 全局配置 window tabBar 配置tabBar案例 4. 网络数据请求 Get请求 Post 请求 加载时请求 5. 案例 -本地生活(首页) 导航栏 轮播图 九宫格效果…

MySQL命令大全:以后再也不用担心忘记SQL该怎么写啦~

一、基础操作与库命令 首先来介绍一些关于MySQL基础操作的命令,以及操作数据库相关的命令,MySQL中的所有命令默认是以;分好结尾的,因此在执行时一定要记得带上分号,否则MySQL会认为你这条命令还未结束,会继续等待你的…

mathtype7.4.4产品密钥mathtype7.4破解版mathtype 7.4.10密钥

“在数学中,符号是重要的。” 这是著名数学家陈省身的名言。对于很多科研人员来说,他们常常需要使用到各种复杂的公式和符号来描述他们的研究工作。然而,很多时候,这些公式和符号并不能很好地在文档或者网页上显示出来。 MathTyp…

【论文共读】【翻译】ShuffleNet v1:一种用于移动设备的极其高效的卷积神经网络

[原文地址] https://arxiv.org/pdf/1707.01083 [翻译] 0. 摘要 我们介绍了一种计算效率极高的CNN架构,称为ShuffleNet,该架构专为计算能力非常有限的移动设备(例如,10-150 MFLOPs)而设计。新架构利用了两个新操作&am…

Fastjson解析JSON时key对应的value存在多个英文双引号解决

情景 如上图所示,经常在解析json时会出现因双引号报错的问题。 fastjson解决方案 JSONObject jsonfile JSONObject.parseObject(json, Feature.OrderedField);JSONArray jsonArray jsonfile.getJSONObject("result").getJSONArray("items");…

c++最小生成树实现

文章目录 参考文章目的c实现 参考文章 点击访问 目的 实现参考文章中的图结构&#xff0c;并计算它的最小生成树 c实现 #include<iostream> #include<vector> #include<map>class Node { public:Node(const int val) :value(val) {}int value;std::map&…

Ubuntu 查询未更新的包 进行手动更新

lsb_release -a 查询ubuntu的版本号&#xff0c;我这边是20.04 apt list --upgradable 查询未更新的包 sudo apt --only-upgrade install php/focal 中间遇到输入选择&#xff0c;输入y即可

SpringBoot常用功能实现

1. 配置文件多环境配置 1.1 创建不同环境配置文件 文件名前缀和后缀为标准固定格式&#xff0c;不可以改变。 1.2 pom中加入文件配置 可以使用<activation>标签设置默认环境。 <profiles><profile><id>dev</id><activation><active…

yolov5进行识别安全帽

进行毕业设计 下载yolov5使用按照教程来进行就行注意事项&#xff08;有必要看看&#xff09;效果 总结 下载yolov5 地址是&#xff1a;https://github.com/ultralytics/yolov5 使用按照教程来进行就行 这里简单说一下&#xff1a; 下载需要的命令&#xff1a; pip install -…