我的问题是,我试图在服务器上设置 tftp,一切似乎都运行正常,但当我尝试从 tftp 下载文件时,它从不响应,我没有看到任何错误,只是一片寂静,当我嗅探到应该响应的服务器的流量时,我看到了请求,但服务器从不响应文件
我正在运行一台电脑Fedora 17
(我知道它已经过时了,但目前无法改变)
我正在尝试运行tftp
它,我安装了 tftp(yum install -y tftp-server
)并设置为运行,打开了UDP
端口69
,并设置了文件夹的权限,但它没有任何反应,以下是一些输出和配置文件
当我运行 tftp [服务器的 ip] get test
任何帮助将不胜感激
SELinux
:
# setenforce 0
setenforce: SELinux is disabled
tftp config
:
cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /copos/tftp -vvv
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
The Directory
:
# ls -lah /copos/tftp/
total 48K
drwxrwxrwx 4 root root 4.0K Feb 3 14:42 .
drwxr-xr-x. 31 coposuser coposuser 4.0K Feb 3 14:46 ..
drwxrwxrwx 3 root root 4.0K Feb 3 14:42 clonezilla
-rwxrwxrwx 1 root root 27K Feb 3 14:42 pxelinux.0
drwxrwxrwx 2 root root 4.0K Feb 3 14:42 pxelinux.cfg
-rwxrwxrwx 1 root root 9 Feb 3 14:42 test
The Port is opened
:
# netstat -anp|grep 69|grep xinet
udp 0 0 0.0.0.0:69 0.0.0.0:* 3533/xinetd
答案1
你可以设置防火墙规则阻止访问
或者
您的 /copos 目录没有完全权限。
你应该能够通过执行以下操作来解决这个问题:
tail -f /var/log/messages
当您尝试下载文件时。如果您没有收到任何条目,则可能是防火墙问题,如果您收到类似以下内容的信息:
Feb 3 18:50:48 host1 in.tftpd[10298]: RRQ from 192.168.4.190 filename test.xml
Feb 3 18:50:48 host1 in.tftpd[10298]: sending NAK (0, Permission denied) to 192.168.4.190
那么这是一个权限问题。
还请记住,仅在端口 69 上进行捕获不会显示所有跟踪。tftp 服务器将使用不同于 69 的源端口进行传输。这就是为什么如果涉及某些 NAT,tftp 通常就会崩溃的原因。
因此完整的交流通常是这样的:
client requests file via tftp (source port random_client -> dest port 69)
server send back tftp file (source port random_server -> dest port random_client)
如您所见,端口 69 上的 tcpdump 捕获不会显示完整对话框。此外,如果您有 NAT,一旦服务器尝试从 69 以外的源端口发送文件,大多数 NAT 实现都将无法转发数据包(只有全锥形或受限锥形 NAT 可以工作,但端口受限或对称 NAT 则不行)。