新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

如何检查Linux和Windows云主机上的TCP / UDP端口会不会打开?

发布时间:2023-02-08 08:02:15

当触及到服务器安全和解决与服务相干的问题时,验证哪些所有端口 (TCP/UDP) 都已打开并监听服务器的网络接口非常重要。易受攻击的开放端口多是服务器中严重安全漏洞的缘由,一定要找到并关闭/禁用此类端口。


如果出现与服务相干的问题,检查所有端口都在使用中可以用作故障排除机制,以查找会不会有多个服务正在侦听同一端口。以下是经常使用的端口号:

端口0到1023是尽人皆知的端口

端口1024到49151是注册端口(*通常由软件开发人员注册以为其利用程序指定特定端口)

端口49152到65535是公共端口


如何检查Linux和Windows云服务器上的TCP UDP端口是否打开?.png


下面,小编将分析在Linux云主机和Windows云主机中使用lsof,netstat和等命令肯定服务中打开的所有端口的基本步骤。nmapnetstat


一、Linux云主机

例如,Apache和Nginx服务都在同一台服务器上运行。

方法1:使用lsof命令

lsof(列出打开的文件)是一个命令,用于显示服务器中所有打开文件的列表和打开它们的服务。

命令的一般语法lsof以下:# sudo lsof -i -P -n

使用pipeandgrep命令,可以对上述命令的结果进行过滤,以显示监听服务器不同端口的文件的结果。

# sudo lsof -i -P -n | grep LISTEN

# doas lsof -i -P -n | grep LISTEN (for OpenBSD systems)

从示例输出中取出最后一行,结果可以解释以下:

named 812 named 23u IPv4 16018 0t0 TCP 47.113.184.237:53 (LISTEN)

named:服务的名称。

47.113.184.237:指定服务绑定到的IP。

53:正在使用的服务的TCP端口。

812:服务的进程ID。

方法2:使用netstat命令

netstat(网络统计)是一个命令行工具,可用于监视服务器中传入和传出的网络连接。

该netstat命令与grep命令一起检查侦听服务可以在以下语法中使用

# netstat -tulpn | grep LISTEN

# netstat -nat | grep LISTEN (for OpenBSD systems)

netstat命令在最新版本的Linux发行版中已被弃用。命令已ss取而代之。

使用该ss命令的语法以下所示:# sudo ss -tulpn

该ss命令的开关含义以下:

t:仅显示 TCP 套接字。

u:仅显示 UDP 套接字。

l:显示监听套接字。

p:显示打开套接字的进程的名称。

n:不要尝试解析服务名称。

方法3:使用nmap命令

nmap(网络映照器)是一种网络扫描命令工具,可用于查找服务器上的主机和服务。这是通过向服务器发送数据包并进一步分析结果来完成的。

可以从服务器内履行的命令的一般语法nmap以下:

# sudo nmap -sT -O localhost

# sudo nmap -sTU -O 47.113.184.237 (scan both TCP and UDP for server)


二、Windows云主机

在Windows云主机中,该netstat命令可用于检查服务器当前正在使用的端口。

在Windows云主机中使用的命令语法netstat以下:

> netstat -bano | more

> netstat -bano | findstr /R /C:"[LISTENING]"


如何检查Linux和Windows云服务器上的TCP UDP端口是否打开?..png


上述结果中的每一个字段的含义以下:

Proto:用于套接字的协议(TCP/UDP)。

本地地址:服务正在侦听的源IP地址和端口。

状态:服务确当前状态。

PID:服务的进程ID,后跟服务名称。


以上就是检查Linux和Windows云主机上的TCP / UDP端口会不会打开的相干教程。