TFTP PUT 跨主机失败

TFTP PUT 跨主机失败

我在 CentOS 主机上安装了 TFTP 服务器。

/etc/xinetd.d/tftp:

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

如果我尝试将文件从远程主机 PUT 到运行 TFTP 服务器的主机,则会出现传输超时 - 但是,它确实在 /var/lib/tftpboot 中创建了文件,但文件为空。如果我从 tftp 服务器通过 tftp 传输到其自身(本地主机)并 PUT 文件,则一切正常。我已验证 SELinux 已禁用且 IPTables 已关闭。我可以从远程主机连接,没有任何问题 - 似乎只是 PUT 有问题:

[root@SVR01 TEST]# tftp 10.100.2.15
tftp> status
Connected to 10.100.2.15.
Mode: netascii Verbose: off Tracing: off Literal: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> 

答案1

在空文件上运行“chmod 666”,然后再次尝试 tftp。

答案2

使用 tcpdump 'port 69 and udp',然后 strace -s 2000 -ttf -p 。然后尝试再次将文件放入 tftp,您应该有足够的输出来调试此问题。

还要仔细检查 getenforce,iptables -L -v -n。

答案3

TFTP 在端口 69 上建立传输,但实际数据传输使用临时端口。在您的案例中,端口 69 工作正常,服务器创建并打开文件,但数据从未到达;临时端口肯定被阻止了。这就是为什么您看到传输的文件上有 0 个字节

相关内容