LINUX下搭建TFTP开发环境

2025-10-18 02:25:18

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开发环境

1、第一步:新建测试文件 

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

LINUX下搭建TFTP开发环境

2、第二步:进入测试目录 

      然后进入任意一个不同于/tftpboot的目录(例如/opt目录下),然后在终端中输入如下命令,进入tftp命令符下,如下图:

       root# tftp localhost

LINUX下搭建TFTP开发环境

3、第三步:获取测试文件

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

      root# get test

LINUX下搭建TFTP开发环境

4、第四步:退出TFTP测试

       输入 q 退出tftp命令行,如下图所示:

      

      

LINUX下搭建TFTP开发环境

5、      修改test文件后,可以在tftp命令中输入 如下命令,把修改过的test文件上传到服务器文件夹中。

       root# put test

      其效果图,在此不再给出,读者可以自行测试。

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 use 

log_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_conf

filename=/etc/xinetd.conf

example=/tmp/xinetd.conf

test -f $filename     #返回值为0,代表文件存在  返回值为1,代表文件不存在

if [ "$?" -eq 0 ];then

echo "xinetd.conf文件存在"

diff -E $example $filename

case $? in

1)     #文件内容有误

rm -rf $filename

mv -f $example $filename

echo "xinetd.conf文件内容修改成功";;

0)     #文件内容正确 

rm -rf $example

echo "xinetd.conf文件内容正确";; 

 *)

rm -rf $example     

   echo "未知错误,程序终止";;

esac

else

echo "xinetd.conf文件不存在,正在创建该文件"

mv -f $example $filename

echo "xinetd.conf文件创建成功"

fi

}

#=============================================#

function modify_tftpd_hpa

{

echo "# /etc/default/tftpd-hpa

TFTP_USERNAME=\"tftp\"

TFTP_DIRECTORY=\"/tftpboot\"

TFTP_ADDRESS=\"0.0.0.0:69\"

TFTP_OPTIONS=\"-l -c -s\"" > /tmp/tftpd-hpa

rm -rf /etc/default/tftpd-hpa

mv -f /tmp/tftpd-hpa /etc/default/tftpd-hpa

echo "tftpd_hpa 文件内容修改成功"

mkdir -p /tftpboot

chmod 777 /tftpboot

}

#=============================================#

function modify_tftp

{

echo "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

}" > /tmp/tftp

rm -rf /etc/xinetd.d/tftp

mv -f /tmp/tftp /etc/xinetd.d/tftp

echo "tftp 文件内容修改成功"

}

#=============================================#

function test_tftp

{

echo "This is a test file" > /tftpboot/TEST

cd /tmp

echo "请在终端命令行中依次键入\"get TEST\"以及\"quit\""

tftp localhost

cat /tmp/TEST   # 返回值为0,表示成功查看指定的文件  返回值为1,表示不能正常查看指定的文件

if [ $? -eq 0 ]; then

echo "tftp  测试成功,可以正常使用"

rm -rf /tftpboot/TEST /tmp/TEST

else 

echo "tftp  测试失败,请检查tftp配置"

rm -rf /tftpboot/TEST /tmp/TEST

fi

}

#=============================================#

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 Step 

while [ $Step != quit ]

do 

while [ $Step -lt 1 -o $Step -gt 4 ]

do

echo "对不起,您输入的选项有误,请输入数字1—4之间的数值!"

read -r Step  

done

case "$Step" in

1) 

read -p "安装过程中出现的选项,请直接确定,不必更改,按任意键继续安装"

step_1;;

2)

step_2;;

3)

step_3;;

4)

step_4;;

*) 

echo "出现致命错误,请检查脚本程序!";;

esac

echo "操作已完成!"

echo "============================="

echo " "

echo " "

echo " "

echo " "

echo "选项1 安装TFTP相关服务"

echo "选项2 配置TFTP相关服务"

echo "选项3 重启TFTP相关服务"

echo "选项4 测试TFTP相关服务"

echo "键入quit,退出TFTP安装"

echo "请键入数值,执行您所需要的操作: "

read -r Step

echo " "

echo " "

done

exit

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