使用严格防火墙后的 Windows FTP 客户端

使用严格防火墙后的 Windows FTP 客户端

有一款软件依赖于 Windowsftp.exe来传输文件。问题是,运行该软件的计算机位于非常严格的防火墙后面,因此无法使用 Active FTP。

Windows FTP 仅在主动 FTP 模式下工作。

我正在考虑这个解决方案。从选定的端口(例如 1027)向服务器地址的端口 20 发送数据包。然后 NAT 防火墙将允许从端口 20 到 1027 的传入访问。然后,计算机将向服务器发送 PORT 命令以通知客户端数据端口为 1027。然后数据传输将开始。

它可以工作吗?如何让它ftp仅与 Windows 程序一起工作?

注意:我使用的服务器是 FileZilla FTP Server

答案1

我正在考虑这个解决方案。从选定的端口(例如 1027)向服务器地址的端口 20 发送数据包。然后 NAT 防火墙将允许从端口 20 到 1027 的传入访问。然后,计算机将向服务器发送 PORT 命令以通知客户端数据端口为 1027。然后数据传输将开始。

我认为您无法告诉ftp.exe您使用您选择的端口。它会使用PORT其选择的端口发送。您(应用程序)不会自己发送。

FileZilla Server 上有一个选项“忽略 PORT 命令上不可路由的 IP”,我应该启用它吗?它能解决问题吗?

如果问题是客户端不知道其外部 IP 地址(即它在命令中发送了错误的 IP PORT),那么这会有所帮助。实际情况是(10.10.1.239服务器无法访问本地 IP 地址),因此您需要打开此选项。但您声称问题也出在防火墙上。因此,虽然此选项有帮助,但它并不能解决您遇到的所有问题。


显然,最简单的解决方案是重新配置防火墙以允许主动模式。这意味着在数据连接范围内打开传入端口。

我的文章主动模式的网络配置

您可以仅针对服务器 IP 地址限制规则。您甚至可以进一步将其限制为仅限远程端口 20。


我唯一的其他想法是开发一个ftp.exe使用被动模式的假客户端。如果您使用一些 FTP 客户端库,并将客户端的功能限制为应用程序真正使用的功能,那么这并不难。

相关内容