找回密码
 注册
关于网站域名变更的通知
查看: 289|回复: 1
打印 上一主题 下一主题

netstat

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-21 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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文件的象征性服务名。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 22:20 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表