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

netstat

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

4 D) q) ?  l/ Lnetstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,7 p# h; k4 T/ Y# w$ A
语  法:netstat [-acCeFghilMnNoprstuvVwx][-A网络类型>][--ip], i- [, [3 Z' e7 o. l! ?+ Y
补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。3 ?* [4 N2 w( g* h% o# e9 F
参  数:& d& D+ b" {. g0 b. U; i! R
-a或--all   显示所有连线中的Socket。
% D1 h  W$ b2 E$ V5 w1 K7 {-A网络类型>或--网络类型>   列出该网络类型连线中的相关地址。3 _" r& [& e4 S0 H0 ]1 T- x2 V
-c或--continuous   持续列出网络状态。
- a0 h/ s' Z' F) n-C或--cache   显示路由器配置的快取信息。
' g7 `* j) R$ I: j% C) @- k/ P2 E-e或--extend   显示网络其他相关信息。+ d& _/ P. `& j/ j, c% n
-F或--fib   显示FIB。
; o6 A+ T; X8 U# ?, ^; R9 J-g或--groups   显示多重广播功能群组组员名单。
- b: h0 E6 C  b7 h& ]# x+ s-h或--help   在线帮助。6 D$ Y0 L& {9 h$ ?" M2 N9 Z: G! F
-i或--inteRFaces   显示网络界面信息表单。
5 Z" @+ l8 ^5 b1 \  N-l或--listening   显示监控中的服务器的Socket。2 R! i" m+ ^( e5 |
-M或--masquerade   显示伪装的网络连线。
( u1 ^: y8 U5 [7 c  l-n或--numeric   直接使用IP地址,而不通过域名服务器。
4 d$ E8 c; Y4 D2 a# Y4 j-N或--netlink或--symbolic   显示网络硬件外围设备的符号连接名称。. i# i! X+ g  u7 p% M
-o或--timers   显示计时器。
$ B" `* \- C9 A: ?, ]-p或--programs   显示正在使用Socket的程序识别码和程序名称。
4 M2 l. k4 H; V  @-r或--route   显示Routing Table。' y1 k: r0 S( i
-s或--statistice   显示网络工作信息统计表。% f; Y5 |' S0 R2 c
-t或--tcp   显示TCP传输协议的连线状况。
' \! G- a0 A' Z3 y# ]% I-u或--udp   显示UDP传输协议的连线状况。3 _* z- i; v3 B: G
-v或--verbose   显示指令执行过程。: d4 j+ h: w% D! |) L0 o8 l
-V或--version   显示版本信息。
; ~+ v! ^0 n/ H% }. I- ~' O; d: X( t  _; F+ z-w或--raw   显示RAW传输协议的连线状况。
, w) J2 R1 R1 h/ ~8 l-x或--unix   此参数的效果和指定"-A unix"参数相同。6 j- v( B7 S: y6 j
--ip或--inet   此参数的效果和指定"-A inet"参数相同。
- L" z9 g( s1 |8 P* f$ {' @3 F* j. G( z2 V& @3 i
1) netstat -tl    -nltp/ D; L# r$ |  h+ i% A7 e
查看当前tcp监听端口
) Q) n% T* z; D$ h3 W& V% iActive Internet connections (only servers)1 O# A8 Z" O+ G  G8 n; n& S
Proto Recv-Q Send-Q Local Address           Foreign Address         State      ! ~3 U* z" o! y! B' e" i3 p" N
tcp        0      0 *:rrac                  *:*                     LISTEN      
7 m) O9 }+ A! d; K3 e" Otcp        0      0 *:34006                 *:*                     LISTEN      
3 b6 `) j. R& T' k- Q8 h# }......
. R; l& `& a5 X, G: l
- @. M8 Y1 l; W" U2) netstat -tlp9 _' {: [/ _9 D2 a# d* I7 @. G! ~
查看当前tcp监听端口, 需要显示监听的程序名,当不清楚mysql的监听端口时比较好用
4 d0 M( Q8 f1 T- T3 M- n5 {Active Internet connections (only servers)- N: J4 }" [+ D( E1 ]9 X0 t
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   ( A% L; {7 Q: ?' M4 i. k' e
tcp        0      0 *:rrac                  *:*                     LISTEN      -                          
  |. p/ \6 z. Ttcp        0      0 *:34006                 *:*                     LISTEN      23425/mysqld     b. L! S/ ]; V, Y1 `8 ]# L* Z
......) |3 j& |' c! y- e

3 ], E3 z# W! U: n1 q# E( ]' C9 Q& Z* l6 h" r" m
3) netstat -tl | grep 34006
: I% M! z% G5 S; r, f  p; ^    只查看mysql的监听端口,当前启动的mysql端口为34006,明确知道mysql监听端口时使用
4 ~/ i2 K1 J( P' K( I. @6 W( |
. Q7 z. n* |* T+ i7 Y4) netstat -ta | grep 340069 x1 {2 U* W2 v% q
tcp        0      0 *:34006                 *:*                     LISTEN      7 i8 x$ b9 I5 d% _( B' |: V
tcp        0      0 linux.local:34006       linux.local:41485       ESTABLISHED
, H" H9 ~6 c8 {. Gtcp        0      0 linux.local:34006       linux.local:41486       ESTABLISHED
; w$ G$ _. D5 O7 I# ~0 t& k, X...
2 J* m& }3 B1 o3 btcp        0      0 10.3.2.35:41488         10.3.2.35:34006         ESTABLISHED
# K% M0 ~9 @# otcp        0      0 10.3.2.35:41489         10.3.2.35:34006         ESTABLISHED % a; n. W& ?% |; M3 k# g
tcp        0      0 10.3.2.35:41490         10.3.2.35:34006         ESTABLISHED
% Q% r6 A( h/ \* ?$ r" v) V- Q- b9 J0 V8 n5 ~$ z- [: o
由于数据库和运用程序都放在同一台机器了,因此这里连接被显示了两次. 可以使用-p参数来显示PID,然后grep PID.
. |  T: h2 c. T1 g( ]
& F0 b* N  h' k2 E% c, y9 a6 s' H5 H8 {% p" {! [
5) netstat -tap | grep 34006 | grep 23425
% x! g& L( j. p. z. }- w7 w( ]    23425是当前mysql的PID4 S/ T( [8 y$ l
tcp        0      0 *:34006                 *:*                     LISTEN      23425/mysqld        2 g! T' X9 W) u  S
tcp        0      0 linux.local:34006       linux.local:41510       ESTABLISHED 23425/mysqld        
( i8 K5 K0 d& V- O3 |tcp        0      0 linux.local:34006       linux.local:41511       ESTABLISHED 23425/mysqld        ! g" J2 }* W$ k- S. r* U# o. V4 i; o
tcp        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 q; g2 t, n事实上,netstat是若干个工具的汇总。
" f: x0 x9 e' E; A, o1 D2 L0 i/ `1 A4 `. F8 y( @3 R
◆ 显示路由表% S: i: t# \3 ?1 x1 b- l
在随- r标记一起调用n e t s t a t时,将显示内核路由表,就像我们利用r o u t e命令一样。产生的输出如下:
# p" ?, a4 F6 L$ ~$ I2 C/ S/ I# r1 j6 r* X! v" g+ y
[root@machine1 /]$ netstat -nr
$ u/ q$ {7 |& V7 zKernel IP routing table' ]: B  f! b- Y( t5 C/ f5 @
Destination Gateway Genmask Flags MSS Window irtt Iface
* p4 r7 w1 C% U3 h210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0! j) r5 D5 K7 b
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
+ ~4 Z' u9 j1 W& a127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo* u, p4 x) Q; G5 F" c
0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth0, n' d3 \! f1 Q2 U  w3 x/ ?6 s
* `. {5 _/ V6 u1 y0 I
- n 选项令netstat以点分四段式的形式输出IP地址,而不是象征性的主机名和网络名。如果想避免通过网络查找地址(比如避开DNS或NIS服务器),这一点是特别有用的。. y# m, t1 Y& ]
netstat 输出结果中,第二列展示的是路由条目所指的网关,如果没有使用网关,就会出现一个星号(*)或者0.0.0.0;第三列展示路由的概述,在为具体的I P地址找出最恰当的路由时,内核将查看路由表内的所有条目,在对找到的路由与目标路由比较之前,将对I P地址和genmask进行按位“与”计算;第四列显示了不同的标记,这些标记的说明如下:; s. j$ D& G5 f! v- I2 n5 b

0 M$ s8 l5 k; F3 u# Z5 P. Y, k■ G 路由将采用网关。# Y/ Z8 ]' o' z* p. g) f4 p
■ U 准备使用的接口处于“活动”状态。+ J: k8 |9 Z: ]# B4 ^
■ H 通过该路由,只能抵达一台主机。2 v5 F( I3 G: @# o! ~( V, n9 k3 {6 B/ j
■ D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。
$ [, x9 v0 y# k: b■ M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。
- b: j$ v  R2 k: ], W1 K# |* ^' K! r/ s8 Q
netstat输出结果的Iface显示该连接所用的物理网卡,如eth0表示用第一张,eth1表示用第二张。
" q6 ^0 q3 w7 X) x) W. l6 c1 U$ _
& q7 k! m% Y( f% I4 j; k◆ 显示接口特性
, H. \" V/ N, a5 V6 [8 ?$ j5 f) Y" D5 i2 V" ?! B6 h, C& \8 m
在随- i标记一起调用时, netstat将显示网络接口的当前配置特性。除此以外,如果调用时还带上-a选项,它还将输出内核中所有接口,并不只是当前配置的接口。netstat-i的输出结果是这样的:0 G2 C2 H: m  Z6 p& \& s2 j

! [; z  Y6 V  w" E[root@machine1 /]$ netstat -i
* I) R' D* V, F# Q# q" x2 w* @' @Kernel Interface table2 o: \& X* z5 F& N8 ]; u0 H; G! l
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
7 r, k! ]/ }2 p3 c; k& ~9 {eth0 1500 0 787165 0 0 1 51655 0 0 0 BRU
7 i. q' Q. |9 K4 \! Z9 leth1 1500 0 520811 0 0 0 1986 0 0 0 BRU
/ s1 V& Y1 e% V! P8 }lo 3924 0 1943 0 0 0 43 0 0 0 LRU- V+ w5 j! c) h+ O- A$ k
% ^* j' w5 I/ P3 h# L/ ~& Y8 |+ F" x
MTU 和Met字段表示的是接口的MTU和度量值值;RX和TX这两列表示的是已经准确无误地收发了多少数据包( RX - OK / TX - OK)、产生了多少错误( RX-ERR/TX-ERR)、丢弃了多少包(RX-DRP/TX-DRP),由于误差而遗失了多少包(RX-OVR/TX-OVR);最后一列展示的是 为这个接口设置的标记,在利用ifconfig显示接口配置时,这些标记都采用一个字母。它们的说明如下:
7 [8 _$ C! Q& F0 a" z* |( ]' x$ x  i! q$ j. h9 n2 K
■ B 已经设置了一个广播地址。
% x$ X9 L$ V  z9 l0 l" q■ L 该接口是一个回送设备。2 ]! g1 K$ W" [: ^
■ M 接收所有数据包(混乱模式)。7 v' L" S( B! f7 d# v/ w
■ N 避免跟踪。
1 b5 ~* p( @1 ?6 }9 z■ O 在该接口上,禁用A R P。4 e! e# q$ x9 z1 L, B% c" ?& K1 V
■ P 这是一个点到点链接。
# b' b3 V+ V' T& M■ R 接口正在运行。
0 [8 Y2 z: q8 t3 b' J■ U 接口处于“活动”状态。  y( L+ Y7 Q3 C
- q; C6 I* E4 Y5 r7 `8 u
◆ 显示链接* K9 K3 m3 X" q) k1 g
netstat 支持用于显示活动或被动套接字的选项集。选项- t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。如果你另外还提供了一个- a标记,还会显示出等待连接(也就是说处于监听模式)的套接字。这样就可以得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。
- e. k; ~* M1 g& {; [9 P/ ?) r8 v; @
调用netstat -ta时,输出结果如下:
6 ?8 @2 R* Y9 ~  Y3 {5 \  ]# h& t& M2 K6 ~! s- H2 A# r
[root@machine1 /]$ netstat -ta5 M6 H# p: `# G
Active Internet connections (servers and established)
- h0 }7 Z/ U' o( UProto Recv-Q Send-Q Local Address Foreign Address State9 @( v& h; u/ P$ o, l; b
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED  O  E# p: K% |* h2 e2 ?+ m
tcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED# D3 i$ P" B) K0 b( t0 ~6 a
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED8 C, W7 T, `) l2 D
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED0 E8 B, m7 {" b; t0 L& @: U
tcp 0 0 *:9001 *:* LISTEN
3 I: o* O# C! T9 etcp 0 0 *:6000 *:* LISTEN) s# F1 H/ u. L
tcp 0 0 *:socks *:* LISTEN! G8 ]1 ?% W7 U; T% R9 k
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE & b$ r  e3 d) M  X' X

9 I6 t0 m2 p% z# y上 面的输出表明部分服务器处于等待接入连接状态。利用- a选项的话,netstat还会显示出所有的套接字。注意根据端口号,可以判断出一条连接是否是外出连接。对呼叫方主机来说,列出的端口号应该一直是一个 整数,而对众所周知服务(well known service)端口正在使用中的被呼叫方来说,netstat采用的则是取自/etc/services文件的象征性服务名。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-25 13:47 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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