# lsof
查看端口占用
$ lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 13695 root 20u IPv4 3281738 0t0 TCP *:http (LISTEN)
lsof -i tcp:5173 # 查看tcp端口占用
1
2
3
4
5
6
2
3
4
5
6
# netstat
# netstat -tunlp
netstat -tunlp是一个用于查看TCP和UDP网络连接以及监听端口的命令。
下面是该命令的详细说明:
-t:显示TCP连接。-u:显示UDP连接。-n:以数字形式显示IP地址和端口号,而不进行域名解析。-l:仅显示监听状态的连接。-p:显示与每个连接相关的进程ID(PID)和进程名称。
# ss
比 netstat 好用的socket统计信息,iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息
$ ss -ntlp | grep 'v2'
LISTEN 0 128 :::16531 :::* users:(("v2",pid=21302,fd=3))
# -n, --numeric 不解析服务名称
# -t, --tcp 仅显示 TCP sockets
# -l, --listening 显示监听状态的 sockets
# -p, --processes 显示使用套接字(socket)的进程
1
2
3
4
5
6
2
3
4
5
6
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
-V, --version output version information
-n, --numeric don't resolve service names
-r, --resolve resolve host names
-a, --all display all sockets # 显示所有socket
-l, --listening display listening sockets 显示监听状态的套接字(sockets)
-o, --options show timer information
-e, --extended show detailed socket information
-m, --memory show socket memory usage # 显示socket的内存使用情况
-p, --processes show process using socket
-i, --info show internal TCP information
-s, --summary show socket usage summary
-b, --bpf show bpf filter socket information
-E, --events continually display sockets as they are destroyed
-Z, --context display process SELinux security contexts
-z, --contexts display process and socket SELinux security contexts
-N, --net switch to the specified network namespace name
-4, --ipv4 display only IP version 4 sockets
-6, --ipv6 display only IP version 6 sockets
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
-f, --family=FAMILY display sockets of type FAMILY
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink}[,QUERY]
-D, --diag=FILE Dump raw information about TCP sockets to FILE
-F, --filter=FILE read filter information from FILE
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
← linux进程与服务 linux防火墙 →