1

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

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

tftp 用法是:

BusyBox v1.13.2 (2011-03-24 18:58:44 CDT) 多调用二进制

用法:tftp [选项] ...主机 [端口]

从/向 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
}

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

4

1 回答 1

2

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

# tail /var/log/syslog

上述命令的输出表明 tftpd 正在提供文件,/srv/tftp但没有提及/srv/tftpin /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 作为守护进程运行时会出现此问题的原因。

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

于 2015-06-10T11:24:02.803 回答