FTP 上的端口重定向

FTP 上的端口重定向

我正在设置 FTP 服务器,当我尝试使用端口 21 下载文件时,它运行正常。我使用的是 IIS,我只是在绑定部分设置了其他端口IIS 配置

当我尝试使用其他端口(试过 22、24 和 990)下载时,似乎每次请求都会在内部重定向到不同的端口请求 10 次尝试后的结果

错误很明显,我只是不明白为什么每次它都被重定向到不同的端口。

用于下载文件的源代码(c#)

端口 21 成功

端口 24 失败

WinSCP日志(端口21):

2022-06-14 15:32:08.410 使用 FTP 协议。2022-06-14
15:32:08.410 正在与主机进行启动对话。2022-06-14 15
:32:08.441 PWD
2022-06-14 15:32:08.460 257 “/” 是当前目录。2022-06-14
15:32:08.460 获取当前目录名称。
2022-06-14 15:32:08.511 正在检索目录列表...
2022-06-14 15:32:08.511 TYPE A
2022-06-14 15:32:08.530 200 类型设置为 A。
2022-06-14 15:32:08.530 PASV
2022-06-14 15:32:08.549 227 进入被动模式(,222,161,206)。
2022-06-14 15:32:08.549 LIST -a
2022-06-14 15:32:08.549 正在连接到
.222:41422 ...
2022-06-14 15:32:08.568 150 打开 ASCII 模式数据连接。
2022-06-14 15:32:08.586 04-04-22 01:54PM 软件
2022-06-14 15:32:08.586 数据连接已关闭
2022-06-14 15:32:08.586 226 传输完成。
2022-06-14 15:32:08.586 目录列表成功
2022-06-14 15:32:08.586 检测时区差异...
2022-06-14 15:32:08.586 未找到用于检测时区差异的文件 2022-06-14 15:32:
08.586 警告:尚未检测到时区差异,时间戳可能不正确
2022-06-14 15:32:08.586 ..;D;0;1899-12-30T02:00:00.000Z;0;"" [0];"" [0];---------;0
2022-06-14 15:32:08.586软件;D;0;2022-04-04T11:54:00.000Z;1;“” [0];“” [0];---------;0
2022-06-14 15:32:08.605 与主机的启动对话已完成。
2022-06-14 15:32:38.454 发送虚拟命令以保持会话处于活动状态。 2022-06-14 15:32
:38.454 PWD
2022-06-14 15:32:38.454 257“/”是当前目录。

WinSCP 日志(端口 990):

2022-06-14 15:08:40.897 已连接
2022-06-14 15:08:40.897 正在与主机进行启动对话。
2022-06-14 15:08:40.913 PWD
2022-06-14 15:08:40.931 257 “/” 是当前目录。
2022-06-14 15:08:40.931 将目录更改为“/”。 2022-06-14 15:08
:40.931 CWD /
2022-06-14 15:08:40.949 250 CWD 命令成功。
2022-06-14 15:08:40.949 获取当前目录名称。
2022-06-14 15:08:40.950 PWD
2022-06-14 15:08:40.969 257 “/” 是当前目录。
2022-06-14 15:08:40.972 与主机的启动对话已完成。
2022-06-14 15:08:41.035 正在检索目录列表...
2022-06-14 15:08:41.035 类型 A
2022-06-14 15:08:41.053 200 类型设置为 A。
2022-06-14 15:08:41.054 PASV
2022-06-14 15:08:41.071 227 进入被动模式 (192,168,1,10,218,16)。
2022-06-14 15:08:41.071 服务器发送了不可路由地址 192.168.1.10 的被动回复,改用主机地址。
2022-06-14 15:08:41.072 列表
2022-06-14 15:08:41.072 正在连接到.***.222:55824 ...
2022-06-14 15:08:41.091 150 打开 ASCII 模式数据连接。
2022-06-14 15:08:56.655 检测到超时。 (数据连接) 2022-06-14
15:08:56.656 无法检索目录列表
2022-06-14 15:08:56.703 (EFatal)失去了连接。
2022-06-14 15:08:56.703 服务器发送了不可路由地址 192.168.1.10 的被动答复,而是使用主机地址。2022-06-14
15:08:56.703 检测到超时。(数据连接)2022-06-14
15:08:56.703 无法检索目录列表
2022-06-14 15:08:56.703 列出目录“/”时出错。

答案1

FTP 不能在端口 21 上运行。端口 21 仅具有控制连接。数据连接总是在不同的端口上,传统上甚至反向连接(服务器到客户端,所谓的主动 FTP)。

当您使用端口 21(以及未加密的连接)时,NAT 设备(和/或防火墙)可以查看数据连接需要哪些端口并采取相应措施。如果您使用其他端口,FTP 助手将不会获取此信息。数据端口将保持阻塞状态。

在您的日志中,有一个明显的迹象:

服务器使用不可路由的地址 192.168.1.10 发送被动答复,而是使用主机地址。

这意味着您的 FTP 服务器位于 NAT 后面但无法正确支持它。

相关内容