Linux:tftp 不工作,传输超时,可能是什么原因?

Linux:tftp 不工作,传输超时,可能是什么原因?

我有一台运行 cobbler 和 tftp 服务器的服务器。我的任务是配置一个读写 tftp 服务器。

tftp 通过 xinetd 配置,配置文件如下:

service tftp
{
        disable                 = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -B 1380 -v -s -c /var/lib/tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

问题是,尽管它看起来似乎有效,但它不接受连接并退出并显示“传输超时”消息。

一些细节:

  • tftp 目录是:/var/lib/tftpboot
  • selinux 和 iptables 已禁用
  • 文件夹的权限如下:

drwxrw-rw-. 8 root root 4096 2015-12-20 11:17 /var/lib/tftpboot/

  • netstat显示端口已开放:

udp 0 0 0.0.0.0:69 0.0.0.0:* 21455/xinetd

  • /var/log/messages日志中没有错误

这是我测试配置的方式:

[root@ams2srv1 ~]# touch file.test
[root@ams2srv1 ~]# tftp localhost
tftp> put file.test
Transfer timed out.

tftp> quit
[root@ams2srv1 ~]# tftp localhost -c put file.test
Transfer timed out.
[root@ams2srv1 ~]#

[root@ams2srv1 ~]# touch /var/lib/tftpboot/test.file
[root@ams2srv1 ~]# tftp localhost -c get test.file
Transfer timed out.

编辑#1: 当连接到机器的真实 IP 并尝试相同的命令时,会出现一条新的错误消息,如下所示:

[root@ams2srv1 ~]# tftp 10.x.x.38
tftp> put test
Error code 0: Permission denied
tftp>

但文件夹的权限/var/lib/tftpboot是777,如上所示。

关于如何解决这个问题有什么想法吗?

答案1

iptables 已被禁用,但是您是否清除了在禁用服务之前加载的任何规则?

另外,我会使用 /etc/xinetd.d/tftp 中最基本的 server_args 进行测试...例如:

   server_args             = -s /var/lib/tftpboot

编辑:在我的计算机上,tftp 127.0.0.1 和 tftp 192.168.0.2 均能正常工作,但 tftp localhost 给出的结果与您观察到的结果相同。

相关内容