CentOS下搭建tftp服务器

来源:互联网 发布:mac上下载软件必须要 编辑:程序博客网 时间:2024/05/18 02:17

tftp在嵌入式中的作用

TFTP一般用于向目标板下载镜像文件TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入 式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。 因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server 的配置。

  • 检查是否下载了tftp的安装包
[atrouble@Ling ~]$ rpm -qa | grep tftptftp-server-0.49-8.el6.i686 #我这里已经下载了
  • 下载并安装tftp服务器
[atrouble@Ling ~]$ sudo yum install -y tftp-server # -y 指所有提示均选yes
  • 配置

在linux下,不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。

[atrouble@Ling ~]$ sudo vim /etc/xinetd.d/tftp                                                                     # default: off# description: The tftp server serves files using the trivial file transfer \#       protocol.  The tftp protocol is often used to boot diskless \#       workstations, download configuration files to network-aware printers, \#       and to start the installation process for some operating systems.service tftp{        socket_type             = dgram        protocol                = udp        wait                    = yes        user                    = root        server                  = /usr/sbin/in.tftpd        server_args             = -s /var/lib/tftpboot  #把这个值改成 -s /tftp -c        #参数-s指定chroot,-c指定了可以创建文件        #这个目录是你的tftp-server的根目录        disable                 = no #这里改成 no        per_source              = 11        cps                     = 100 2        flags                   = IPv4}             

保存,退出。
然后在根目录下建立这个tftp_server的根目录

[atrouble@Ling /]$ sudo mkdir tftp[atrouble@Ling /]$ cd /tftp/[atrouble@Ling tftp]$ touch test.txt #创建一个文件,等下用来测试tftp服务
  • 开启xinetd服务
[atrouble@Ling ~]$ sudo service xinetd restart停止 xinetd[确定]正在启动 xinetd[确定]
  • 使用netstat命令查看69端口

出现以下情况代表已经启动

[atrouble@Ling ~]$ sudo netstat -nlp |grep 69  使用netstat命令查看69端口:udp        0      0 0.0.0.0:69                  0.0.0.0:*                               8693/xinetd         unix  2      [ ACC ]     STREAM     LISTENING     14169  2316/master         private/proxymap
  • 测试

我们用Busybox中的tftp客户端的命令来进行测试

[atrouble@Ling ~]$ wget http://www.busybox.net/downloads/busybox-1.19.3.tar.bz2[atrouble@Ling ~]$ tar -xjf busybox-1.19.3.tar.bz2[atrouble@Ling ~]$ cd busybox-1.19.3[atrouble@Ling busybox-1.19.3]$ export TERM=vt100[atrouble@Ling busybox-1.19.3]$ make menuconfig  #不做修改直接保存退出[atrouble@Ling busybox-1.19.3]$ make[atrouble@Ling busybox-1.19.3]$ cp busybox /usr/local/bin/[atrouble@Ling busybox-1.19.3]$ cd /usr/local/bin/[atrouble@Ling bin]$ sudo ln -s busybox tftp  #这里是创建符号链接[atrouble@Ling bin]$ ls -l总用量 732-rwxr-xr-x. 1 root root 748804 112 07:10 busyboxlrwxrwxrwx. 1 root root      7 112 07:11 tftp -> busybox#执行该命令后,busybox代表的路径将存放在名为tftp的文件中[atrouble@Ling bin]$ tftpBusyBox v1.19.3 (2016-11-02 07:06:30 PDT) multi-call binary.Usage: tftp [OPTIONS] HOST [PORT]Transfer a file from/to tftp server        -l FILE Local FILE  #-l 表示本地文件名 (local file)        -r FILE Remote FILE #-r 表示远程主机的文件名 (remote file)        -g      Get file    #-g 表示下载文件 (get)        -p      Put file    #-p 表示上传文件 (put)        -b SIZE Transfer blocks of SIZE octets

测试tftp服务器

[atrouble@Ling tftpfile]$ ll总用量 0                     #目前文件夹里面为空#使用ifconfig命令得到当前IP地址为 192.168.31.203[atrouble@Ling tftpfile]$ tftp -gr test.txt 192.168.31.203[atrouble@Ling tftpfile]$ lstest.txt                    #从服务端下载了用来测试建立的test.txt文件
0 0