![配置 atftp 服务器在端口 69 上回复](https://linux22.com/image/626301/%E9%85%8D%E7%BD%AE%20atftp%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9C%A8%E7%AB%AF%E5%8F%A3%2069%20%E4%B8%8A%E5%9B%9E%E5%A4%8D.png)
问题:我遇到了 TFTP 服务器和 Cisco 79XX IP 电话的问题。在本地网络上时,一切正常,但当 TFTP 服务器位于公共服务器上(电话位于专用网络内 - NAT/防火墙后面)时,电话可以通过 UDP 69 联系 TFTP,但无法检索任何文件/数据(超时)。
原因:“根据 RFC 1350,服务器向客户端(从随机端口)发送 DATA TFTP 数据包。但是,防火墙拒绝此数据包,因为它在转换表中找到所选服务器端口和客户端端口之间的现有连接。”
可能的解决方案:我需要让 TFTP 服务器不仅使用端口 69 来接收请求,而且还要将答案发送给客户端。“在这种情况下,防火墙将根据转换表中的记录正确地将答案发送给客户端。”此外,一些 VoIP 提供商通过编写自己的 TFTP 服务器解决了这个问题。
问题:我在 Linux atftp 服务器中找不到任何特定选项/配置来定义用于回复客户端的端口。是否有任何此类选项或其他免费/开源 Linux TFTP 服务器可以处理此问题?
谢谢,CL
答案1
您的解决方案应该在防火墙配置中找到,而不是在 TFTP 服务器中找到。
任何有价值的防火墙都应该能够识别对初始 TFTP 请求的响应,并且可以配置为动态跟踪并暂时允许返回 TFTP 连接。
即 Linux netfilter 有一个辅助模块 nf_conntrack_tftp 和 nf_nat_tftp,它们类似于 FTP 助手,在加载后,可以允许跟踪返回的 TFTP 连接。
例如,Cisco PIX 可以做同样的事情(可能通过默认甚至)。