D3v*_*r0n 18 windows-server-2008 port ftp localhost
我正在 Windows 2008 服务器 (R2) 上设置 FTP 服务器。
一切似乎都安装正确,但我在使用 FTP 客户端登录到我的 FTP 服务器时遇到问题。
我可以远程桌面到服务器,通过 DOS 命令我可以很容易地登录。
但是,如果我发出“DIR”之类的命令,它会挂起: 150 Opening ASCII mode data connection。
我研究和阅读的所有内容都指向防火墙端口和/或被动/主动模式设置。
这就是困扰我的地方...如果我使用 DOS FTP 命令,只有当我使用“localhost”作为我的地址时,我才能登录并使用“DIR”命令。
如果我指定了完整的 FTP URL,则会出现挂起错误。
如果我指定“localhost”URL,则不会收到错误消息。
这让我相信它是防火墙问题(甚至是 IIS7 问题?)但我不确定我需要打开哪些端口?
我在 Windows 防火墙上打开了端口 20、21。我还在我的 AWS (Amazon) 防火墙上打开了这些端口。
我相信我的 FTP 客户端正在使用一些可能被我的两个防火墙之一阻止的远程端口号。我使用网络监控工具尝试查看它调用的端口,但我无法弄清楚。
任何想法,提示,技巧,帮助?
jli*_*ndo 11
FTP 服务器和 FTP 客户端使用 FTP 的“控制通道”协商将要使用哪些端口来传输数据(包括执行“dir”或“ls”时的目录列表)。因此,如果您的“AWS 防火墙”没有在此通道上进行协议检查,他将无法知道它必须动态打开哪些端口以允许流量流动(并在不再使用这些端口后关闭)。
恕我直言,使用网络监控来发现正在使用的端口是不值得的,因为这些端口将针对每个新的 FTP 会话而更改。
除非您已经这样做了,否则我解决此问题的最佳方法是在保护您的 FTP 服务器的防火墙上寻找任何调整(如果我正确理解您的问题,这将是“AWS 防火墙”)并查看是否存在是任何启用 FTP 协议检查的“旋钮”。
小智 9
尝试使用该ls
命令从我的 Ubuntu 命令行列出存储在 UNIX FTP 主机服务器上的文件时,我收到了相同的消息。我能够ftp ftp.example.com
在提示时使用并输入我的用户名和密码成功登录。但是,我会收到150 Opening ASCII mode data connection
消息,但什么也没发生。然后,我只需使用命令输入选项-p
(将其更改为“被动”模式以处理防火墙)并且它起作用了。
ftp -p ftp.example.com
Run Code Online (Sandbox Code Playgroud)
出现提示时输入用户名和密码,然后诸如ls
和 之类的命令cd
将起作用。我相信你也可以输入这个命令,它会做同样的事情,但我没有测试过。
pftp ftp.example.com
Run Code Online (Sandbox Code Playgroud)
我知道这个问题与 Windows 相关;然而,鉴于产生了相同的错误,认为这个提示值得发布。
要获得有关连接卡住原因的真实信息,您将不得不使用记录所有协议命令的客户端来查看实际发生的情况。FTP 上有一个很好的站点,这里有示例日志。
最有可能的,要么
如果您使用 SSL,唯一的答案是在防火墙上打开一系列端口(例如 10000-11000)并将您的 FTP 服务器配置为强制被动模式并使用该端口范围。如果您的服务器使用 NAT,您还需要为服务器设置正确的 IP 地址以向客户端做广告,大多数遵守服务器提供的作为被动模式连接字符串的内容,如果服务器认为它是 10.1.1.1,那就是它会告诉客户。
如果您没有使用 SSL,最好的答案是查看您是否可以让您的防火墙对 FTP 进行协议检查。防火墙将读取端口 21 上的流量并打开您的服务器想要打开的任何端口。这通常也可以修复 NAT 地址(当防火墙也处理 NAT 时)。您可能仍然希望强制使用被动模式,因为有些人不知道如何正确配置他们的 FTP 客户端,而且现在几乎每个人都在宽带路由器/防火墙后面。
如果您无法获得更智能的防火墙,那么您将不得不坚持“打开一堆端口”选项(或切换到不需要打开一堆随机端口的协议,例如 ssh 的 sftp)。
归档时间: |
|
查看次数: |
125903 次 |
最近记录: |