当触及到服务器安全和解决与服务相干的问题时,验证哪些所有端口 (TCP/UDP) 都已打开并监听服务器的网络接口非常重要。易受攻击的开放端口多是服务器中严重安全漏洞的缘由,一定要找到并关闭/禁用此类端口。
如果出现与服务相干的问题,检查所有端口都在使用中可以用作故障排除机制,以查找会不会有多个服务正在侦听同一端口。以下是经常使用的端口号:
端口0到1023是尽人皆知的端口
端口1024到49151是注册端口(*通常由软件开发人员注册以为其利用程序指定特定端口)
端口49152到65535是公共端口
下面,小编将分析在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]"
上述结果中的每一个字段的含义以下:
Proto:用于套接字的协议(TCP/UDP)。
本地地址:服务正在侦听的源IP地址和端口。
状态:服务确当前状态。
PID:服务的进程ID,后跟服务名称。
以上就是检查Linux和Windows云主机上的TCP / UDP端口会不会打开的相干教程。
TOP