如何确定正在侦听端口 80 的服务器

Posted

技术标签:

【中文标题】如何确定正在侦听端口 80 的服务器【英文标题】:How to determine what server is listening on Port 80 【发布时间】:2011-03-13 19:37:27 【问题描述】:

我需要确定在 Java 的 80 端口上运行的 Web 服务器(IIS、Apache、Jetty)。

有没有办法通过80端口获取信息?

感谢和提醒

斯蒂芬

【问题讨论】:

【参考方案1】:

您可以提出请求 - 发出 HEAD 请求,例如在端口 80 上打开一个 TCP 连接,然后发送

HEAD / HTTP/1.0

HEAD / HTTP/1.1
Host: the.server.hostname.com

并且回复应该包含一个服务器行

Server: Microsoft-IIS/5.1

除其他外。

但是,如果您想询问操作系统是哪个进程,我不知道 Java 可移植的方式。您将运行netstat -ano 或(我认为在Linux 上为-anp)的命令行,它将为您提供侦听端口80 的进程号,然后您可以查看它以找出确切的服务器具有该端口。

【讨论】:

【参考方案2】:

看看Server:HTTP header。它通常包含以下内容:

Server: Apache/2.2.10 (SpaceNet) php/5.2.6

当然,服务器可以发送它喜欢的任何东西,或者根本不发送任何东西。

【讨论】:

以上是关于如何确定正在侦听端口 80 的服务器的主要内容,如果未能解决你的问题,请参考以下文章

Windows 2003 上的 Apache 和 IIS 并排(都侦听端口 80)

在 windows server 2008 r2 上停止端口 80

Windows 2003 上的 Apache 和 IIS 并排(都侦听端口 80)

如何获取 WCF 服务正在侦听的端口?

使用 IPC 如何告诉客户端服务器正在侦听哪个端口?

如何更改 HSQLDB 服务器侦听的端口