我可以从本地主机成功上传文件。如果我尝试从另一台主机上传文件,客户端会连接并在服务器上创建文件,但文件为空。然后传输会稍后超时。
在客户端,我可以运行以下命令之一并获得相同的结果:
tftp <server> -c put install.log
tftp <server> -c put install.log install.log
tftp <server> -c put install.log /install.log
SELinux 处于宽容模式,并且 IPtables 目前处于关闭状态。
/etc/xinetd.d/tftpd 的内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -c -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
/tftproot 已获得 777 权限。
在 /var/log/messages 中我得到:
Mar 21 17:10:30 <hostname> in.tftpd[29093]: WRQ from <client_ip> filename install.log
Mar 21 17:10:35 <hostname> in.tftpd[29093]: WRQ from <client_ip> filename install.log
Mar 21 17:10:40 <hostname> in.tftpd[29093]: WRQ from <client_ip> filename install.log
Mar 21 17:10:45 <hostname> in.tftpd[29093]: WRQ from <client_ip> filename install.log
Mar 21 17:10:50 <hostname> in.tftpd[29093]: WRQ from <client_ip> filename install.log
整个下午我都在撞墙。求求谁让我不再痛苦吧。我知道这是一件非常愚蠢的事情 :-(
答案1
发现问题
这是 VMware NIC 类型。我使用的是 VNXNET3,一旦我换成 E1000,一切就都按预期工作了。显然,vSphere 5 中仍然存在此问题。
答案2
我认为这是 MTU/碎片问题。客户端和服务器之间的小数据包传输没有问题,因此服务器知道文件名。大数据包被阻止在某处。
您应该-B max-block-size
为服务器使用具有最小块大小(512)的标志,如果这解决了问题,那么也尝试更大的标志(对于具有 1500 MTU 的以太网,~1460 是个不错的选择,但如果客户端和服务器之间有 IPSec/VPN,那么 ~1350 可能会更好)。
答案3
在 EL6 中,默认 tftp 目录从 更改/tftpboot
为/var/lib/tftpboot
。
确保目标目录中有一个具有 666 权限的文件。