Robert Deml Asked: 2009-06-02 06:04:38 +0800 CST2009-06-02 06:04:38 +0800 CST 2009-06-02 06:04:38 +0800 CST 当 httpd 被赋予错误的端口号时会发生什么? 772 我有一个 httpd.conf 文件被意外更改为服务器侦听的端口号更改为高于 65535 的数字。当 HTTPD 读取此配置文件时,它会做什么?它会退回到端口 80 吗? port configuration httpd 4 个回答 Voted Best Answer Scott Pack 2009-06-02T06:09:13+08:002009-06-02T06:09:13+08:00 这取决于配置。您可以定义多个端口进行侦听,在这种情况下,它将尝试绑定到所有端口。将应用程序启动视为一个多步骤过程。在最基本的形式中,该过程如下所示: 读取配置文件,检查错误 尝试绑定到指定端口 监听连接 如果你给它一个不可用但已经存在的端口,那么 httpd 将执行第 2 步并失败。应用程序将无法完全启动,并且不会故障到端口 80。 如果您提供了非端口,即文本、负数或高于 65535 的数字,则配置将被视为无效,并且 httpd 将在 1 处死掉。 user1686 2009-06-02T06:07:02+08:002009-06-02T06:07:02+08:00 一种方法是自己尝试,然后使用网络统计-lptn查看 httpd 正在侦听的端口。 Viky 2009-06-02T06:16:59+08:002009-06-02T06:16:59+08:00 如果您将端口设置为高于 65535(例如 65536),则会出现语法错误,提示“地址或端口无效”。 arclight 2009-06-02T08:45:47+08:002009-06-02T08:45:47+08:00 很大程度上取决于您使用的特定服务器软件。 您可能希望软件会在非法端口号上抛出错误,但情况并非如此;某些软件会很乐意接受您提供的任何内容,从而导致非常奇怪的行为。 问题是:端口号是一个无符号的 16 位值 (0 - 65535),在某些情况下,应用程序会接受更大的数字,但只使用低 16 位。这导致了令人费解的情况,其中启动脚本指定(例如)90000 端口并且发现应用程序正在侦听端口 24464 (90000 mod 65536 = 24464) 我在 SysAdmin 杂志 2002 年 2 月的“通过取证操作提高可靠性”(副本)中记录了类似的事件。合法港口)仍然需要防范这种“不可能”的事件。我首选的方法是与开发人员合作,以确保他们的代码对运维友好,但运维和开发通常不是最好的条件。
这取决于配置。您可以定义多个端口进行侦听,在这种情况下,它将尝试绑定到所有端口。将应用程序启动视为一个多步骤过程。在最基本的形式中,该过程如下所示:
如果你给它一个不可用但已经存在的端口,那么 httpd 将执行第 2 步并失败。应用程序将无法完全启动,并且不会故障到端口 80。
如果您提供了非端口,即文本、负数或高于 65535 的数字,则配置将被视为无效,并且 httpd 将在 1 处死掉。
一种方法是自己尝试,然后使用
查看 httpd 正在侦听的端口。如果您将端口设置为高于 65535(例如 65536),则会出现语法错误,提示“地址或端口无效”。
很大程度上取决于您使用的特定服务器软件。
您可能希望软件会在非法端口号上抛出错误,但情况并非如此;某些软件会很乐意接受您提供的任何内容,从而导致非常奇怪的行为。
问题是:端口号是一个无符号的 16 位值 (0 - 65535),在某些情况下,应用程序会接受更大的数字,但只使用低 16 位。这导致了令人费解的情况,其中启动脚本指定(例如)90000 端口并且发现应用程序正在侦听端口 24464 (90000 mod 65536 = 24464)
我在 SysAdmin 杂志 2002 年 2 月的“通过取证操作提高可靠性”(副本)中记录了类似的事件。合法港口)仍然需要防范这种“不可能”的事件。我首选的方法是与开发人员合作,以确保他们的代码对运维友好,但运维和开发通常不是最好的条件。