使 VirtualBox 上的 FTP 服务器以被动模式工作

使 VirtualBox 上的 FTP 服务器以被动模式工作

我在虚拟机上安装了 ubuntu 服务器。我在其中安装了 proftpd,并从虚拟机的网络设置转发了端口 21(ftp 端口)。

问题是 ftp 客户端使用的是被动模式。我检查了 proftpd.conf 并取消注释了 PassivePorts 配置(49152 和 65534)。但 FileZilla 仍然无法检索目录列表。我使用主动模式使其工作,但我希望它使用被动模式。

08:25:25 错误:连接超时

08:25:25 错误:无法检索目录列表

更新 -

我尝试转发 proftpd.conf 上配置的所有被动端口(从 65500 到 65534),这些端口在主操作系统中打开。客户操作系统尚未打开任何端口。当我创建 ftp 连接时,我重新检查了客户操作系统中打开的端口,发现该范围内的某些端口已打开,但问题仍然存在。

一直在读这个。

http://www.mdjnet.dk/ftp.html

我觉得 Virtualbox 中的端口转发功能非常有限。还有其他方法可以让客户操作系统动态地向主操作系统打开端口,而无需每次都进行配置吗?

示例场景

  1. 客户操作系统启动了 ssh 服务器,从而打开了 22 端口
  2. vbox 也向主操作系统开放端口 22(只要没有冲突。)

答案1

FTP 使用两个连接,一个用于数据,一个用于命令。PassivePorts配置是范围用于被动 FTP 数据传输的端口。

Virtualbox 网络配置允许您输入要转发的单个端口,但不能输入范围。因此,为了使被动模式 FTP 正常工作,必须单独转发被动端口。

如果您不希望同时传输超过 5 个数据(Filezilla 等客户端将为每个文件和每个目录列表打开 1 个数据连接),则请将服务器配置更改为使用 5 个端口范围(例如 1025-1030),并在 Virtualbox 配置中转发这 5 个端口。对于 10 个连接,请使用 10 个端口范围,等等。

答案2

我通过以下方式使其工作:

  1. 我将所有被动端口从主操作系统转发到客户操作系统
  2. 我将 FTP 服务器的 IP 屏蔽为 127.0.0.1

我在我的网站上发布了这篇文章博客以获得更明确的解释。

相关内容