我在 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 个字节