再会
我在 Azure 中有两个 Windows Server 2022 数据中心 VM。我试图将它们设置为 IIS 服务器,这样我就可以托管一堆 ASP.Net 站点。它们将被设置为负载平衡,因此如果其中一个脱机,我们也不会有事。我已经为它们设置了 ASP.Net、IIS 和重要的 FTP 服务器。我已经配置了站点,但无法获得稳定的“始终在线”FTP 连接。
无论我更改、切换或设置什么,我都无法让 FileZilla 始终连接到它们。我可以随机建立连接,但我无法找出使此操作有效的任何模式或设置。
我已将 Azure VM 网络防火墙设置为仅允许我的地址通过 21 个 FTP 和 990 个 FTPS 进行连接,并且我可以使用 FileZilla 到达这一点:“状态:正在检索目录列表...”,并显示以下输出:
“
命令:PWD
响应:257 “/“ 是当前目录。
命令:TYPE I
响应:200 类型设置为 I。
命令:PASV
响应:227 进入被动模式(blah)。
命令:LIST
响应:150 打开二进制模式数据连接。
”
我尝试在“FTP 防火墙支持”中设置被动端口范围,并允许该范围通过 Azure 防火墙,但没有任何效果。有时,如果我输入“FTP 防火墙支持”,删除端口,将其重新设置为 0-0,然后设置我的 IP 并“应用”,然后重新启动 VM,FTP 就会连接。
我已经设法将 1 个 ASP.Net 站点推送到 1 个 VM,并且运行良好,所以我唯一的问题是,如何让 FTP 与 Windows Server 2022、IIS 和 Azure 一起工作?
我尝试启用发布功能并设置专用 FTP 站点。配置 FTP 发布的步骤如下:
- 右键点击站点“添加 FTP 发布”
- IP:全部未分配端口:21
- (默认选中)自动启动 FTP
- 需要使用证书进行 SSL
- 身份验证基本 -> 所有用户 -> 读/写
- 结束
添加 FTP 站点时执行的步骤相同,这有错吗?我是否应该运行第三方 FTP 服务器,这似乎很愚蠢,因为我认为 Microsoft 和 IIS 是显而易见的选择。
谢谢你的帮助!
答案1
看来您必须通过单击 IIS 管理器中的 VM 名称、选择“FTP 防火墙支持”,然后输入端口范围(例如:9000-9100)、保存并重新启动服务中的“Microsoft FTP”来设置“数据端口范围”。
实现此工作的步骤:
- 右键点击站点“添加 FTP 发布”
- IP:“全部未分配”端口:21
- 需要 SSL → 选择证书
- 身份验证基本 → 所有用户 → 读/写
- 结束
- (点击站点名称)FTP → “FTP 防火墙支持”
- 在“防火墙外部IP”中输入公网IP
- (单击虚拟机名称)FTP → “FTP 防火墙支持”
- 在“数据通道端口范围”中输入端口范围,例如“9000-9100”
- 申请
- 前往服务
- 重新启动:“Microsoft FTP 服务”
然后在 Azure 中:
- 转至网络
- 为端口 21 及以上范围添加入站规则,例如:9000-9100
现在您应该能够通过 FileZilla 等 FTP 客户端进行连接。我确信使用 IIS 启动和运行 FTP 发布如此复杂是有原因的。希望这对某些人有所帮助。