参考文献

netstat

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@linux ~]# netstat -[rn]       <==与路由有关的参数 
[root@linux ~]# netstat -[antulpc] <==与网络接口有关的参数
参数:
与路由(route) 有关的参数说明:
-r : 列出路由表(route table),功能如同 route 这个指令;
-n : 不使用主机名称与服务名称,使用 IP 与 port number ,如同 route -n
与网络接口有关的参数:
-a : 列出所有的联机状态,包括 tcp/udp/unix socket 等;
-t : 仅列出 TCP 封包的联机;
-u : 仅列出 UDP 封包的联机;
-l : 仅列出有在 Listen(监听) 的服务之网络状态;
-p : 列出 PID 与 Program 的檔名;
-c : 可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网络状态的显示;
  • -i展示网络接口信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# netstat -ni
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br-2a3d5 1500 196777 0 0 0 43206 0 0 0 BMRU
br-3fa64 1500 0 0 0 0 0 0 0 0 BMU
br-5e678 1500 0 0 0 0 0 0 0 0 BMU
br-5f963 1500 0 0 0 0 0 0 0 0 BMU
br-6652d 1500 2580812 0 0 0 2020823 0 0 0 BMRU
br-7564d 1500 5157164 0 0 0 5025820 0 0 0 BMRU
br-937b7 1500 502043 0 0 0 1419976 0 0 0 BMRU
br-9ad2d 1500 0 0 0 0 0 0 0 0 BMU
br-c0f1f 1500 2116360 0 0 0 2290903 0 0 0 BMRU
br-d5e2f 1500 6877 0 0 0 7163 0 0 0 BMRU
br-d7778 1500 352 0 0 0 376 0 0 0 BMU
br-efada 1500 0 0 0 0 0 0 0 0 BMU
br-fcb53 1500 0 0 0 0 0 0 0 0 BMU
docker0 1500 6687 0 0 0 32119 0 0 0 BMRU
eno1 1500 146017992 0 24 0 84067809 0 0 0 BMRU
eno2 1500 0 0 0 0 0 0 0 0 BMU
eno3 1500 0 0 0 0 0 0 0 0 BMU
eno4 1500 0 0 0 0 0 0 0 0 BMU
lo 65536 65658 0 0 0 65658 0 0 0 LRU
veth6433 1500 5203 0 0 0 23533 0 0 0 BMRU
  • -r展示路由表
1
2
3
4
5
6
7
# netstat -nr
内核 IP 路由表
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 eno1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
  • 对于一个给定的路由器,可以打印出五种不同的标志(flag):
    • U 该路由可以使用.
    • G 该路由是到一个网关(路由器).如果没有设置该标志,说明目的地是直接相连的.G标志区分了直接路由和间接路由
    • H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址.如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合.
    • D 该路由是由重定向报文创建的
    • M 该路由已被重定向报文修改

示例

  • 查看TCP应用

    1
    netstat -ntlp
  • 查看TCP连接状态

    1
    netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
  • 查看UDP应用

    1
    netstat -utlp
  • 统计当前连接的一些状态情况

    1
    2
    3
    4
    5
    netstat -nat | awk '{print $6}' | tail -n +2 | sort | uniq -c | sort -rn
    86 ESTABLISHED
    51 LISTEN
    1 TIME_WAIT
    1 Foreign
  • 查看每个IP跟服务器建立的连接数

    1
    netstat -nat|awk '{print$5}'|tail -n +3| awk -F : '{print$1}'| grep -v '^$'|sort|uniq -c|sort -rn 
  • 查找80端口请求数最高的前20个IP

    1
    netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n2
  • 查看网络丢失情况

    1
    netstat -i 3
    • 关注:RX-DRP、TX-DRP,如果两个任何一个有值,或者都有值,肯定是网络出了问题(该值是历史累加数据,不是瞬间数据)
  • 显示所有端口的统计信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    # netstat -s
    Ip:
    Forwarding: 1
    72722390 total packets received
    9 with invalid addresses
    33019433 forwarded
    0 incoming packets discarded
    37736030 incoming packets delivered
    // 略
    Icmp:
    795 ICMP messages received
    22 input ICMP message failed
    ICMP input histogram:
    destination unreachable: 674
    timeout in transit: 28
    echo requests: 89
    echo replies: 4
    2804 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
    destination unreachable: 2639
    echo requests: 84
    echo replies: 81
    IcmpMsg:
    InType0: 4
    InType3: 674
    InType8: 89
    // 略
    Tcp:
    2562111 active connection openings
    929 passive connection openings
    2555538 failed connection attempts
    187 connection resets received
    // 略
    Udp:
    2906565 packets received
    1221 packets to unknown port received
    0 packet receive errors
    944868 packets sent
    // 略
    UdpLite:
    TcpExt:
    16 resets received for embryonic SYN_RECV sockets
    87 ICMP packets dropped because they were out-of-window
    1671 TCP sockets finished time wait in fast timer
    1 packetes rejected in established connections because of timestamp
    // 略
    IpExt:
    InNoRoutes: 643
    InTruncatedPkts: 2
    InMcastPkts: 783380
    OutMcastPkts: 6962
    // 略