|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' [ y( }6 z- ~: enetstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,: i* G0 D5 @+ I s1 H$ ]
语 法:netstat [-acCeFghilMnNoprstuvVwx][-A网络类型>][--ip]
+ n+ D0 ^3 [! G' n补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。+ d8 \& L5 p' e: \( Q
参 数:
2 K D' o( ]% D9 T-a或--all 显示所有连线中的Socket。
* [! A# i- J ?3 D, z8 Y; F-A网络类型>或--网络类型> 列出该网络类型连线中的相关地址。8 N! q/ [) X, _% k9 z+ A" o
-c或--continuous 持续列出网络状态。
; Q. W+ p& ~1 h: O-C或--cache 显示路由器配置的快取信息。0 C) T) d# C! B8 Y6 v8 D
-e或--extend 显示网络其他相关信息。
C, U" e* Y' [8 ]' u+ o-F或--fib 显示FIB。" V1 e" B/ M" X
-g或--groups 显示多重广播功能群组组员名单。
& z' }2 F* d5 @' d* `-h或--help 在线帮助。
" U; @$ A% m/ }' g-i或--inteRFaces 显示网络界面信息表单。
3 L5 S/ C. W: U$ r# E7 u-l或--listening 显示监控中的服务器的Socket。
5 f4 a( ^$ g; l: f; ^7 J-M或--masquerade 显示伪装的网络连线。. @+ B& O$ @& G8 g+ I, b( m
-n或--numeric 直接使用IP地址,而不通过域名服务器。) G" V/ Q" g: S7 z
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。2 W0 K# I+ C- w: I5 r
-o或--timers 显示计时器。2 X r l+ m0 n2 i. Q+ m+ p2 F
-p或--programs 显示正在使用Socket的程序识别码和程序名称。% E/ H- h/ O8 y
-r或--route 显示Routing Table。! |+ [6 ^: ~ Y! ]5 F
-s或--statistice 显示网络工作信息统计表。' U S& ^& I v" t
-t或--tcp 显示TCP传输协议的连线状况。
8 ~% G5 o( R; l/ H-u或--udp 显示UDP传输协议的连线状况。/ E1 t9 o4 L! T3 g6 [
-v或--verbose 显示指令执行过程。
- j1 [! a+ L% ~. ]8 i-V或--version 显示版本信息。) m0 G; M; x. `) [. f
-w或--raw 显示RAW传输协议的连线状况。
" W9 P( t4 H) a/ F' ?-x或--unix 此参数的效果和指定"-A unix"参数相同。4 F _. e: Z2 Z O* t4 p
--ip或--inet 此参数的效果和指定"-A inet"参数相同。 p& ~4 t( y3 p! J
+ i" W4 r: B' f6 h+ o, M" b4 G6 f
1) netstat -tl -nltp# l. `6 o! R" l& [# L \
查看当前tcp监听端口! L5 W- L$ D G) X" `$ m! z
Active Internet connections (only servers)
}" D/ v0 @$ UProto Recv-Q Send-Q Local Address Foreign Address State + ]4 L. f! U8 F* A$ H
tcp 0 0 *:rrac *:* LISTEN
9 N3 w5 W8 ^2 h5 w! c& P2 l. {tcp 0 0 *:34006 *:* LISTEN 8 I" z, C; L6 q4 U
......
5 P8 S4 h' X; ~1 i& p: n2 ~+ v1 i3 ^; c% W
2) netstat -tlp
1 P X, \& B) z% m3 ^+ g查看当前tcp监听端口, 需要显示监听的程序名,当不清楚mysql的监听端口时比较好用
6 R8 N5 K3 L# a7 YActive Internet connections (only servers)
- M7 D8 L l6 ^ Z7 u/ F/ mProto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 7 U Q. Z; }' }, N) U3 _9 a. O) L
tcp 0 0 *:rrac *:* LISTEN -
0 u9 Z" m, R- ^- j: Ktcp 0 0 *:34006 *:* LISTEN 23425/mysqld
% X, d8 Q: O2 V......
1 J& f% W" R/ q/ G2 P( S7 S$ ^$ Z7 v$ h/ A7 I+ u/ K
! Y* h; B- k8 `4 _" c3) netstat -tl | grep 340064 V: F/ p, Z9 P# G4 L
只查看mysql的监听端口,当前启动的mysql端口为34006,明确知道mysql监听端口时使用; R8 u) n" _* N; j
2 e1 _! O) O$ P1 W. R/ X6 A) w; T4) netstat -ta | grep 34006
5 N x9 `/ W6 `! A. |. ~tcp 0 0 *:34006 *:* LISTEN
$ T1 D1 S; Z2 ^, {4 m+ ttcp 0 0 linux.local:34006 linux.local:41485 ESTABLISHED 1 C$ B9 t& R0 ?
tcp 0 0 linux.local:34006 linux.local:41486 ESTABLISHED 5 t$ Z2 g6 L% {
..." U/ m( T" h" i8 e( c
tcp 0 0 10.3.2.35:41488 10.3.2.35:34006 ESTABLISHED
% W* d z( P2 Stcp 0 0 10.3.2.35:41489 10.3.2.35:34006 ESTABLISHED & r7 S d% S/ x9 \8 Z5 H
tcp 0 0 10.3.2.35:41490 10.3.2.35:34006 ESTABLISHED 8 \$ k; [" l1 j& O
7 c: V: E8 I' S
由于数据库和运用程序都放在同一台机器了,因此这里连接被显示了两次. 可以使用-p参数来显示PID,然后grep PID.2 p1 P; H8 J, c0 F5 J
7 E$ B# K6 O& v% v2 j# Y
1 C1 j v: M+ n5) netstat -tap | grep 34006 | grep 23425
( D# q; R. h0 j4 v 23425是当前mysql的PID; X6 b! Y1 } u( t% @
tcp 0 0 *:34006 *:* LISTEN 23425/mysqld ' x/ D! R! C' X, l8 [
tcp 0 0 linux.local:34006 linux.local:41510 ESTABLISHED 23425/mysqld
9 W$ I9 [% u) m |: ztcp 0 0 linux.local:34006 linux.local:41511 ESTABLISHED 23425/mysqld
& K' k7 J; v5 f1 rtcp 0 0 linux.local:34006 linux.local:41516 ESTABLISHED 23425/mysqld 从 整体上看,netstat的输出结果可以分为两个部分,一个是Active Internet connections,称为有源TCP连接,另一个是Active UNIX domain sockets,称为有源Unix域套接口。在上面的输出结果中,第一部分有5个输出结果,显示有源TCP连接的情况,而第二部分的输出结果显示的是 Unix域套接口的连接情况。Proto显示连接使用的协议;RefCnt表示连接到本套接口上的进程号;Types显示套接口的类型;State显示套 接口当前的状态;Path表示连接到套接口的其它进程使用的路径名。
( `5 C2 @9 V- f) m6 B! Q事实上,netstat是若干个工具的汇总。
* c5 b4 s4 O% J. B9 U: Z9 |& I( n: k0 o
◆ 显示路由表* l/ ~3 o7 l. F. G a
在随- r标记一起调用n e t s t a t时,将显示内核路由表,就像我们利用r o u t e命令一样。产生的输出如下:: B5 e9 R$ T( i8 x0 C
. m& Q0 O' a' S# }. a) K3 m[root@machine1 /]$ netstat -nr/ C3 ]1 y5 ^$ ~6 m s' l
Kernel IP routing table* @# s& f% U* B6 N7 b7 c% J! t2 b d
Destination Gateway Genmask Flags MSS Window irtt Iface3 l6 a- P1 K' N; \
210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
5 K: c* l1 d; Z( V5 ^" w192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
8 m n- P! B# b; q127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo) q" x3 T# W% @/ w: t
0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth0/ E9 B; X; v9 E) R2 p ]! W9 S
2 i% d y6 w% x$ Y
- n 选项令netstat以点分四段式的形式输出IP地址,而不是象征性的主机名和网络名。如果想避免通过网络查找地址(比如避开DNS或NIS服务器),这一点是特别有用的。. m* K# A( l' l, k6 a" f y
netstat 输出结果中,第二列展示的是路由条目所指的网关,如果没有使用网关,就会出现一个星号(*)或者0.0.0.0;第三列展示路由的概述,在为具体的I P地址找出最恰当的路由时,内核将查看路由表内的所有条目,在对找到的路由与目标路由比较之前,将对I P地址和genmask进行按位“与”计算;第四列显示了不同的标记,这些标记的说明如下:( k" z" @* H+ _
4 Q4 X' V* n' m0 P) R: `9 X
■ G 路由将采用网关。( n! e8 x! g Q @; U. m8 ~% |
■ U 准备使用的接口处于“活动”状态。# Y: k: \) F: }
■ H 通过该路由,只能抵达一台主机。& M3 ^; ?" n1 L' j1 N8 `
■ D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。; x( [0 m5 _( W6 t: ~
■ M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。
9 S4 W1 D" Z; s1 H; S0 d9 |8 x# J
2 j" k G, t$ d, R8 L, d, [: onetstat输出结果的Iface显示该连接所用的物理网卡,如eth0表示用第一张,eth1表示用第二张。
+ h6 m% ]. c" B, U3 y1 I: @8 k0 [: r4 ?( F5 X8 h
◆ 显示接口特性9 S- H% _- \7 ?: d6 ~' Z/ K
1 y s; F4 e% t6 d: N X在随- i标记一起调用时, netstat将显示网络接口的当前配置特性。除此以外,如果调用时还带上-a选项,它还将输出内核中所有接口,并不只是当前配置的接口。netstat-i的输出结果是这样的:3 i8 c0 f% m' S1 Y8 ~+ l$ T* U$ w
0 g& u( b. G$ R- |; @& x/ m[root@machine1 /]$ netstat -i, m. V* r$ A+ r) A$ c" `% Q: b+ O7 G
Kernel Interface table8 N# [0 X% B5 G/ @9 e% D- f u
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
3 v# B% ~: f9 X2 Y5 J6 x( Q {eth0 1500 0 787165 0 0 1 51655 0 0 0 BRU
# J" A7 _1 C5 D8 }0 Aeth1 1500 0 520811 0 0 0 1986 0 0 0 BRU, _% I9 K; a: x, E
lo 3924 0 1943 0 0 0 43 0 0 0 LRU: Z5 I0 `9 v5 j
( \- Q3 h0 T5 V! }0 }MTU 和Met字段表示的是接口的MTU和度量值值;RX和TX这两列表示的是已经准确无误地收发了多少数据包( RX - OK / TX - OK)、产生了多少错误( RX-ERR/TX-ERR)、丢弃了多少包(RX-DRP/TX-DRP),由于误差而遗失了多少包(RX-OVR/TX-OVR);最后一列展示的是 为这个接口设置的标记,在利用ifconfig显示接口配置时,这些标记都采用一个字母。它们的说明如下:5 ]7 J6 A4 [" a6 z9 k& M4 m& j
( ]: ]# Y9 h h, H
■ B 已经设置了一个广播地址。
" [0 Q U0 ]# d. _+ L# n■ L 该接口是一个回送设备。7 X# d" N0 J7 d- k( t% G
■ M 接收所有数据包(混乱模式)。: q) n3 M: a* z$ r, ]
■ N 避免跟踪。
# s. Q5 \" [& J. P* X/ ~1 C+ n$ X■ O 在该接口上,禁用A R P。# B8 j' L/ D) |$ o
■ P 这是一个点到点链接。0 Z; m7 {' D3 ]) J& R8 P" b9 V
■ R 接口正在运行。2 S4 A+ G% P& l7 q+ W4 L) {
■ U 接口处于“活动”状态。9 p9 s6 g' u# H# F; n( h6 B9 b8 v
8 E7 Z9 a- w1 z: V
◆ 显示链接
! I% [. h- a% q4 fnetstat 支持用于显示活动或被动套接字的选项集。选项- t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。如果你另外还提供了一个- a标记,还会显示出等待连接(也就是说处于监听模式)的套接字。这样就可以得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。; W! v4 ], F) @' o" u7 U8 V4 M$ m8 G& R
+ ~ d. }+ M7 G# \* E7 a2 [1 ` P d调用netstat -ta时,输出结果如下:3 |) W( x0 }4 U8 Y! J
) o0 |2 X7 k; U7 J9 C
[root@machine1 /]$ netstat -ta
0 r& f; `' p! O# y) r, |/ G1 b: ^Active Internet connections (servers and established)- e) E* W! O- F7 p8 p
Proto Recv-Q Send-Q Local Address Foreign Address State
7 l, h* W" f+ h3 E4 b5 Jtcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
% F* c! }' _* ?- T1 q) z' ^tcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED* H0 c* G/ A" o }) S
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED/ B+ Y0 W! W7 {8 q0 }. U
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
# u2 Q5 c1 A& Q. ]tcp 0 0 *:9001 *:* LISTEN
* n: C5 Y& p# x# \3 D/ U# e' } stcp 0 0 *:6000 *:* LISTEN
! t9 P" p3 ]' M3 W8 s) I( ntcp 0 0 *:socks *:* LISTEN- V/ ?" m6 j6 g5 V* j" H$ q+ L
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE
b& \; |3 O# L) e6 r* ?4 ~ p. T# l; \! K
上 面的输出表明部分服务器处于等待接入连接状态。利用- a选项的话,netstat还会显示出所有的套接字。注意根据端口号,可以判断出一条连接是否是外出连接。对呼叫方主机来说,列出的端口号应该一直是一个 整数,而对众所周知服务(well known service)端口正在使用中的被呼叫方来说,netstat采用的则是取自/etc/services文件的象征性服务名。 |
|