zoukankan      html  css  js  c++  java
  • Ubuntu 12.04 搭建TFTP服务器

    吐槽先:在Ubuntu上搭建TFTP服务器,网上搜到一堆资料,可惜基本都是部分能用,至于哪些部分能用还要自己摸索着试出来,郁闷之情仅次于找不到任何资料……

    --------------------------------------------正文开始--------------------------------------------

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场 合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。它传输8位数据,传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

    在嵌入式Linux开发中,TFTP协议在很多场合都被用到,甚至是必不可少的,特别是在内核调试阶段,在U-Boot下通过TFTP协议从服务器上加载内核并运行,既方便又快捷。

    一般的Linux发行版默认都没有安装TFTP服务以及TFTP服务器。TFTP服务依赖于网络守护进程服务程序,可选择安装inetd或者升级版的xinetd, 然后安装tftp和tftp-server,接着修改或者创建/etc/xinetd.d/tftp配置文件,最后重启xinetd,启动TFTP服务。 无论采用什么发行版,TFTP服务器的安装都是这样的流程,只不过不同发行版的安装命令不同而已。

    1、查看系统信息

    我用的系统是Ubuntu 12.04.5 LTS。

    zlf@ubuntu:~$ cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=12.04
    DISTRIB_CODENAME=precise
    DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS"

    2、安装软件

    安装xinetd:

    zlf@ubuntu:~$ sudo apt-get install xinetd

    安装tftpd-hpa和tftp-hpa:

    zlf@ubuntu:~$ sudo apt-get install tftpd-hpa tftp-hpa
    tftpd-hpa是服务器端,tftp-hpa是客户端。tftpd-hpa和tftp-hpa是tftpd和tftp的增强版本。

    3、修改配置文件

    建立/etc/xinetd.d/tftp文件,写入如下内容:

    service tftp
    {
            socket_type    = dgram
            protocol       = udp
            wait           = yes
            user           = root
            server         = /usr/sbin/in.tftpd
            server_args    = -s /home/zlf/tftpboot/
            disable        = no
            per_source     = 11
            cps            = 100 2
            flags          = IPv4
    }

    其中server_args设置的/home/zlf/tftpboot/目录是tftp服务器的目录,设置其访问权限为777:

    zlf@ubuntu:~$ mkdir -pv /home/zlf/tftpboot
    zlf@ubuntu:~$ chmod 777 /home/zlf/tftpboot

    修改/etc/default/tftpd-hpa文件:

    zlf@ubuntu:~$ sudo vi /etc/default/tftpd-hpa

    将文件从

      1 # /etc/default/tftpd-hpa
      2 
      3 TFTP_USERNAME="tftp"
      4 TFTP_DIRECTORY="/var/lib/tftpboot"
      5 TFTP_ADDRESS="0.0.0.0:69"
      6 TFTP_OPTIONS="--secure"

    修改为:

      1 # /etc/default/tftpd-hpa
      2 
      3 TFTP_USERNAME="zlf"
      4 TFTP_DIRECTORY="/home/zlf/tftpboot"
      5 TFTP_ADDRESS="127.0.0.1:69"
      6 TFTP_OPTIONS="-s -c"

    TFTP的OPTIONS可以通过man tftpd查看。

    4、启动服务

    软件安装后已自动启动,此时将服务重启:

    zlf@ubuntu:~$ sudo service xinetd restart
    zlf@ubuntu:~$ sudo service tftpd-hpa restart

    5、本机测试

    在/home/zlf目录下创建文件puttest,在/home/zlf/tftpboot目录下创建文件gettest。

    echo "tftp put test" >> /home/zlf/puttest
    echo
    "tftp get test" >> /home/zlf/tftpboot/gettest

    在/home/zlf目录下运行tftp。

    zlf@ubuntu:~$ cd
    zlf@ubuntu:~$ tftp localhost
    tftp> get gettest   #获取gettest文件
    tftp> put puttest   #上传puttest文件 tftp
    > q  #退出tftp

    用ls命令查看,在/home/zlf目录下可以看到下载的gettest文件,在/home/zlf/tftpboot目录下可以看到上传的puttest文件。

    TFTP服务器搭建完成。

    参考文献:

    1、ubuntu下搭建tftp服务器
    2、Ubuntu 11.04下安装 TFTP Server
    3、在ubuntu 下安装xinetd模式的tftpd服务
    4、ubuntu 12.04搭建tftp服务器的安装、设置、调试
    5、Ubuntu下配置tftp服务和NFS服务

  • 相关阅读:
    topcoder srm 320 div1
    topcoder srm 325 div1
    topcoder srm 330 div1
    topcoder srm 335 div1
    topcoder srm 340 div1
    topcoder srm 300 div1
    topcoder srm 305 div1
    topcoder srm 310 div1
    topcoder srm 315 div1
    如何统计iOS产品不同渠道的下载量?
  • 原文地址:https://www.cnblogs.com/siikee/p/4332342.html
Copyright © 2011-2022 走看看