ubuntu12.04安装tftp、配置tftp服务错误

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

ubuntu12.04安装tftp、配置tftp服务错误


但是配置了,我的老是出现Error code 1: File not found错误,经过探索,tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统

  1、sudo apt-get install tftp-hpa tftpd-hpa xinetd

  2、建立配置文件

  sudo vi /etc/xinetd.d/tftp

  新建文件tftp

  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

  }

  3、建立tftp服务文件目录

  mkdir /tftpboot

  修改权限:sudo chmod 777 /tftpboot -R

  4、重新启动服务。

  当配置好tftp的配置文件后,需要重新启动一下xinetd;在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程;再输入 sudo /etc/init.d/xinetd restart,重启服务。

  记住,每次修改完配置文件后,都需要重新启动一下服务。

  5、安装完成!测试方法:

  在/tftpboot 目录下随便放个文件abc

  然后 登录另一个目录 运行tftp 192.168.123.202 //换成你的IP

  进入tftp命令行

  输入get abc 看看是不是能把文件下下来,如果可以就可以了,也可以put 文件上去。

  如果出现Error code 1: File not found 解决办法:

  sudo vi /etc/default/tftpd-hpa

  # /etc/default/tftpd-hpa

  TFTP_USERNAME="tftp"

  TFTP_DIRECTORY="/var/lib/tftpboot " //改成你想要的那个tftpboot

  TFTP_ADDRESS="0.0.0.0:69"

  TFTP_OPTIONS="-l -c -s" //这里是选项

  然后记得重启服务, sudo /etc/init.d/xinetd restart

  如果还是上面的错误,把文件复制到 /var/lib/tftpboot ,再试下,如果成功,则要重启系统使上面的配置生效。

  以后就可以用你改的那个tftpboot了。

  终于配置出来了,记录如下:

  1:安装服务,共3个服务

  1 sudo apt-get install tftp-hpa tftpd-hpa xinetd

  2:新建配置文件 /etc/xinetd.d/tftp

  1 sudo vim /etc/xinetd.d/tftp

  注意:如果不是root用户,则加sudo,否则系统不允许tftp,出现错误

  "/etc/xinetd.d/tftp" E212: Can't open file for writing

  修改/etc/xinetd.d/tftp内容为:

  1 service tftp

  2 {

  3 disable = no

  4 socket_type = dgram

  5 protocol = udp

  6 wait = yes

  7 user = root

  8 server = /usr/sbin/in.tftpd

  9 server_args = -s /tftpboot -c

  10 per_source = 11

  11 cps = 100 2

  12 }

  注意:第九行中

  server_args = -s /tftpboot -c

  -c参数是允许上传用的,参数/tftpboot则是你的tftp目录,修改成你的目录即可,但是笔者建议在根目录下,方便

  3:修改配置文件/etc/default/tftpd-hpa

  1 sudo vim /etc/default/tftpd-hpa

  修改为:

  1 # /etc/default/tftpd-hpa

  2 TFTP_USERNAME="tftp"

  3 TFTP_DIRECTORY="/tftpboot " //改成你想要的那个tftpboot

  4 TFTP_ADDRESS="0.0.0.0:69"

  5 TFTP_OPTIONS="-l -c -s" //这里是选项

  4:在根目录下新建tftpboot目录,并修改权限

  1 mkdir /tftpboot

  2 sudo chmod 777 -R /tftpboot

  5:在/tftpboot中新建一个测试文件test

  1 touch test

  6:【重要】重启服务,修改配置文件的任何地方都要重启服务

  1 sudo /etc/init.d/xinetd reload

  2 sudo /etc/init.d/xinetd restart

  7:测试服务tftp是否启动

  netstat -a|grep tftp

  显示 :

  udp 0 0 *:tftp *:*

  则启动服务了

  8:测试tftp

  进入另一个目录【不是/tftpboot目录,比如用户jyg目录】

  cd /home/jyg

  测试如图:

ubuntu12.04安装tftp、配置tftp服务错误

  9:出现错误:

  【错误】Error code 0: Permission denied,是因为tftpboot文件夹没有权限,或者是要上传和下载的文件没有权限。

  【解决】修改权限

  sudo chmod 777 -R /tftpboot

  【错误】Error code 1: File not found,原因1:指定的文件不存在;原因2:tftpd启动参数中没有指定-c选项;原因3:目录有问题,因为安装的时候默认的tftp目录是【/var/lib/tftpboot】,您可以把test文件放在这个目录中重新测试一下,如果正确说明猜想是正确的。

  【解决】原因1和原因2都好解决,这里只解决原因3:重启服务或者重启系统