Ubuntu中安装tftp/tftp-hpa服务的方法

2023-10-27

检查tftp是否已经安装:netstat -a | grep tftp 若出现:
udp                               0                              0 *:tftp 则说明已经安装,否则没有。
1、安装相关软件包
apt-get install tftpd (服务端)
apt-get install tftp (客户端)
apt-get install xinetd

2、建立配置文件
cd /etc/xinetd.d/
vi tftp
输入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

存盘退出

3、建立tftp服务文件目录
mkdir /tftpboot

4、从新启动服务
/etc/init.d/xinetd restart

安装完成!测试方法:
在/tftpboot 目录下随便放个文件abc
然后 运行tftp 192.168.123.202 进入tftp命令行
输入get abc 看看是不是能把文件下下来,如果可以就可以了,也可以put 文件上去。

检查tptp是否打开:chkconfig --list 如果没有打开,则用这个命令也可以打开:chkconfig tftp on

或者ps -A | grep tftp,看是否有tftpd的服务~

无意间看到这篇文章,觉得写的也挺好的,就一起贴在这里了~

原文地址:http://blog.csdn.net/wzyhb123456789/archive/2010/08/24/5835262.aspx
原文:
  现在在研究SmartArm3250开发板,其中搭建Liunx平台时需要使用tftp传输Linux内核和文件系统到开发板,所以需要在电脑的Linux下先搭建一个tftp服务,通过看书和上网找资料,发现一些问题和需要注意的地方,而且很多东西是不适合ubuntu的,所以总结一下,实现说明,下面的操作在ubuntu10.04上是运行无误的,在其他操作系统上就不敢保证了。

      一、安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,有些网站上说是安装tftp和tftpd,我实验了一下,至少在我这是没有实现后面的tftp传输的,而tftp-hpa与tftp是冲突的,tftpd-hpa与tftpd是冲突的,而带有-hpa的这两个是最新的,所以我就安装了这两个。在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。然后还需要安装xinetd,按照网上的说法,这是一个守护进程,用于处理对各种服务的请求,在终端下输入 sudo apt-get install xinetd,安装好xinetd。//如果之前安装了tftp和tftpd,这时候系统会自动卸载它们~

      二、配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
 {
 # Please note that you need a log_type line to be able to use log_on_success 
# and log_on_failure. The default is the following : 
# log_type = SYSLOG daemon info 
}
includedir /etc/xinetd.d 

  然后进入xinetd.d文件夹(cd xinetd.d),查看是否有一个tftp文件,如果没有就新建一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:

