无法连接到 TFTP docker 容器

无法连接到 TFTP docker 容器

我正在尝试在 docker 中设置一个 TFTP 服务器作为设置 PXE 启动的第一步,但我无法连接到它。

我使用命令启动容器docker run --name tftp -p 0.0.0.0:69:69/udp -v /var/tftpboot/:/var/tftpboot -d local-tftp

我可以在容器内部运行curl -o ./foo tftp://0.0.0.0/foo并且它可以工作,但在容器外部,我从 docker 主机或网络上的其他计算机运行相同的命令(使用正确的 ip),但两者都不起作用。

我尝试禁用主机上的防火墙,但这也无济于事,这不是防火墙问题吗?

如能得到任何帮助或者提供其他解决方案,我们将不胜感激。

答案1

TFTP 在协商传输时使用 por 69,但实际的数据传输发生在临时端口上;请尝试

docker run --name tftp -p 69:69/udp -p 65500-65515:65500-65515/udp v /var/tftpboot/:/var/tftpboot -d local-tftp

或者考虑到您的 TFTP 服务器使用的临时端口,像这样。

答案2

我在调试类似问题时偶然发现了这个问题。对我来说,解决方案是将选项添加--network=hostdocker run命令中。

答案3

原来是我的客户端防火墙阻止了现有连接。禁用防火墙(或允许现有连接)解决了这个问题。

相关内容