在Linux系统中,你可以使用多种工具和命令来查看当前正在运行的端口和监听的端口。以下是一些常用的工具和命令:
netstat命令:
Netstat(Network Statistics)是一个用于查看网络连接、路由表和接口统计信息的命令行工具。它可用于Windows、Linux和其他操作系统。Netstat命令有许多不同的参数,这些参数可以用来过滤和显示不同类型的网络信息。以下是一些常用的Netstat参数:
-a
:显示所有连接和监听端口。-t
:显示TCP协议的连接。-u
:显示UDP协议的连接。-n
:以数字形式显示地址和端口号,而不解析域名。-l
:仅显示监听状态的端口。-p
:显示与连接相关的进程信息(仅在某些系统上可用,例如Linux)。-r
:显示路由表。-s
:显示各种网络统计信息,如TCP、UDP和ICMP的统计数据。-c
:持续显示信息,每隔一段时间刷新一次。
示例用法:
netstat -a
:显示所有活动的连接和监听端口。netstat -tuln
:显示所有TCP和UDP连接的详细信息,包括地址和端口号。netstat -l
:显示所有监听状态的端口。netstat -r
:显示路由表。netstat -s
:显示各种网络统计信息。netstat -p
:显示与连接相关的进程信息。
查看特定端口是否被占用(例如端口号为80):
netstat -tuln | grep 80
ss命令:
ss
(Socket Statistics)是一个用于查看套接字统计信息的命令行工具,通常在Linux系统上使用。它比netstat
更快速和强大,提供更多的套接字信息。以下是一些常用的ss
命令参数:
-t
:显示TCP套接字信息。-u
:显示UDP套接字信息。-n
:以数字形式显示地址和端口号,而不解析域名。-l
:显示监听状态的套接字。-a
:显示所有套接字,包括监听和非监听状态的。-s
:显示套接字统计信息,如TCP、UDP和ICMP的统计数据。-p
:显示与套接字相关的进程信息。-o
:显示计时器信息,包括TIME-WAIT和OBSOLETE状态的套接字。-i
:显示网络接口的统计信息。-r
:显示路由表。-c
:持续显示信息,每隔一段时间刷新一次。
示例用法:
ss -tuln
:显示所有TCP和UDP套接字的详细信息,包括地址和端口号。ss -l
:显示所有监听状态的套接字。ss -s
:显示各种套接字统计信息。ss -p
:显示与套接字相关的进程信息。ss -i
:显示网络接口的统计信息。ss -r
:显示路由表。
与netstat
不同,ss
提供了更多的细节和更快的性能,适合用于查看网络连接和套接字的详细信息。要获取有关ss
的更多信息,您可以查看man ss
或运行ss --help
命令。
lsof命令:
lsof
(List Open Files)是一个用于查看系统中打开文件和套接字的命令行工具。它允许你查看哪些进程打开了哪些文件、目录或套接字,以及这些文件的详细信息。lsof
命令非常强大,有许多参数,可以用于过滤和定制查询结果。以下是一些常用的lsof
命令参数:
-
-i
:显示网络连接信息,包括打开的套接字。- 例如:
lsof -i
。
- 例如:
-
-p
:指定一个或多个进程ID,仅显示这些进程打开的文件和套接字。- 例如:
lsof -p 1234
。
- 例如:
-
-u
:指定一个或多个用户名,仅显示这些用户的打开文件和套接字。- 例如:
lsof -u username
。
- 例如:
-
-c
:指定一个或多个进程的名称,仅显示匹配进程名的打开文件和套接字。- 例如:
lsof -c nginx
。
- 例如:
-
-t
:仅显示打开文件和套接字的相关进程ID。- 例如:
lsof -t /var/log/myfile.log
。
- 例如:
-
-i4
和-i6
:分别显示IPv4和IPv6的网络连接信息。- 例如:
lsof -i4
或lsof -i6
。
- 例如:
-
-n
:以数字形式显示地址和端口号,而不解析域名。- 例如:
lsof -i -n
。
- 例如:
-
-F
:以指定格式显示结果,例如,-F n
以一行一项的格式显示结果。- 例如:
lsof -i -F n
。
- 例如:
-
-a
:与其他选项联合使用,表示逻辑与操作,用于多个条件的过滤。- 例如:
lsof -i -a -u username -c nginx
。
- 例如:
-
-X
:用于显示文件系统信息。
- 例如:
lsof -X /path/to/mountpoint
。
查看特定端口是否被占用(例如端口号为80):
lsof -i :80
nmap命令:
nmap
(Network Mapper)是一个用于网络探测和安全扫描的命令行工具。它用于扫描目标主机,以识别开放的端口、操作系统信息、服务和网络拓扑。nmap
是一种强大的网络工具,有很多参数和功能,可以用于各种网络扫描和安全任务。
以下是一些常用的nmap
命令参数和用法:
-
扫描目标主机:
nmap target
-
扫描多个目标主机:
nmap target1 target2 target3
-
扫描目标主机的特定端口:
nmap -p 80 target
-
扫描目标主机的常见端口(快速扫描):
nmap -F target
-
扫描目标主机的所有端口(全端口扫描):
nmap -p- target
-
扫描目标主机并获取操作系统信息:
nmap -O target
-
扫描目标主机并获取服务/应用程序版本信息:
nmap -sV target
-
扫描目标主机并启用操作系统检测和服务/应用程序版本检测:
nmap -A target
-
扫描目标主机并输出结果到文件:
nmap -oN output.txt target
-
扫描目标主机并执行脚本(Nmap脚本引擎):
nmap --script scriptname target
-
扫描目标主机时进行Ping探测:
nmap -sn target
-
扫描目标主机时进行TCP SYN扫描(默认扫描方式):
nmap -sS target
-
扫描目标主机时进行UDP扫描:
nmap -sU target
-
扫描目标主机时进行操作系统检测,但不进行端口扫描:
nmap -O -PN target
扫描特定主机的特定端口(例如端口号为80):
nmap -p 80 IP地址
使用/proc文件系统:
Linux系统将系统信息以文件形式保存在/proc目录下,可以直接读取这些文件来查看端口信息。
- 查看所有打开的端口:
cat /proc/net/tcp cat /proc/net/udp