tftp 错误代码 2 访问冲突(tftp 不工作)

tftp 错误代码 2 访问冲突(tftp 不工作)

系统信息:

Linux ravi-Inspiron-N5010 3.13.0-46-generic #79-Ubuntu SMP Tue Mar 10
20:08:14 UTC 2015 i686 i686 i686 GNU/Linux

使用 Ubuntu 14.04.2 LTS。

我正在努力运行 tftp localhost。

尝试过:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# service tftpd-hpa restart
tftpd-hpa stop/waiting
tftpd-hpa start/running
root@ravi-Inspiron-N5010:/home/ravi/Desktop# service tftpd-hpa status
tftpd-hpa start/running

现在我收到错误:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# tftp 127.0.0.1
tftp> put test
Error code 2: Access violation
tftp> 

我尝试放置的文件的权限是:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# ls -ld test 
-rwxrwxrwx 1 ravi ravi 0 Mar 21 20:09 test

/tftpboot文件夹的权限:

root@ravi-Inspiron-N5010:/# ls -ld  tftpboot/
drwxrwxrwx 2 nobody root 4096 Mar 15 15:34 tftpboot/

附加信息

root@ravi-Inspiron-N5010:/home/ravi/Desktop# nano /etc/xinetd.d/tftp

service tftp


{
   protocol = udp
   port = 69
   socket_type = dgram
   wait = yes
   user = nobody
   server = /usr/sbin/in.tftpd
   server_args = /tftpboot -s
   disable = no
}

请帮我解决这个问题。

答案1

您要通过 tftp 放置的文件必须存在于目标目录中,并且具有允许其被覆盖的权限。对于您的实例,test必须存在于 中/tftpboot

您可以在 tftp 手册页 BUGS 部分中查看原因。

我正在努力解决如何通过 tftp 放置新文件,但仍然不知道如何操作。

答案2

检查syslog一下你会看到:

 tftpd: serving file from /srv/tftp

基本上有一个错误,您需要将所有文件从文件夹移动/tftpboot/srv/tftp/srv/tftp如果不存在则创建该文件夹),并确保授予其中所有文件 777 权限,重新启动xinetd它即可正常工作!

答案3

这可能是因为 14.04 有一个tftp服务器设置/etc/inetd.conf

#BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
tftp    dgram  udp wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp

您可以注释掉此行并重试。

我从这里得到这个: http://www.beer.org/blog/tftpd-and-xinetd-on-ubuntu.html

答案4

就我而言(Debian 9.9),我通过编辑 /etc/inetd.conf 并修改以下行来解决这个问题:

tftp dgram udp 等待无人 /usr/sbin/tcpd /usr/sbin/in.tftpd/srv/tftp

经过

tftp dgram udp 等待无人 /usr/sbin/tcpd /usr/sbin/in.tftpd/tftp启动

文件“/etc/xinetd.d/tftp”未被读取。

相关内容