Windows FTP 客户端:限制数据端口范围

Windows FTP 客户端:限制数据端口范围

我公司有一个使用原生 Windows FTP 客户端 (ftp.exe) 的工具。此 FTP 客户端有时会使用一个端口进行数据连接,而防火墙会将该端口识别为应用程序控制层的对等端口。

我想知道是否有办法在注册表或其他地方限制 FTP 客户端使用的端口范围。

感谢您的帮助。

亚历山大

答案1

这是不可能的。

您不能使用不同的 Windows 命令行 FTP 客户端和被动模式吗?它可以解决防火墙的所有问题。

例如温SCP? 甚至还有Windows FTP 脚本转换为 WinSCP 脚本的指南

(我是 WinSCP 的作者)

答案2

请参阅下面的更新

只有使用主动 FTP 时客户端才能决定使用哪个端口,使用以下PORT命令:

...
PORT 192,168,0,2,7,123
200 PORT command successful
LIST
...

指示服务器连接到 192.168.0.2 端口7*256 + 123 = 1915. 末尾两个数字分别是16位端口号的高8位和低8位。

但是,使用主动 FTP,服务器将连接到客户端。这不适用于防火墙或 NAT 路由器后面的客户端。使用被动 FTP,情况正好相反:客户端打开与服务器的其他连接。因此,被动 FTP 现在是事实上的标准。但是使用被动 FTP,客户端不能决定使用哪个端口:

...
PASV
227 Entering Passive Mode (192,168,0,3,7,123).
LIST
...

现在,客户端必须启动与服务器回复中指示的 IP 地址和端口的连接 ( 227 Entering ...)。虽然由于它不是“已知”端口,因此仍会遇到防火墙问题,但它完全支持没有 FTP 助手的 NAT 路由器。

总结:仅适用于主动 FTP。但主动 FTP 不起作用。

更新

现在很清楚这个问题是关于的ftp.exe,上面的解释基本无关紧要,因为ftp.exe仅支持主动 FTP。但是,的行为ftp.exe无法控制/修改。需要不同的 FTP 客户端。

大多数客户不要支持数据端口范围的配置或控制。摘自WinSCP 手册

由于 WinSCP 不允许配置用于数据连接的端口范围,因此必须打开 Windows 动态端口范围 49152 - 655354 中的所有端口。

您可能需要重新考虑传输文件的整个方法。FTP 已经过时了。使用单端口协议(SFTP、HTTP 等)传输文件可能是更好的方法。

相关内容