Apache2 在端口 20、21 和 22 上监听但不通信

Apache2 在端口 20、21 和 22 上监听但不通信

我正在尝试设置服务器。我已按照 stackoverflow 上的问题“配置 apache 以监听 80 以外的端口”给出的建议操作。

但是,当我尝试在启用站点的 apache2 中添加新的 <VirtualHost *:20> 时,apache2 无法重新启动,并出现指向此修改的错误。

我尝试了几种方法来编写它(在冒号和端口号之间有或没有空格、有或没有结束标记、在 default.conf 和 000-default.conf 中...

default.conf 中什么都没有。000-default.conf 中有 <VirtualHost *:80>(甚至没有 https 的端口 443),注释掉了一些东西和结束标记。

无论如何,据我理解,它不是一个虚拟服务器。

当我输入

lsof -i -n -P | grep LISTEN

我看到 apache2 在端口 20、21、22、80 和 443 上监听 root 和 www-data,这正是我想要的(我认为)。

cupsd 正在 2 个家庭 IP 上监听 root,而 dnsmasq 正在另一个家庭 IP 上监听无人。

在 iptables 中,所有 5 个端口的设置完全相同,即 INPUT、FORWARD 和 OUTPUT。所有其他端口均设置为 DROP。

我可以使用 Firefox 和 Konqueror 通过 http 连接到服务器。但是当我尝试通过 ftp 连接时,它失败了。在终端上:

ftp 192.168.1.83
ftp: connect: Connection timed out
ftp localhost
ftp: connect: Connection refused

我下载了 FileZilla,并在另一台计算机上运行了它们的向导,也就是我试图连接到服务器的那台计算机。我尝试了主动和被动模式,不管它们是什么(我读了但不明白)。每次它都回答:

Failed to create listen socket on port 0, aborting

这并不奇怪,因为据我所知没有这样的端口。有效端口应该是从 1 到 65535。

我以为是权限问题,所以我去了 /var/www 并将所有内容设置为 chmod 777。只是为了测试,对,然后我将权限恢复原样。无论如何这都无济于事。

因此,apache2 可能正在监听端口 21,但它没有通信。请帮忙。

答案1

Apache 是一个 HTTP 守护进程。FTP 的端口处理相当复杂。我不相信 Apache 可以处理这个。您需要一个 FTP 守护进程,例如 vsftpd。

相关内容