service tftp 
{
socket_type = dgram
wait = yes 
disable = no 
user = root 
protocol = udp 
server = /usr/sbin/in.tftpd 
server_args = -s /home/tftpboot
log_on_success += PID HOST DURATION 
log_on_failure += HOST 

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的,上文中的/home/tftpboot是我自己设置的,你也可以设置成任意的地方。

      三、修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,以我的配置文件为例,在/home下创建一个文件夹(sudo mkdir /home/tftpboot),然后把它可以设置成访问权限最宽松的(sudo chmod 777 /home/tftpboot),也可以设置成合适的权限。

      四、重新启动服务。这也是我经常疏忽的一步,当配置好tftp的配置文件后,需要重新启动一下xinetd,在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务。

      通过以上四步就可以建立好tftp服务器了,可以在本地先进行一下测试。还是以我的配置文件为例,首先在/home/tftpboot中新建一个文件file,然后在其中随便输入内容;然后进入一个不是/home/tftpboot的目录下(原因是避免混淆,因为在获取文件是,默认是将想要获取的文件存放在当前目录下的);再在终端中输入 sudo tftp localhost,进入tftp命令符下(可以在其中输入help查看命令和命令的作用),输入 get file,如果没有任何提示,就说明传输成功了,然后输入 q 退出tftp命令符,在当前目录下就可以看到一个file文件,内容是与开始新建的那个file的内容是一致的。同样也可以在tftp命令符中输入 put xx,把xx文件上传到服务器文件夹中。如果一切ok,那就么一个可用的tftp服务器就顺利搭建成功了。

      对于上面的测试是针对本地测试的,如果想要对其他电脑或者开发板进行tftp传输,则在终端输入 sudo tftp xxx(即目标电脑或目标开发板的ip地址),而且还要关闭ubuntu自带的防火墙(书上说的),我是直接把防火墙给卸载了(sudo apt-get remove iptables),因为我觉得对于Linux来说,防火墙可能没什么需要把,至少目前为止我还没有受到过攻击。。。当然,想要与其他局域网内的电脑或开发板互联进行传输,还要将这些机器的ip改到同一个段内。

      好了,通过以上的步骤,就可以通过tftp协议,在电脑和开发板之间进行文件传输了,目前的目的就是下载Linux内核和文件系统到开发板。如果有朋友发现了我的不足,都可以给我提出来,我们也可以进行讨论。不过还要强调一点,我的这些配置都是针对于ubuntu的,对于其他的系统可能会有所出入的。

这个时候,如果出现Error code 1: File not found,那么就参考下面这篇文章~

原文地址:http://hi.baidu.com/571209683/blog/item/77b8a91ddaba71c4a6866911.html

原文://只摘了对上面错误有帮助的部分哈~

sudo gedit /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" //这里是你的tftpd-hpa的服务目录 //可以改成你想要的那个tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"        //这里是选项

注意:如果是在10.04以下的版本用下面的配置

tftp-hpa 的配置文件为 /etc/default/tftpd-hpa

RUN_DAEMON="yes"
OPTIONS="-l -c -s /tftpboot"
//记得要重启~
如果还是上面错误,就先把文件复制到/var/lib/tftpboot,再试下,如果成功,就要重启系统上面的配置才生效,以后就可以用你改得那个tftpboot了~如果还是不成功,我也米办法了~
到底上面2篇文章谁更准确,我也弄不清,等高手来解释吧~
再加上我整理的一些常见问题,关于tftp的就全了差不多~

现象一:

tftp>get file

Transfertimed out.

原因:

tftpd服务没有启动

现象二:

tftp>get file

Errorcode 2: Only absolute filenames allowed

原因:

在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa

现象三:

tftp>put file

Errorcode 1: File not found

原因:

指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传~

参考了很多文章,就不一一列出了~

希望对别人有帮助~

====

http://hi.baidu.com/lru52777/item/c93ee017d092fcfbdceeca9d


--------

sudo apt-get install tftpd-hpa tftp-hpa
打开/etc/default/tftpd-hpa
修改设置如下:
#Defaults for tftpd-hpa
TFTP_USERNAME="root"
TFTP_DIRECTORY="/home/zdreamx/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -s -c --secutre"

其中/home/zdreamx/tftpboot是自己设定的目录,可以根据情况修改。

选项参考
OPTIONS
-l Run the server in standalone (listen) mode, rather than run from
inetd. In listen mode, the -t option is ignored, and the -a
option can be used to specify a specific local address or port
to listen to.

-a [address][:port]
Specify a specific address and port to listen to when called
with the -l option. The default is to listen to the tftp port
specified in /etc/services on all local addresses.
listen 的 ip address 和 Port
-c Allow new files to be created. By default, tftpd will only
allow upload of files that already exist. Files are created
with default permissions allowing anyone to read or write them,
unless the -p or -U options are specified.

-s (决定tftp根目录)Change root directory on startup. This means the remote host
does not need to pass along the directory as part of the trans-
fer, and may add security. When -s is specified, exactly one
directory should be specified on the command line. The use of
this option is recommended for security as well as compatibility
with some boot ROMs which cannot be easily made to include a
directory name in its request.

启动:sudo service tftpd-hpa start



安装tftpd-hpa和tftpd-hpa

步骤:
1. sudo apt-get install tftp-hpa tftpd-hpa

2. cd /
       sudo mkdir /tftpboot
        sudo chmod 777 /tftpboot

3. sudo in.tftpd -l /tftpboot
     这样tftp服务器就启动了,下面可以做一个测试

4. cd /tftpboot
     touch test
     建立一个文件

5. cd /home/usrname
     登录另一个目录

6. tftp 192.168.0.59
     换成自己的ip

    > get /tftpboot/test

如果能够得到文件,那么就成功了。



安装过程中出现的问题及原因
现象一:
tftp> get test.log
Transfer timed out.
原因:
tftpd服务没有启动


现象二:
tftp> get test.log
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
设置的时候只要将server_args=改为你自己设定的服务器文件夹就行了

现象三:
tftp> put ex070416.log
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件


====

http://www.360doc.com/content/10/0428/11/496343_25245558.shtml



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu中安装tftp/tftp-hpa服务的方法 的相关文章

随机推荐

  • 报错无限递归:Could not write JSON: Infinite recursion (StackOverflowError);

    感谢原文大佬 https blog csdn net east123321 article details 80435051 问题描述 在controller返回数据到统一json转换的时候 出现了json infinite recursi
  • 【MySQL错误解决】ERROR 1273 (HY000): Unknown collation: ‘utf8‘ 错误的解决办法

    一 前言 今天把本地数据库导出的sql文件上传到服务器上的数据库的时候 出现了以下的错误 改错误之处我的文件再导入到数据库的时候 出现字符集不一样的错误 二 问题产生的原因 这是数据库编码的问题 查了网上的一些资料 出现这个问题的原因在于
  • Python基础专栏⑧-python基础篇-数据类型之字符串

    字符串是计算机处理中最常见的数据类型 在编程语言中 都存在字符串类型 python也不例外 一 字符串定义 字符串是由字符构成的一个序列 作为一个整体使用 字符串中字符的个数可以有0个 也可以有多个 0个的话 被称为空字符串 在python
  • CTF从零到一 信息收集 粗心的小李

    看到题目 很明显的说了git泄露 使用scrabble scrabble http 127 0 0 1 ls查看 cat查看index html 发现flag
  • openwrt.21.05烧录固件板子提示文件格式错误

    前面是因为编译的时候提示固件太大了 把flash从 4Mlzma 修改成 16Mlzma 了 那么编译过后 烧录进板子的时候 又报错了 怎么修改看这个 在最后Ubuntu下编译openwrt的过程出错及解决 小蚂蚁t的博客 CSDN博客 o
  • Linux学习之基本指令一

    在学习Linux下的基本指令之前首先大家要知道Linux下一切皆目录 我们的操作基本上也都是对目录的操作 这里我们可以联想我们是如何在windows上是如何操作的 只是形式上不同 类比学习更容易理解 目录 01 ls指令 02 pwd命令
  • Python解决:从键盘输入n个数,统计非负数字的个数和非负数字的和。

    题目 从键盘输入n个数 统计非负数字的个数和非负数字的和 代码如下 str input 请输入几个数字 用逗号隔开 n str1 str split 返回字符列表list sum 0 求和器 negetive number 0 个数求和 f
  • idea--Preferences

    Font Font Monaco Size 16 Line spacing 1 3 Appearance Theme Darcula 勾选Use dark window headers 第三方主题 www color themes com
  • 加密新潮流:社交代币衰落 社区代币崛起?

    这不是 Forefront 首次回顾加密行业中代币化社区赛道的年度发展历程 但毫无疑问 2022 年的情况确实发生了很大变化 其中 Forefront 的第一份报告 2020 年社交代币年度回顾 探讨了加密社交的新兴前景 涵盖了通过代币化时
  • 小程序面试题

    文章目录 简单谈谈微信小程序 小程序的原生组件有哪些 小程序的安卓版和ios版是怎么开发出来 uni app弹窗被覆盖怎么解决 小程序生命周期 小程序路由跳转 小程序的兼容问题有哪些 小程序框架都掌握哪一些 uniapp都会哪一些 平时开发
  • vue电池小图标

    简单的电池小图标 根据电量展示不同的颜色
  • java 静态 编译_Java中的动态和静态编译

    public class Frame public static void main String args throws Exception System out println 请输入您要输入的类的名字 输入一个类的名字 java ut
  • 常用工具整理

    参考网站 自我的进化 闪星 努力学习 开心生活 随机邮箱 生成一个随机邮箱 当你要使用临时邮箱接收验证码的时候可以使用 IP检查 检查当前使用的ip 多空间浏览器 iOS版下载地址 Android版下载地址 二维码生成器 句子 单词 翻译
  • 最后一波机会!必看再也不能错过的AI搞钱神器!

    给大家推荐7款可以当副业做的AI搞钱神器 第一款 产品介绍 AiTxt智能助手 可以基于Ai生成你想要的一切文案 AiTxt智能助手是基于ChatGPT3 5打 造一个更适合普通人使用的Ai工具箱 搞钱小妙招 A文案工具 输入简单指令即可快
  • android9 update_engine 升级

    最近在搞android 9的升级 这里顺便做一下记录 其实关于update engine升级这块已经有很多文章了写的都 很好 我这边只是在前人的基础上 按照自己理解记录一下 大体分为一下几部分 1 A B升级和过去的recover升级的区别
  • 「考生说」计算机专业内卷严重,我真的会编程吗?

    现在每次听到大家都在说 原来你会编程呀 都会有一点小小的庆幸 但是其实对于程序员而言而言 能编程 会编程 和 学编程 是不同的概念 从根本上说 编程就是和计算机沟通 学习编程可以让自己变得理性 严谨起来 从电脑的角度去思考问题 去解决问题
  • 前端常用的组件库

    Vue2 组件库们 Element https element eleme cn zh CN component select 主用于后台项目 Vant https youzan github io vant zh CN 主用于移动端项目
  • java 遍历目录下所有文件_java实现遍历某个目录(包括子目录)下的所有文件

    在java中遍历一个文件夹里边的所有文件 可以有两种方式 一 递归遍历 通常也是开发者第一时间能想到的方法 递归遍历的优点是 实现起来相对简单 代码量相对较少 执行效率较高 缺点是 比较吃内存 对硬件要求较高 在线视频教程分享 java在线
  • 【运维面试】Docker技术面试题总结

    运维面试 Docker技术面试题总结 一 Docker的基础概念 1 1 什么是Docker 它可以为我们提供哪些便利 1 2 Docker的优点是什么 1 3 Docker的镜像是什么 1 4 Docker的数据卷是什么 1 5 Dock
  • Ubuntu中安装tftp/tftp-hpa服务的方法

    检查tftp是否已经安装 netstat a grep tftp 若出现 udp 0 0 tftp 则说明已经安装 否则没有 1 安装相关软件包 apt get install tftpd 服务端 apt get install tftp