如何设置 Apache 以使用端口 1 和 80 以下的其他端口?

Süm*_*çak 6 privileges apache-httpd

mysql 用户不能使用 1024 以下的端口,因为这些是为 root 用户保留的。

另一方面,Apache 可以使用端口 80。Apache 在作为 Apache 运行之前以 root 身份运行,因此它可以使用端口 80。它甚至可以侦听端口 81 和任何其他端口。

但是,当我尝试让 Apache 侦听端口 79 时,它不起作用。我也尝试在端口 1 上侦听,但也没有用。

当我更改 Apache 设置时,Apache 重新启动就好了,但它实际上并不能在 Web 上运行。

我可以在网络上使用端口 1 吗?

der*_*ert 24

我将使用 Firefox 作为示例,因为它是开源的并且易于查找其信息,但这也适用于(可能端口列表略有不同)其他浏览器。

2001 年 8 月,CERT 发布了一个漏洞说明,内容涉及如何使用 Web 浏览器向攻击者选择的任意 IP 地址上的 TCP 端口发送近乎任意的数据。例如,这可用于发送看似来自运行 Web 浏览器的用户的电子邮件。为了缓解这种情况,Mozilla(以及许多其他供应商)阻止了 Firefox 访问某些端口

您尝试的两个端口 79 和 1 恰好在阻止列表中。源包含被阻止端口的完整列表。您可以(在您的浏览器上)使用首选项network.security.ports.banned.override和覆盖此列表network.security.ports.banned。这通常在 Internet 上没有用,因为您必须说服可能访问您站点的每个人都去访问about:config并更改它们。

(注意:当前版本的 Firefox 会给出一条错误消息,说明如果您尝试浏览到一个被阻止端口上的站点。)

一般来说,没有理由使用额外的 HTTP 端口,至少在外部是这样。如果必须,最好选择传统的额外端口,如 8080、8000 等,这些端口被阻止的可能性要小得多,或者至少是在 IANA 分配的系统端口范围 (0-1023) 之外的端口。有关更多详细信息,请参阅IANA 端口注册表


gol*_*cks 6

apache 重新启动就好了,但在网络上它不起作用。

端口 80 是浏览器和服务器的默认 HTTP 端口。这意味着为了从浏览器访问在非标准端口上运行的服务器,您需要在地址中包含端口,例如:

http://localhost:79/rest/of/url
Run Code Online (Sandbox Code Playgroud)

如果没有:79主机名之后,浏览器将尝试访问端口 80 而什么也得不到,因为 apache 正在使用其他东西。