Ubuntu中tftp测试

来源:互联网 发布:索尼手机升级软件 编辑:程序博客网 时间:2024/06/07 00:27

本篇文章主要是测试tftp时遇到的问题,顺带粘贴博友配置tftp的过程。本博客旨在经验交流,若有不妥之处,望批评指正。

第一部分: TFTP的配置  

  (注:本部分转自http://blog.csdn.net/haiwil/article/details/6606648点击打开链接,有适当修改)

1. sudo apt-get install tftp tftpd xinetd

2. 建立配置文件
   sudo vim /etc/xinetd.d/tftp
   内容如下:
  service tftp
    {
         disable = no
         socket_type = dgram
         protocol = udp
         wait = yes
         user = root
         server = /usr/sbin/in.tftpd
         server_args = -s /tftpboot       //tftp服务器的根目录(见3)
   }
3. 建立tftp服务文件目录
    sudo mkdir /tftpboot   //tftpboot这是一个文件名,可以随便取,但是要和2中的保持一致
修改权限:sudo chmod 777 /tftpboot -Rf   
4. 重新启动服务。
        当配置好tftp的配置文件后,需要重新启动一下xinetd;在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程;再输入 sudo /etc/init.d/xinetd restart,重启服务。
记住,每次修改完配置文件后,都需要重新启动一下服务。


第二部分:TFTP的测试

1. 编辑测试文件

      在测试安装配置好的tftp是否正确之前,需要准备编辑测试文件。这个时候就要搞清楚目录的关系。

      /tftpboot:根目录下的tftpboot是服务器,即上传至tftp服务器的文件都将存放在此目录中,这也是为什么把它放在根目录下---方便。

        A. 在/tftpboot下建立测试文件

          $ vim file  //编辑内容:this is in the tftpboot!  保存退出。

          $ll    //(ll:这是两个小写的字母L)查看file文件的权限为-rw-rw-r--

        B. 对应于服务器目录,没有与之对应的客户端目录,用户可以任意目录下上传文件,或者下载文件,但是最好在 /opt 下。

          $cd /opt

          $sudo vim file1    //编辑内容:this is in the opt!   保存退出。

          $ll                          // 查看file1的权限为-rw-r--r--


2. 下载文件

        下载文件之前,先有启动tftp连接:

          $cd /opt                //将下载的文件放在/opt目录

          $tftp localhost    //或者 tftp 127.0.0.1)

          tftp> get file         //get指令:从服务器下载文件到当前目录

  如下图:出现了permission denied 错误

          

  分析:当前用户是mike ,而在配置service tftp时有:user = root (见第一部分步骤2),即要求是root用户才行。

            tftp>q                 //退出tftp

            $sudo su         //切换到root用户

  然后输入密码,如下图:

         

  重复之前的命令:

            

   然后我们到 /opt目录下查看下载的file文件(重新打开一个终端),如图:

            

   从图中我们可以看到下载的文件file,之前建立的文件file1。通过cat指令,显示了file中的内容,正确。


3. 上传文件

      上传文件和下载文件不同。向tftp服务器上传文件时,需要在服务器端先建立一个同名文件,并且该文件的权限至少是-rw-rw-rw-。然后在1中编辑的文件的权限没有达到要求,那我们来看看会出现什么问题。

接着发送文件的后面:

      $tftp>put file1      //put指令:把当前目录下的file1文件上传到服务器

 如下图,出现了Error code 2:access violation的错误。

        

  那么我们在服务器下建立同名文件之后呢?

    在/tftpboot目录下,如下图框1:

        $vim file1    //新建同名文件,不用编辑,保存退出即可。

        $cat file1    //没有内容,即为空。

        $ll file1        //查看file1文件的权限,满足要求

  然后在终端中上传文件,如下图框2,发现文件可以上传。

   然后在/tftpboot目录下cat file1发现是来自/opt的内容,即正确。

       

        

  上面讨论了服务器中有同名文件及文件的权限满足时的情况,那我们来看看文件权限不满足的是怎样的?

     在/tftpboot目录下:

       $sudo chmod 664 file1    //修改file1的权限为-rw-rw-r--

   从图中可以看到,修改权限之后就出现了Error code 2:access violation的错误。

       

      在此要注意的时,我们在/tftpboot下建立同名文件时,要注意它的权限。当它满足-rw-rw-rw-时自然就可以上传文件。

1 0