如何检查打开的端口是TCP还是HTTP?

具体来说,我有一个Windows服务器(Windows 7),但netstat -an命令只显示端口是TCP还是UDP。 我认为这些是唯一的端口,但node.js似乎区分HTTP端口和TCP端口( 例如在链接页面的底部 )。 我目前在一个程序中使用node.js,它将在我的服务器上运行,并默认打开HTTP端口。 这些显示为netstat -an下的TCP端口。

有一个命令行技巧来区分此服务器上的开放端口是HTTP还是TCP? 我向我的信息技术办公室要求我在这个服务器上需要的端口,他们需要知道这些端口是TCP,UDP等。

如果有必要使用远程客户端,我有一个可以完成这项工作的Mac。

所有HTTP流量都通过TCP端口传输。 我认为可能会造成一些混淆的是,第一个node.js示例使用http模块,第二个示例使用net模块。

http模块建立在网络模块(处理基于HTTP的TCP层)上。

请参阅: nodejs – net或http模块

编辑:

只有一个进程可以绑定到一个端口。 如果您连接时遇到困难,请关闭其他可能使用相同端口的应用程序,例如Java Hello World服务器。 运行netstat -an以确保在示例中没有看到您要在您的node.js TCP服务器(端口1337)中列出的端口。 如果没有任何端口正在监听,请启动您的node.js TCP服务器并再次运行netstat -an以确保它实际上正在侦听目标端口。

另一个建议 – 暂时关闭软件防火墙,然后使用本地服务器上的telnet客户端尝试使用命令telnet 127.0.0.1 1337 (用您的端口替换1337)从命令提示符连接到端口。 这将消除客户端(本例中为telnet)和服务器之间的任何网络设备,如防火墙。 如果屏幕变空白,则表示已连接。 如果您收到消息Could not open connection to the host, on port那么它仍然没有侦听TCP端口。 如果您可以通过Telnet进行本地连接,但无法远程连接,则会阻止连接。

HTTP是一个应用程序协议。 其定义假设了一个潜在的和可靠的传输层协议。 传输控制协议是常用的。 但是HTTP也可以使用不可靠的协议(例如SSDP)。

现在回答你的问题:

  • netstat -lt:列出TCP侦听端口
  • netstat -lu:列出UDP侦听端口

如果您想知道TCP端口是否运行HTTP,您可以检查HTTP上的标准端口(grep:80)。 标准的HTTP端口是80.标准的HTTPS端口是443。