tftp:服务器错误:(2)访问冲突

时间:2015-04-06 14:44:19

标签: linux tftp

我正在尝试使用以下命令将文件发送到tftp服务器:

tftp -p -l test.txt xx.xx.xx.xx

tftp的用法是:

BusyBox v1.13.2(2011-03-24 18:58:44 CDT)多呼叫二进制文件

用法:tftp [OPTION] ...主机[PORT]

从/向tftp服务器传输文件

选项:

    -l FILE Local FILE
    -r FILE Remote FILE
    -g      Get file
    -p      Put file

现在使用上面的命令,当我尝试发送文件但出现此错误时:

tftp:服务器错误:(2)访问冲突

但是如果我手动在服务器中创建test.txt(需要发送的文件名),然后尝试转移到服务器,它就会成功上传。

如何在不手动创建的情况下发送文件?

我正在为tftp服务器使用xinetd服务。以下是其配置文件:

#/etc/xinetd.d/tftp :

service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = /tftpboot/
disable = no
}

请建议更改以使其无需在服务器中创建文件即可使用。

1 个答案:

答案 0 :(得分:2)

所以这就是我调试问题的方法。

# tail /var/log/syslog

上述命令的输出表示tftpd正在提供来自/srv/tftp的文件,但/srv/tftp中没有提及/etc/xinetd.d/tftp

这篇文章也有助于调试问题:http://toddharris.net/blog/2011/06/19/debugging-xinetd-at-system-launch/。 在调试模式下运行xinetd不会导致此问题。

罪魁祸首是/etc/inetd.conf中的tftp行,如以下链接所示: http://www.beer.org/blog/category/tech-stuff.html 最有可能当xinetd作为守护进程运行时,/etc/inetd.conf优先于/etc/xinetd.d目录中的配置文件,这就是xinetd作为守护进程运行时出现此问题的原因。

/etc/inetd.conf中注释tftp行并重新启动xinetd并解决此问题。