Skip to content

Commit d61b2bc

Browse files
authored
Update netstat.md
1 parent e7d75fc commit d61b2bc

File tree

1 file changed

+175
-169
lines changed

1 file changed

+175
-169
lines changed

command/netstat.md

Lines changed: 175 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -1,169 +1,175 @@
1-
netstat
2-
===
3-
4-
查看Linux中网络系统状态信息
5-
6-
## 补充说明
7-
8-
**netstat命令** 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
9-
10-
### 语法
11-
12-
```
13-
netstat(选项)
14-
```
15-
16-
### 选项
17-
18-
```
19-
-a或--all:显示所有连线中的Socket;
20-
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
21-
-c或--continuous:持续列出网络状态;
22-
-C或--cache:显示路由器配置的快取信息;
23-
-e或--extend:显示网络其他相关信息;
24-
-F或--fib:显示FIB;
25-
-g或--groups:显示多重广播功能群组组员名单;
26-
-h或--help:在线帮助;
27-
-i或--interfaces:显示网络界面信息表单;
28-
-l或--listening:显示监控中的服务器的Socket;
29-
-M或--masquerade:显示伪装的网络连线;
30-
-n或--numeric:直接使用ip地址,而不通过域名服务器;
31-
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
32-
-o或--timers:显示计时器;
33-
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
34-
-r或--route:显示Routing Table;
35-
-s或--statistice:显示网络工作信息统计表;
36-
-t或--tcp:显示TCP传输协议的连线状况;
37-
-u或--udp:显示UDP传输协议的连线状况;
38-
-v或--verbose:显示指令执行过程;
39-
-V或--version:显示版本信息;
40-
-w或--raw:显示RAW传输协议的连线状况;
41-
-x或--unix:此参数的效果和指定"-A unix"参数相同;
42-
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
43-
```
44-
45-
### 实例
46-
47-
**列出所有端口 (包括监听和未监听的)**
48-
49-
```
50-
netstat -a #列出所有端口
51-
netstat -at #列出所有tcp端口
52-
netstat -au #列出所有udp端口
53-
```
54-
55-
**列出所有处于监听状态的 Sockets**
56-
57-
```
58-
netstat -l #只显示监听端口
59-
netstat -lt #只列出所有监听 tcp 端口
60-
netstat -lu #只列出所有监听 udp 端口
61-
netstat -lx #只列出所有监听 UNIX 端口
62-
```
63-
64-
**显示每个协议的统计信息**
65-
66-
```
67-
netstat -s 显示所有端口的统计信息
68-
netstat -st 显示TCP端口的统计信息
69-
netstat -su 显示UDP端口的统计信息
70-
71-
```
72-
73-
**在netstat输出中显示 PID 和进程名称**
74-
75-
```
76-
netstat -pt
77-
```
78-
79-
`netstat -p`可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。
80-
81-
**在netstat输出中不显示主机,端口和用户名(host, port or user)**
82-
83-
当你不想让主机,端口和用户名显示,使用`netstat -n`。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。
84-
85-
```
86-
netstat -an
87-
```
88-
89-
如果只是不想让这三个名称中的一个被显示,使用以下命令:
90-
91-
```
92-
netsat -a --numeric-ports
93-
netsat -a --numeric-hosts
94-
netsat -a --numeric-users
95-
```
96-
97-
**持续输出netstat信息**
98-
99-
```
100-
netstat -c #每隔一秒输出网络信息
101-
```
102-
103-
**显示系统不支持的地址族(Address Families)**
104-
105-
```
106-
netstat --verbose
107-
```
108-
109-
在输出的末尾,会有如下的信息:
110-
111-
```
112-
netstat: no support for `AF IPX' on this system.
113-
netstat: no support for `AF AX25' on this system.
114-
netstat: no support for `AF X25' on this system.
115-
netstat: no support for `AF NETROM' on this system.
116-
```
117-
118-
**显示核心路由信息**
119-
120-
```
121-
netstat -r
122-
```
123-
124-
使用`netstat -rn`显示数字格式,不查询主机名称。
125-
126-
**找出程序运行的端口**
127-
128-
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
129-
130-
```
131-
netstat -ap | grep ssh
132-
```
133-
134-
找出运行在指定端口的进程:
135-
136-
```
137-
netstat -an | grep ':80'
138-
```
139-
140-
**显示网络接口列表**
141-
142-
```
143-
netstat -i
144-
```
145-
146-
显示详细信息,像是ifconfig使用`netstat -ie`
147-
148-
**IP和TCP分析**
149-
150-
查看连接某服务端口最多的的IP地址:
151-
152-
```
153-
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
154-
```
155-
156-
TCP各种状态列表:
157-
158-
```
159-
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
160-
```
161-
162-
查看phpcgi进程数,如果接近预设值,说明不够用,需要增加:
163-
164-
```
165-
netstat -anpo | grep "php-cgi" | wc -l
166-
```
167-
168-
169-
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->
1+
netstat
2+
===
3+
4+
查看Linux中网络系统状态信息
5+
6+
## 补充说明
7+
8+
**netstat命令** 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
9+
10+
### 语法
11+
12+
```
13+
netstat(选项)
14+
```
15+
16+
### 选项
17+
18+
```
19+
-a或--all:显示所有连线中的Socket;
20+
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
21+
-c或--continuous:持续列出网络状态;
22+
-C或--cache:显示路由器配置的快取信息;
23+
-e或--extend:显示网络其他相关信息;
24+
-F或--fib:显示FIB;
25+
-g或--groups:显示多重广播功能群组组员名单;
26+
-h或--help:在线帮助;
27+
-i或--interfaces:显示网络界面信息表单;
28+
-l或--listening:显示监控中的服务器的Socket;
29+
-M或--masquerade:显示伪装的网络连线;
30+
-n或--numeric:直接使用ip地址,而不通过域名服务器;
31+
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
32+
-o或--timers:显示计时器;
33+
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
34+
-r或--route:显示Routing Table;
35+
-s或--statistice:显示网络工作信息统计表;
36+
-t或--tcp:显示TCP传输协议的连线状况;
37+
-u或--udp:显示UDP传输协议的连线状况;
38+
-v或--verbose:显示指令执行过程;
39+
-V或--version:显示版本信息;
40+
-w或--raw:显示RAW传输协议的连线状况;
41+
-x或--unix:此参数的效果和指定"-A unix"参数相同;
42+
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
43+
```
44+
45+
### 实例
46+
47+
**列出所有端口 (包括监听和未监听的)**
48+
49+
```
50+
netstat -a #列出所有端口
51+
netstat -at #列出所有tcp端口
52+
netstat -au #列出所有udp端口
53+
```
54+
55+
**列出所有处于监听状态的 Sockets**
56+
57+
```
58+
netstat -l #只显示监听端口
59+
netstat -lt #只列出所有监听 tcp 端口
60+
netstat -lu #只列出所有监听 udp 端口
61+
netstat -lx #只列出所有监听 UNIX 端口
62+
```
63+
64+
**显示每个协议的统计信息**
65+
66+
```
67+
netstat -s 显示所有端口的统计信息
68+
netstat -st 显示TCP端口的统计信息
69+
netstat -su 显示UDP端口的统计信息
70+
71+
```
72+
73+
**在netstat输出中显示 PID 和进程名称**
74+
75+
```
76+
netstat -pt
77+
```
78+
79+
`netstat -p`可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。
80+
81+
**在netstat输出中不显示主机,端口和用户名(host, port or user)**
82+
83+
当你不想让主机,端口和用户名显示,使用`netstat -n`。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。
84+
85+
```
86+
netstat -an
87+
```
88+
89+
如果只是不想让这三个名称中的一个被显示,使用以下命令:
90+
91+
```
92+
netsat -a --numeric-ports
93+
netsat -a --numeric-hosts
94+
netsat -a --numeric-users
95+
```
96+
97+
**持续输出netstat信息**
98+
99+
```
100+
netstat -c #每隔一秒输出网络信息
101+
```
102+
103+
**显示系统不支持的地址族(Address Families)**
104+
105+
```
106+
netstat --verbose
107+
```
108+
109+
在输出的末尾,会有如下的信息:
110+
111+
```
112+
netstat: no support for `AF IPX' on this system.
113+
netstat: no support for `AF AX25' on this system.
114+
netstat: no support for `AF X25' on this system.
115+
netstat: no support for `AF NETROM' on this system.
116+
```
117+
118+
**显示核心路由信息**
119+
120+
```
121+
netstat -r
122+
```
123+
124+
使用`netstat -rn`显示数字格式,不查询主机名称。
125+
126+
**找出程序运行的端口**
127+
128+
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
129+
130+
```
131+
netstat -ap | grep ssh
132+
```
133+
134+
找出运行在指定端口的进程:
135+
136+
```
137+
netstat -an | grep ':80'
138+
```
139+
140+
**通过端口找进程ID**
141+
142+
```bash
143+
netstat -anp|grep 8081 | grep LISTEN|awk '{printf $7}'|cut -d/ -f1
144+
```
145+
146+
**显示网络接口列表**
147+
148+
```
149+
netstat -i
150+
```
151+
152+
显示详细信息,像是ifconfig使用`netstat -ie`
153+
154+
**IP和TCP分析**
155+
156+
查看连接某服务端口最多的的IP地址:
157+
158+
```
159+
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
160+
```
161+
162+
TCP各种状态列表:
163+
164+
```
165+
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
166+
```
167+
168+
查看phpcgi进程数,如果接近预设值,说明不够用,需要增加:
169+
170+
```
171+
netstat -anpo | grep "php-cgi" | wc -l
172+
```
173+
174+
175+
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->

0 commit comments

Comments
 (0)