我在 WinScp 中使用 FTPS 向我的 Synology 磁盘站发送数据。当我在私有网络内使用端口 21 进行连接时,一切正常。但是当我在互联网上尝试同样的事情时,一旦数据传输开始,我就会收到连接错误。看起来连接已成功完成。
我最好的猜测是,这是因为文件传输使用的是 21 以外的其他端口,并被防火墙阻止。也可能是我当前设置中没有正确为端口 21 设置防火墙。
答案1
根据维基百科,FTPS 有一些防火墙不兼容性:
由于 FTP 使用动态辅助端口(用于数据通道),因此许多防火墙被设计为监听 FTP 协议控制消息,以确定需要允许哪些辅助数据连接。但是,如果使用 TLS/SSL 加密 FTP 控制连接,防火墙将无法确定客户端和 FTP 服务器之间协商的数据连接的 TCP 端口号。因此,在许多防火墙网络中,当未加密的 FTP 部署可以正常工作时,FTPS 部署将失败。可以通过使用有限范围的数据端口并配置防火墙以打开这些端口来解决此问题。
然而,Stackexchange Serverfault 上的另一个问题列出了一些解决问题的方法:
要确切了解需要打开哪些端口,您需要执行以下任一操作:
a) 与供应商联系,了解他们的系统配置细节。
b) 使用协议分析器(如 tcpdump 或 wireshark)查看防火墙内外的流量
您需要找出哪个端口是控制连接。您列出了 3 个,这对我来说似乎很奇怪。假设服务器仅在 PASV(被动)模式下工作,您需要弄清楚服务器如何配置以分配数据端口。他们是否将数据通道锁定到单个入站端口?他们是否将数据通道锁定到小范围或端口?
有了这些答案,您就可以开始配置防火墙。
(宣誓学术于 2009 年 5 月 21 日 20:28)。