LINUX下搭建TFTP开发环境

 时间:2024-10-13 18:12:16

嵌入式Linux的ftp最常用来完成开发板和开发环境Linux系统之间的的文件传输功能,避免了频繁的U盘拷贝的过程。Linux下的tftp开筛觐子裆发环境建立包括两个方面:一是Linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。本文将介绍基于Ubuntu10.04发行版的Linux服务器端tftp-server的配置和在主机和目标机之间的tftp文件传输方法。我个人每次都是使用的是root账户登陆,避免每条命令之前加sudo,普通用户登陆登陆的话,需在命令加上sudo。

工具/原料

Linux操作系统Ubuntu10.04

黑色加粗字体为linux命令

第一部分:TFTP开发环境搭建流程

1、第一步: 安装tftp所需的软件(黑色加粗字体为linux命令,下同) 搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,其中: tftp-hpa : 是客户端软件; root# apt-get install tftp-hpa tftpd-hpa : 是服务程序; root# apt-get install tftpd-hpa xinetd : 是新一代进程守护程序。 root# apt-get install xinetd

2、第二步: 配置xinetd.conf配置文件 进入/etc目录,首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看其内容: root# cat xinetd.conf 看是否与下面的一致,内容如下所示: 若不一致则运行如下命令,修改为相同即可。 root# gedit xinetd.conf

LINUX下搭建TFTP开发环境

3、第三步: 配置tftpd-hpa配置文件 修改tftpd-hpa配置文件的内容: root# gedit /etc/default/tftpd-hpa 将内容修改成: # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s" 修改成功后,如下图所示,保存退出。 注解:TFTP_DIRECTORY="/tftpboot"表示tftp服务器的工作目录,用户可根据自己的实际情况进行更改。 指定了tftp服务的工作目录后,我们需要在相应的路径下建立该tftp工作目录,命令如下: root# mkdir –p /tftpboot 修改工作目录的权限为777,777是最松的权限,这样不仅可以允许别的主机或者目标机下载,同时允许其上传文件。命令为: root# chmod 777 /tftpboot

LINUX下搭建TFTP开发环境

4、第四步:配置tftp配置文件 进入/etc下面的xinetd.d文件夹,查看是否有一个tftp文件,如果没有的话,就新建一个并输入以下内容,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下: root#gedit tftp service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags =IPv4 } 修改之后,如图所示: 其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。然后保存文件,并退出编辑。

LINUX下搭建TFTP开发环境

5、第五步:重新启动TFTP 重启tftpd-hpa,提示如下图: root# service tftpd-hpa restart

LINUX下搭建TFTP开发环境

6、第六步:重新加载xinetd 重新加载xinetd进程,提示如下图: root# /etc/init.d/xinetd reload

LINUX下搭建TFTP开发环境

7、第七步:重新启动xinetd 重启xinetd服务,提示如下图: root# /etc/init.d/xinetd restart每次修改完配置文件后,都需要重新启动一下服务。至此,嵌入式Linux系统下搭建TFTP开发环境大功告成,下面介绍如何测试TFTP

LINUX下搭建TFTP开发环境

第二部分:测试TFTP服务

1、第一步:新建测试文件 首先在tftp的工作目录"/tftpboot"中新建一个文件test,在其中输入任意内容,例如内容如下图:

LINUX下搭建TFTP开发环境

2、第二步:进入测试目录 然后进入任意一个不同于/tftpboot的目录(例如/opt目录下),然后在终端中输入如下命令,进入tftp命令符下,如下图: root# tftplocalhost

LINUX下搭建TFTP开发环境

3、第三步:获取测试文件 输入如下命令,再按回车,获取存放在tftp工作目录/tftpboot中的"test"文件。如果没有任何提示,就说明传输成功了,如下图所示: root# get test

LINUX下搭建TFTP开发环境

4、第四步:退出TFTP测试 输入 q 退出tftp命令行,如下图所示:

LINUX下搭建TFTP开发环境

5、 修改test文件后,可以在tftp命令中输入 如下命令,把修改过的test文件上传到服务器文件夹中。 root# put test 其效果图,在此不再给出,读者可以自行测试。

第三部分:脚本程序自动搭建TFTP开发环境

