TFTP与FTP的区别及Linux下TFTP的安装

时间:2022-06-05 10:07:12

一. TFTP的定义

    TFTP(Trivial File Transfer Protocol),即简单文件传输协议。从名称上可以看出,TFTP适合传送“简单”的文件。与FTP不同的是,它使用的是UDP的69端口,因此可以穿越许多防火墙。不过它也有缺点,比如传送不可靠、没有密码验证等。虽然如此,它还是非常适合传送小型文件的。TFTP 只能从远程服务器上读、写文件(邮件)或者读、写文件传送给远程服务器。它不能列出目录并且当前不提供用户认证。


二. TFTP与FTP的区别

    1. 传输协议不一样:FTP是基于TCP;TFTP是基于UDP

    2. 端口号不一样:FTP的端口是21;TFTP的端口是69

    3. 速度和安全方面:FTP速度慢,安全性好;TFTP速度快,安全性差。


三. TFTP在Linux下的安装及配置

    1. 安装tftpdtftpopenbsd-inetd

        $ sudo apt-get install tftpd tftp openbsd-inetd

    2. 更改配置文件

        $ sudo  vi /etc/inetd.conf
         将inetd.conf的内容tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp  (/srv/tftp 为默认tftp目录)修改为:

         tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot

    3.建立tftp目录

        $ sudo mkdir /tftpboot

    4.更改目录权限

         $sudo chmod 777 /tftpboot

    5. 重新启动tftp服务

        $ sudo /etc/init.d/openbsd-inetd restart

    6.查看69端口是否打开

       $ netstat -an | more | grep udp

       69端口已打开则提示:udp 0 0 0.0.0.0:69 0.0.0.0:*


四. TFTP的使及常见问题

    1. get(下载)

        a. 在/tftpboot 下编辑文件1.txt    
        b. 在其他目录下测试:
            $ tftp 127.0.0.1 或$ tftp localhost

            tftp>get 1.txt
            Received 10 bytes in 0.0 seconds

            tftp> q

    2. put(上传)

        a. 在其他目录编辑文件2.txt测试:
            $ tftp 127.0.0.1 或$ tftp localhost

            tftp> put2.txt

            Error code 2: Access violation

            tftp>

        b. 原因:tftp服务器默认可以下载,但是上传就必须在tftpboot目录下有一个同名文件,并且要有可读写的权限!
        c. 解决方法:
      (1)首先tftpboot目录要有读写权限
      (2)在tftpboot目录下新建一个要上传的同名文件,并改变其权限为666(最低)或777

     3. busybox的tftp用法

        tftp [OPTION]... HOST [PORT]
       OPTION:
       -l FILE  本地文件
       -r FILE  远程文件

       -g下载

       -p上传

      例如:

      下载:tftp-r test.txt -g 192.168.1.100

      上传:tftp-l test.txt -r test.txt -p 192.168.1.100