一、通过netstat命令查看端口占用情况
netstat -apn | grep LISTEN
netstat用于显示网络状态信息,-a参数表示显示所有连接及监听端口,-p参数表示显示进程(程序)名与PID(进程号),-n参数表示不进行域名转换(数字形式显示IP地址),grep LISTEN表示查找所有处于监听状态的端口。
通过该命令可以得到输出结果中的第一个字段为协议类型,第二个字段为接口IP地址,第三个字段为端口号,第四个字段为进程(PID/程序)名。
二、通过lsof命令查看端口占用情况
sudo lsof -i :端口号
lsof命令用于显示Linux系统中已经打开的文件列表,-i参数表示进行网络相关的检索,:端口号表示检索指定的端口号。
通过该命令可以得到输出结果中的第一个字段为进程(PID/程序)名,第二字段为进程的PID,第三个字段为用户,第四个字段为文件描述符,第五个字段为类型,第六个字段为设备,第七个字段为节点,第八个字段为名称,第九个字段为状态。
三、通过ss命令查看端口占用情况
sudo ss -nlt
ss命令用于获取套接字连接、统计Socket状态信息等,-n参数表示禁止将网络地址和端口号按照服务名称和主机名进行解析,-l参数表示查看所有监听的端口,-t参数表示查看TCP协议的连接。
通过该命令可以得到输出结果中的第一个字段为协议类型,第二个字段为接口IP地址,第三个字段为端口号,第四个字段为状态(SLISTEN表示监听中),第五个字段为队列长度,第六个字段为,第七个字段为PID/程序名。
四、通过nmap命令查看端口占用情况
sudo nmap -sT -O localhost
nmap命令用于网络探测和安全审核的工具,-sT参数表示以TCP连接的方式进行扫描,-O参数表示进行操作系统探测,localhost表示扫描目标。
通过该命令可以得到输出结果中的第一个字段为端口号,第二个字段为协议,第三个字段为状态(open表示开启状态),第四个字段为服务名称与版本号,第五个字段为操作系统。
五、通过iptables命令查看端口占用情况
sudo iptables -L -n -v
iptables是Linux上一个用于网络管理的工具,-L参数表示列出规则链表,-n参数表示在输出规则时不进行域名解析,-v参数表示输出详细的信息。
通过该命令可以得到输出结果中的第一个字段为规则类型,第二个字段为包数量,第三个字段为流量大小,第四个字段为规则应用范围,第五个字段为源IP,第六个字段为目的IP,第七个字段为源端口,第八个字段为目的端口,第九个字段为协议类型,第十个字段为规则名。