1、鉴于TFTP服务的安装过程十分繁复,且容易出错,下面给出脚本代码,自动安装该服务。新建一个空文件,将下面代码复制,保存之后,修改文件权限,使之具有执行权限后,就可以自动搭建嵌入式TFTP开发环境了。以下为脚本代码:#!/bin/bash##################################################### 搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,##其中: ## tftp-hpa : 是客户端软件; ## tftpd-hpa : 是服务程序; ## xinetd : 是新一代进程守护程序。 #####################################################function creat_xinetd_conf{echo "# 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 uselog_on_success# and log_on_failure. The default is the following :# log_type = SYSLOG daemon info}includedir /etc/xinetd.d" > /tmp/xinetd.conf}function config_xinetd_conf{creat_xinetd_conffilename=/etc/xinetd.confexample=/tmp/xinetd.conftest -f $filename #返回值为0,代表文件存在 返回值为1,代表文件不存在if [ "$?" -eq 0 ];thenecho "xinetd.conf文件存在"diff -E $example $filenamecase $? in1) #文件内容有误rm -rf $filenamemv -f $example $filenameecho "xinetd.conf文件内容修改成功";;0) #文件内容正确rm -rf $exampleecho "xinetd.conf文件内容正确";;*)rm -rf $example echo "未知错误,程序终止";;esacelseecho "xinetd.conf文件不存在,正在创建该文件"mv -f $example $filenameecho "xinetd.conf文件创建成功"fi}#=============================================#function modify_tftpd_hpa{echo "# /etc/default/tftpd-hpaTFTP_USERNAME=\"tftp\"TFTP_DIRECTORY=\"/tftpboot\"TFTP_ADDRESS=\"0.0.0.0:69\"TFTP_OPTIONS=\"-l -c -s\"" > /tmp/tftpd-hparm -rf /etc/default/tftpd-hpamv -f /tmp/tftpd-hpa /etc/default/tftpd-hpaecho "tftpd_hpa 文件内容修改成功"mkdir -p /tftpbootchmod 777 /tftpboot}#=============================================#function modify_tftp{echo "service tftp{disable = nosocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpboot -cper_source = 11cps = 100 2flags =IPv4}" > /tmp/tftprm -rf /etc/xinetd.d/tftpmv -f /tmp/tftp /etc/xinetd.d/tftpecho "tftp 文件内容修改成功"}#=============================================#function test_tftp{echo "This is a test file" > /tftpboot/TESTcd /tmpecho "请在终端命令行中依次键入\"get TEST\"以及\"quit\""tftp localhostcat /tmp/TEST # 返回值为0,表示成功查看指定的文件 返回值为1,表示不能正常查看指定的文件if [ $? -eq 0 ]; thenecho "tftp 测试成功,可以正常使用"rm -rf /tftpboot/TEST /tmp/TESTelseecho "tftp 测试失败,请检查tftp配置"rm -rf /tftpboot/TEST /tmp/TESTfi}#=============================================#function step_1 #安装TFTP相关服务{apt-get update #安装软件之前,先升级一下数据库,获取软件包的最新相关信息apt-get install tftp-hpa #安装TFTP服务的客户端软甲apt-get install tftpd-hpa #安装TFTP服务的服务器端软件apt-get install xinetd #安装新一代进程守护程序}function step_2 #配置TFTP相关服务{config_xinetd_conf #配置/etc/xinetd.conf文件modify_tftpd_hpa #修改/etc/default/tftp-hpa文件modify_tftp #安装TFTP服务的服务器端软件}function step_3 #重启TFTP相关服务{service tftpd-hpa restart #重新启动tftpd-hpa/etc/init.d/xinetd reload #重新加载xinetd服务程序/etc/init.d/xinetd restart #重新启动xinetd服务程序}function step_4 #测试TFTP相关服务{test_tftp #测试tftp服务}echo "选项1 安装TFTP相关服务"echo "选项2 配置TFTP相关服务"echo "选项3 重启TFTP相关服务"echo "选项4 测试TFTP相关服务"echo "键入quit,退出TFTP安装"echo "请键入数值,执行您所需要的操作: "read -r Stepwhile [ $Step != quit ]dowhile [ $Step -lt 1 -o $Step -gt 4 ]doecho "对不起,您输入的选项有误,请输入数字1—4之间的数值!"read -r Step donecase "$Step" in1)read -p "安装过程中出现的选项,请直接确定,不必更改,按任意键继续安装"step_1;;2)step_2;;3)step_3;;4)step_4;;*)echo "出现致命错误,请检查脚本程序!";;esacecho "操作已完成!"echo "============================="echo " "echo " "echo " "echo " "echo "选项1 安装TFTP相关服务"echo "选项2 配置TFTP相关服务"echo "选项3 重启TFTP相关服务"echo "选项4 测试TFTP相关服务"echo "键入quit,退出TFTP安装"echo "请键入数值,执行您所需要的操作: "read -r Stepecho " "echo " "doneexit

  • Photo Station如何更改图片存放路径
  • 虚拟化的Linux服务器没有网卡,没有ip怎么办?
  • 如何使用fdisk删除分区
  • SecureCRT怎么解决中文乱码问题?
  • linux怎么设置eth0的IP地址
  • 热门搜索
    小学生读书手抄报 关于三八妇女节的手抄报 国庆节手抄报简单好看 英语手抄报简单 高中生手抄报 有关安全的手抄报 五一劳动节手抄报内容 少代会手抄报 端午节手抄报花边 新学期手抄报