我在 Windows 7 专业版机器上的 VMWare Workstation 11.1 下运行了一个 Ubuntu 映像。此 VM 映像的部分功能是通过 TFTP 向网络上的多个主机提供一些文件。
ubuntu 框上的 tftp 服务器由 xinetd 控制,其配置如下:
service tftp {
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /mnt/tftp_files
disable = no
per_source = 11
cps = 100 2
}
我进入了 Windows 防火墙(由于组策略我无法禁用它)并添加了 UDP/69 接受规则。
但是我似乎仍然无法从网络上的另一台主机访问 tftpd。我在安全事件日志中看到明显的数据包丢失。
作为故障排除步骤,我在 Windows 7 主机系统上放置了一个 tftpd 服务器,当它运行时,我可以毫无问题地连接到它。
我目前的假设是 Windows 防火墙的“隐身”功能是这里的问题。可能是因为 xinted 的工作方式(我对此相当无知)。
答案1
TFTP 仅在建立传输时使用 UDP 端口 69,接下来实际的“数据”传输发生在随机选择的 UDP 端口上,该端口也必须在防火墙中“打开”(机制类似于 FTP 传输)您可以在此处阅读有关 TFTP 协议的信息RFC 1350