OS X Server FTP 服务器

OS X Server FTP 服务器

我正在运行 OS X Server,并启用了以下服务:Web、MySQL、DNS、AFP、防火墙。我还想启动 FTP,我这样做了,但似乎无法让它正常工作。我确信有办法,但我找不到让它为我工作的方法。

我目前所做的工作: - 激活 FTP 服务 - 在防火墙中打开端口 20-21 - 将端口 20-21 从路由器转发到服务器

我使用 Coda 连接到我的 FTP(因为我做了很多 Web 开发)。当我输入此服务器的地址 + 凭据时,它会尝试连接大约 2-3 分钟,然后才真正成功,当它成功时,它会列出以下目录:“Public”(带有快捷方式图标)、“Users”(带有快捷方式图标)和一个名为“???”的文件,它会立即尝试打开该文件。在 Finder 中执行 [cmd + k] 也会导致等待 2-3 分钟。

另外,我不知道在哪里为 FTP 创建新用户(仅用于 FTP)以及如何授予他们特定目录的权限(没有“用户”或“公共”等无用的目录)。

我得出的结论是,内置 FTP 服务器可能不是我的最佳选择,但我不知道该尝试什么。使用单独的应用程序对我来说不是理想的情况,因为我试图避免在服务器上打开额外的应用程序。

答案1

我建议使用 SFTP(SSH 文件传输协议)。FTP 是一种非常不安全的协议。Coda 支持 SFTP,如果您设置了 SSH,则在大多数情况下您已经设置了 SFTP

答案2

我将和其他人一起投票,使用比 FTP 更好的协议。除了安全问题(明文密码!)之外,它还存在很多与防火墙和网络地址转换 (NAT) 路由器相关的问题。一般来说,主动模式 FTP 可以在服务器端使用 NAT 和/或防火墙,而被动模式 FTP 可以在客户端使用 NAT 和/或防火墙,如果两端都有 NAT 和/或防火墙(这在当今非常常见),FTP 可能在任何模式下都无法工作。

实际上,这有点夸大其词,因为一些 NAT 路由器足够智能,可以动态重写 FTP 连接以避免出现问题(当然,此功能往往不会在任何地方记录,因此您无法在不尝试的情况下判断路由器是否具有此功能),并且通常可以调整服务器端数据包过滤防火墙以防止其引起麻烦......

要操纵服务器防火墙,请参阅Apple 的知识库 #HT4000有关设置服务器的被动端口范围并设置防火墙以允许这些端口通过的说明(注意:建议的端口范围相当大。使用较小的范围是完全合理的,只要 FTP 服务和防火墙配置为相同的范围)。

如果您的路由器不支持 FTP 重写,您可以通过一些额外的配置来伪造它:配置您的路由器以将整个被动端口范围端口转发到服务器(如果您这样做,您肯定会希望使用较小的端口范围)。然后找出您的公共 IP 地址(路由器 WAN 端的地址)和内部网络上的地址范围(CIDR 表示法),并将适当的“被动地址”指令添加到 /Library/FTPServer/Configuration/ftpaccess。例如,如果您的路由器的公共 IP 为 203.0.113.117,内部范围为 192.168.1.0/24,服务器的内部地址为 192.168.1.10,则它看起来会像这样:

passive address 192.168.1.10 192.168.1.0/24
passive address 203.0.113.117 0.0.0.0/0

最后,如果您想允许上传到 FTP 服务器,您需要为您想要允许上传的文件夹添加“上传”指令(默认情况下,它们只允许上传到/Library/FTPServer/FTPRoot/uploads,除非您创建它,否则它不存在)。

顺便说一句,虽然上述实施细节(例如 ftpaccess 指令)特定于 Apple 使用的 wuftpd 服务器,但 NAT 和防火墙问题(以及可能的解决方案)对于您可能想要使用的任何其他 FTP 服务器来说都是相同的。基本上,FTP 协议本身并非设计用于现代网络设置,并且实施无法修复/缓解此问题。

答案3

FTP 绝对是您不想运行的服务。如果您确实需要它,请安装 ProFTPd 而不是内置的 wuftpd 服务。它允许拥有与其他 OSX 服务、虚拟主机等不同的帐户

相关内容