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

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

我正在尝试使用以下命令将文件发送到 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 文件本地文件 -r 文件远程文件 -g 获取文件 -p 放置文件

当我尝试使用上述命令发送文件时,收到此错误:tftp: server error: (2) Access violation....

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

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

我正在使用 xinetd 服务作为 tftp 服务器,下面是它的配置文件。

/etc/xinetd.d/tftp:服务 tftp {协议 = udp 端口​​ = 69 套接字类型 = dgram 等待 = 是 用户 = root 服务器 = /usr/sbin/in.tftpd 服务器参数 = /tftpboot/ 禁用 = 否}

答案1

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

# 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 不会导致该问题。

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

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

答案2

添加-c到您的server_args

server_args = -c /tftpboot/

查看tftpd(8) 手册页

相关内容