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

netstat

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1 g7 N. P4 p" |9 ]; x% q
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,, Z0 z8 J% F" V  Q. v) C7 {
语  法:netstat [-acCeFghilMnNoprstuvVwx][-A网络类型>][--ip]: u4 W* L9 ]6 E
补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。
0 `; G3 F7 R5 _: L参  数:/ T1 v: ?. o5 w+ `
-a或--all   显示所有连线中的Socket。6 R& S# \! [1 d, l/ U
-A网络类型>或--网络类型>   列出该网络类型连线中的相关地址。1 m( P) v! N# c; \* x- K% i0 Y
-c或--continuous   持续列出网络状态。
$ x: Q- i: A' z-C或--cache   显示路由器配置的快取信息。2 M/ x. b: A- b) ~! w# N9 H
-e或--extend   显示网络其他相关信息。
7 q. ~% ]7 g- N& w-F或--fib   显示FIB。0 D& }9 T( G7 X2 @, [
-g或--groups   显示多重广播功能群组组员名单。$ ^+ b: o4 m6 ]8 i
-h或--help   在线帮助。$ k' i- Y1 C# e7 I
-i或--inteRFaces   显示网络界面信息表单。# V; U) e. j- D9 h
-l或--listening   显示监控中的服务器的Socket。
  h+ M; ]( a7 i-M或--masquerade   显示伪装的网络连线。
  o/ n- y& P7 w/ S% M! j9 m" @-n或--numeric   直接使用IP地址,而不通过域名服务器。) s$ w" i4 {5 f5 {/ _
-N或--netlink或--symbolic   显示网络硬件外围设备的符号连接名称。# A+ t5 H/ {- R/ r+ v5 a: l( u9 }& V
-o或--timers   显示计时器。$ b3 Y; p' p9 U( P0 ?8 L9 e
-p或--programs   显示正在使用Socket的程序识别码和程序名称。
* b: G' P( {8 ]5 I6 D-r或--route   显示Routing Table。* J8 @1 w5 S$ K# f' R
-s或--statistice   显示网络工作信息统计表。6 J$ V; W+ ?( N0 o* G, k# x
-t或--tcp   显示TCP传输协议的连线状况。
# Q' w$ G3 ]% Z8 w! K-u或--udp   显示UDP传输协议的连线状况。
+ W$ P$ \, @) A# K1 s. ]-v或--verbose   显示指令执行过程。3 Y2 ^; z0 h; l
-V或--version   显示版本信息。
4 t- G' a* x9 X3 x% y  U. _-w或--raw   显示RAW传输协议的连线状况。( C. p/ Z* H. q% X. z2 x
-x或--unix   此参数的效果和指定"-A unix"参数相同。
8 G2 B. g# ^/ P8 Y$ }, t--ip或--inet   此参数的效果和指定"-A inet"参数相同。+ ?4 S, o& @) Z/ R

5 \& W7 W+ {( A2 v( X2 T/ B1) netstat -tl    -nltp
0 x% s+ ?/ X! Z( ~4 R( r6 Y查看当前tcp监听端口
' r3 p# @( K& G. X% kActive Internet connections (only servers)
; @; T9 i2 A! C2 ?( pProto Recv-Q Send-Q Local Address           Foreign Address         State        [2 L; P$ f8 D+ X; k' a
tcp        0      0 *:rrac                  *:*                     LISTEN      8 Y8 ^  o/ H5 ^: ~5 v
tcp        0      0 *:34006                 *:*                     LISTEN      
1 v+ t# o8 V- a& w2 b......  m$ V+ ~8 Y( c7 N) `% q( M: P! b
- L, u( X5 U/ d9 w1 ~
2) netstat -tlp
/ A" A9 [+ w& T查看当前tcp监听端口, 需要显示监听的程序名,当不清楚mysql的监听端口时比较好用4 e( a* @, ~% v* o* P) A) D& J
Active Internet connections (only servers)
& N+ H7 O8 `7 v$ UProto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
1 ~( j) l3 m+ |' s& E4 ^2 Dtcp        0      0 *:rrac                  *:*                     LISTEN      -                          1 E1 E+ ^+ U: Y" A
tcp        0      0 *:34006                 *:*                     LISTEN      23425/mysqld   
" @) G" B) ^6 v) I4 I$ o! f......
  X& M7 k4 p& i% X; p) q8 p& {1 K9 L- b$ O, B" C8 R6 }
" I8 h9 O, D2 I6 `" F% \2 `
3) netstat -tl | grep 34006
% g3 _! P) X- F& Y8 v- V6 A% P2 h    只查看mysql的监听端口,当前启动的mysql端口为34006,明确知道mysql监听端口时使用
5 V' |- C" _7 |" L* Y9 Z& ]7 \. v4 ~, J' S
4) netstat -ta | grep 340063 P" Q/ h$ \& Z4 a, Z' E- o
tcp        0      0 *:34006                 *:*                     LISTEN      
8 {) O/ D: I; A9 Z9 Xtcp        0      0 linux.local:34006       linux.local:41485       ESTABLISHED 6 i0 g4 w+ X5 S8 C
tcp        0      0 linux.local:34006       linux.local:41486       ESTABLISHED
' l* f2 a/ D  ]% K: N/ u8 h9 `...3 E& w/ B' B8 ]. U- B
tcp        0      0 10.3.2.35:41488         10.3.2.35:34006         ESTABLISHED
/ j4 ?0 X3 ]- D- |6 r8 l) ~tcp        0      0 10.3.2.35:41489         10.3.2.35:34006         ESTABLISHED
$ n' F. H  J: J2 vtcp        0      0 10.3.2.35:41490         10.3.2.35:34006         ESTABLISHED
0 Q( a+ `" _7 H+ [1 _- E: F* D$ R- H6 q
由于数据库和运用程序都放在同一台机器了,因此这里连接被显示了两次. 可以使用-p参数来显示PID,然后grep PID.
% ^1 L' i8 B5 ^7 ]$ U) G2 b/ p- N" M  V" A2 O6 y
& v& `- F* L9 S) T) r3 e
5) netstat -tap | grep 34006 | grep 23425
) v3 x) y5 u2 L( A# y: W    23425是当前mysql的PID
, y4 l0 x' b' M" `5 }$ p% ktcp        0      0 *:34006                 *:*                     LISTEN      23425/mysqld        
/ n  l6 @0 [# ?3 V1 m+ ]# X. @tcp        0      0 linux.local:34006       linux.local:41510       ESTABLISHED 23425/mysqld        
, |2 v) P2 D( ~; g4 D  B7 stcp        0      0 linux.local:34006       linux.local:41511       ESTABLISHED 23425/mysqld        3 w3 U1 K+ c: E; y9 z* Y( ~
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表示连接到套接口的其它进程使用的路径名。( ^0 {' V2 ]2 \
事实上,netstat是若干个工具的汇总。
, D* V2 x; f3 j4 U5 m. p1 I+ B
4 F  O" g( g9 Y  o  S◆ 显示路由表# ?' G% s4 @; b( b* @
在随- r标记一起调用n e t s t a t时,将显示内核路由表,就像我们利用r o u t e命令一样。产生的输出如下:
$ P' X( r* K' ^1 a# a
# j0 H2 n. V# m  S; d9 f[root@machine1 /]$ netstat -nr( w" Z4 W" A5 n; W- x- t+ O% R
Kernel IP routing table+ X. k0 G& Z% W8 \
Destination Gateway Genmask Flags MSS Window irtt Iface
& \  Q  E! ?  |$ c( k2 `* ?) E210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0$ J5 R* b4 C# F# C7 |
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth12 q; G# v* y# g, L
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
% \. [7 z6 G# s4 A0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth08 d* t8 D' H0 k4 }7 w# U

- E2 O  L/ ]# \) d  c- n 选项令netstat以点分四段式的形式输出IP地址,而不是象征性的主机名和网络名。如果想避免通过网络查找地址(比如避开DNS或NIS服务器),这一点是特别有用的。; i1 U0 q* ]( P7 z( k6 ?7 H
netstat 输出结果中,第二列展示的是路由条目所指的网关,如果没有使用网关,就会出现一个星号(*)或者0.0.0.0;第三列展示路由的概述,在为具体的I P地址找出最恰当的路由时,内核将查看路由表内的所有条目,在对找到的路由与目标路由比较之前,将对I P地址和genmask进行按位“与”计算;第四列显示了不同的标记,这些标记的说明如下:
; q# W  m5 K; o3 A" u
* Q; b# y6 l- K0 J* T9 K■ G 路由将采用网关。
3 ]3 r% ?" T: S* I+ m8 B7 ~) \■ U 准备使用的接口处于“活动”状态。
& ~. ~# X4 L( z  R■ H 通过该路由,只能抵达一台主机。
5 {9 |% e; `! g: h( l. W■ D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。
  M0 L& K& O# J- x1 W7 u5 R% P7 {) L$ K■ M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。0 l$ r, q: O0 }! a
; D5 b! a# h, x0 k9 s
netstat输出结果的Iface显示该连接所用的物理网卡,如eth0表示用第一张,eth1表示用第二张。5 R' J9 z4 a9 {9 t6 |' B
. a5 U# K1 ]5 l, n( g/ I
◆ 显示接口特性9 Y+ F+ l) q! [" v
0 V* A: Z) t& ^
在随- i标记一起调用时, netstat将显示网络接口的当前配置特性。除此以外,如果调用时还带上-a选项,它还将输出内核中所有接口,并不只是当前配置的接口。netstat-i的输出结果是这样的:. l7 o( h4 {) u# B
6 ?! a) r" A" v; j
[root@machine1 /]$ netstat -i" o- t6 W5 Z3 P! }$ [
Kernel Interface table
1 d; H) j7 v2 xIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
$ F1 O( j7 o- r/ V9 keth0 1500 0 787165 0 0 1 51655 0 0 0 BRU; p! E6 W" m+ A6 k7 i9 g5 Z! N
eth1 1500 0 520811 0 0 0 1986 0 0 0 BRU
! O& V4 |+ ^+ H# r3 o6 Jlo 3924 0 1943 0 0 0 43 0 0 0 LRU' T8 p' f( l7 L. b

; T% l( v. P# R2 E  q; pMTU 和Met字段表示的是接口的MTU和度量值值;RX和TX这两列表示的是已经准确无误地收发了多少数据包( RX - OK / TX - OK)、产生了多少错误( RX-ERR/TX-ERR)、丢弃了多少包(RX-DRP/TX-DRP),由于误差而遗失了多少包(RX-OVR/TX-OVR);最后一列展示的是 为这个接口设置的标记,在利用ifconfig显示接口配置时,这些标记都采用一个字母。它们的说明如下:
2 @& d$ M6 N) }$ q6 k
! j& Q; W7 ^0 B8 m7 K■ B 已经设置了一个广播地址。4 o$ y1 E6 P, J
■ L 该接口是一个回送设备。
# y! y. W% j) `■ M 接收所有数据包(混乱模式)。7 i: n! A: z' m* e% |5 s: Z" U0 Y
■ N 避免跟踪。
: y; u6 x4 _  m8 L% j) o■ O 在该接口上,禁用A R P。; I/ n7 {% _3 T8 g- v
■ P 这是一个点到点链接。4 Z" P1 F3 q# z; r' c+ l
■ R 接口正在运行。/ f: `1 X& o  Z3 y9 \1 [5 ?
■ U 接口处于“活动”状态。5 F' v" d9 w# _

8 w+ A( w3 k/ {3 h% Y- @◆ 显示链接
/ @) j" u$ f+ B: x0 mnetstat 支持用于显示活动或被动套接字的选项集。选项- t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。如果你另外还提供了一个- a标记,还会显示出等待连接(也就是说处于监听模式)的套接字。这样就可以得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。
5 p% |, `  {% @, m6 Q& |7 X: r7 x
% J7 D  `7 ^9 Y2 \) v+ ?调用netstat -ta时,输出结果如下:
' X3 f( o* Z* T  x, ?4 h4 r1 @7 {% ^2 O
[root@machine1 /]$ netstat -ta
' L2 t: _/ B6 z% [/ x8 [Active Internet connections (servers and established)* o* f' g' D0 b* q* `/ w
Proto Recv-Q Send-Q Local Address Foreign Address State
" U( l2 V, b$ b6 N: M# Jtcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
7 U% [8 ?/ K0 i" etcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED; c; U! h7 n7 D6 B
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
  |( u# ^1 k$ }tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED3 K3 g, n5 N; u2 A& R
tcp 0 0 *:9001 *:* LISTEN
+ d2 q, H  n3 I$ {" }tcp 0 0 *:6000 *:* LISTEN
3 F0 g8 h: Y6 Q/ s5 Ytcp 0 0 *:socks *:* LISTEN' f1 t  [8 e* O8 c* _. l
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE 3 R4 R! F  g+ \, D
; V) k6 A; ]- W
上 面的输出表明部分服务器处于等待接入连接状态。利用- a选项的话,netstat还会显示出所有的套接字。注意根据端口号,可以判断出一条连接是否是外出连接。对呼叫方主机来说,列出的端口号应该一直是一个 整数,而对众所周知服务(well known service)端口正在使用中的被呼叫方来说,netstat采用的则是取自/etc/services文件的象征性服务名。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 17:35 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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