Команда netstat показывает статус сети, статистику сетевых интерфейсов, таблицу маршрутизации, и и статистику по различным протоколам.
Ниже приведены часто используемые параметры с данной командой
$ netstat [-i] [-r] [-s]
-i Показывает статистику TCP/IP на интерфейсах
-r Выводит таблицу маршрутизации
-s Выводит статистику для протоколов UDP, TCP, ICMP и IGMP
Дополнительные параметры можно посмотреть
$man -s 1M netstat
Пример проверки статуса сети:
alexs@proxy # netstat -i
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
lo0 8232 loopback localhost 283 0 283 0 0 0
bge0 1500 192.168.0.0 192.168.0.1 6810712 0 3073147 0 0 0
ce0 1500 proxy proxy 5605484 0 4386934 0 0 0
Как видим вывод команды netstat -i показывает статус интерфейсов и информацию о TCP/IP трафике на них. Данный вывод демонстрирует количество переданных и полученных пакетов на каждом интерфейсе. На машине с активным сетевым интерфейсом следует обращать внимание на увеличение параметров Ipkts и Opkts. Чтобы вычислить процент коллизий в сети необходимо поделить Collis (количество коллизий) на Opkts(количество выходящих пакетов). В приведённом примере коллизий нет, сеть работает отлично. Если процент коллизий в сети больше 10 % - это говорит о наличии проблем в сети.
Чтобы вычислить процент ошибок на входящем трафике делим Ierrs/Ipkts на исходящем Oerrs/Opkts. Если полученное число больше чем 0.25 , это может показывать о том что пакеты пропадают.
Следующий пример показывает подробную статистику по протоколам
alexs@proxy # netstat -s
RAWIP rawipInDatagrams = 0 rawipInErrors = 0
rawipInCksumErrs = 0 rawipOutDatagrams = 0
rawipOutErrors = 0
UDP udpInDatagrams = 13702 udpInErrors = 0
udpOutDatagrams = 41305 udpOutErrors = 0
TCP tcpRtoAlgorithm = 4 tcpRtoMin = 400
tcpRtoMax = 60000 tcpMaxConn = -1
tcpActiveOpens = 41438 tcpPassiveOpens = 34767
tcpAttemptFails = 809 tcpEstabResets = 8580
tcpCurrEstab = 1 tcpOutSegs =795723
tcpOutDataSegs =1046454 tcpOutDataBytes =931178606
tcpRetransSegs = 2176 tcpRetransBytes =173844
tcpOutAck =675329 tcpOutAckDelayed = 99124
tcpOutUrg = 0 tcpOutWinUpdate = 111
tcpOutWinProbe = 76 tcpOutControl =154764
tcpOutRsts = 10224 tcpOutFastRetrans = 0
tcpInSegs =924313
tcpInAckSegs =613145 tcpInAckBytes =928370214
tcpInDupAck = 53546 tcpInAckUnsent = 0
tcpInInorderSegs =968836 tcpInInorderBytes =824529564
tcpInUnorderSegs = 22370 tcpInUnorderBytes =18553809
tcpInDupSegs = 14277 tcpInDupBytes =411071
tcpInPartDupSegs = 5 tcpInPartDupBytes = 2797
tcpInPastWinSegs = 0 tcpInPastWinBytes = 0
tcpInWinProbe = 11 tcpInWinUpdate = 72
tcpInClosed = 1825 tcpRttNoUpdate = 7510
tcpRttUpdate =558042 tcpTimRetrans = 1039
tcpTimRetransDrop = 10 tcpTimKeepalive = 20
tcpTimKeepaliveProbe= 15 tcpTimKeepaliveDrop = 1
tcpListenDrop = 0 tcpListenDropQ0 = 0
tcpHalfOpenDrop = 0 tcpOutSackRetrans = 8
IPv4 ipForwarding = 1 ipDefaultTTL = 255
ipInReceives =7296032 ipInHdrErrors = 0
ipInAddrErrors = 0 ipInCksumErrs = 0
ipForwDatagrams =5520348 ipForwProhibits = 0
ipInUnknownProtos = 0 ipInDiscards = 23
ipInDelivers = 20871 ipOutRequests =1939658
ipOutDiscards = 0 ipOutNoRoutes = 0
ipReasmTimeout = 60 ipReasmReqds = 0
ipReasmOKs = 0 ipReasmFails = 0
ipReasmDuplicates = 0 ipReasmPartDups = 0
ipFragOKs = 0 ipFragFails = 0
ipFragCreates = 0 ipRoutingDiscards = 0
tcpInErrs = 90 udpNoPorts = 27233
udpInCksumErrs = 0 udpInOverflows = 0
rawipInOverflows = 0 ipsecInSucceeded = 0
ipsecInFailed = 0 ipInIPv6 = 0
ipOutIPv6 = 0 ipOutSwitchIPv6 = 0
IPv6 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255
ipv6InReceives = 0 ipv6InHdrErrors = 0
ipv6InTooBigErrors = 0 ipv6InNoRoutes = 0
ipv6InAddrErrors = 0 ipv6InUnknownProtos = 0
ipv6InTruncatedPkts = 0 ipv6InDiscards = 0
ipv6InDelivers = 0 ipv6OutForwDatagrams= 0
ipv6OutRequests = 0 ipv6OutDiscards = 0
ipv6OutNoRoutes = 0 ipv6OutFragOKs = 0
ipv6OutFragFails = 0 ipv6OutFragCreates = 0
ipv6ReasmReqds = 0 ipv6ReasmOKs = 0
ipv6ReasmFails = 0 ipv6InMcastPkts = 0
ipv6OutMcastPkts = 0 ipv6ReasmDuplicates = 0
ipv6ReasmPartDups = 0 ipv6ForwProhibits = 0
udpInCksumErrs = 0 udpInOverflows = 0
rawipInOverflows = 0 ipv6InIPv4 = 0
ipv6OutIPv4 = 0 ipv6OutSwitchIPv4 = 0
ICMPv4 icmpInMsgs = 548 icmpInErrors = 0
icmpInCksumErrs = 0 icmpInUnknowns = 0
icmpInDestUnreachs = 162 icmpInTimeExcds = 25
icmpInParmProbs = 0 icmpInSrcQuenchs = 0
icmpInRedirects = 0 icmpInBadRedirects = 0
icmpInEchos = 361 icmpInEchoReps = 0
icmpInTimestamps = 0 icmpInTimestampReps = 0
icmpInAddrMasks = 0 icmpInAddrMaskReps = 0
icmpInFragNeeded = 0 icmpOutMsgs = 21686
icmpOutDrops = 0 icmpOutErrors = 0
icmpOutDestUnreachs = 21321 icmpOutTimeExcds = 4
icmpOutParmProbs = 0 icmpOutSrcQuenchs = 0
icmpOutRedirects = 0 icmpOutEchos = 0
icmpOutEchoReps = 361 icmpOutTimestamps = 0
icmpOutTimestampReps= 0 icmpOutAddrMasks = 0
icmpOutAddrMaskReps = 0 icmpOutFragNeeded = 0
icmpInOverflows = 0
ICMPv6 icmp6InMsgs = 0 icmp6InErrors = 0
icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0
icmp6InTimeExcds = 0 icmp6InParmProblems = 0
icmp6InPktTooBigs = 0 icmp6InEchos = 0
icmp6InEchoReplies = 0 icmp6InRouterSols = 0
icmp6InRouterAds = 0 icmp6InNeighborSols = 0
icmp6InNeighborAds = 0 icmp6InRedirects = 0
icmp6InBadRedirects = 0 icmp6InGroupQueries = 0
icmp6InGroupResps = 0 icmp6InGroupReds = 0
icmp6InOverflows = 0
icmp6OutMsgs = 0 icmp6OutErrors = 0
icmp6OutDestUnreachs= 0 icmp6OutAdminProhibs= 0
icmp6OutTimeExcds = 0 icmp6OutParmProblems= 0
icmp6OutPktTooBigs = 0 icmp6OutEchos = 0
icmp6OutEchoReplies = 0 icmp6OutRouterSols = 0
icmp6OutRouterAds = 0 icmp6OutNeighborSols= 0
icmp6OutNeighborAds = 0 icmp6OutRedirects = 0
icmp6OutGroupQueries= 0 icmp6OutGroupResps = 0
icmp6OutGroupReds = 0
IGMP:
0 messages received
0 messages received with too few bytes
0 messages received with bad checksum
0 membership queries received
0 membership queries received with invalid field(s)
0 membership reports received
0 membership reports received with invalid field(s)
0 membership reports received for groups to which we belong
0 membership reports sent
SCTP sctpRtoAlgorithm = vanj sctpRtoMin = 1000
sctpRtoMax = 60000 sctpRtoInitial = 3000
sctpMaxAssocs = -1 sctpValCookieLife = 60000
sctpMaxInitRetr = 8 sctpCurrEstab = 0
sctpActiveEstab = 0 sctpPassiveEstab = 0
sctpAborted = 0 sctpShutdowns = 0
sctpOutOfBlue = 0 sctpChecksumError = 0
sctpOutCtrlChunks = 0 sctpOutOrderChunks = 0
sctpOutUnorderChunks= 0 sctpRetransChunks = 0
sctpOutAck = 0 sctpOutAckDelayed = 0
sctpOutWinUpdate = 0 sctpOutFastRetrans = 0
sctpOutWinProbe = 0 sctpInCtrlChunks = 0
sctpInOrderChunks = 0 sctpInUnorderChunks = 0
sctpInAck = 0 sctpInDupAck = 0
sctpInAckUnsent = 0 sctpFragUsrMsgs = 0
sctpReasmUsrMsgs = 0 sctpOutSCTPPkts = 0
sctpInSCTPPkts = 0 sctpInInvalidCookie = 0
sctpTimRetrans = 0 sctpTimRetransDrop = 0
sctpTimHearBeatProbe= 0 sctpTimHearBeatDrop = 0
sctpListenDrop = 0 sctpInClosed = 0
Чтобы посмотреть таблицу маршрутизации набираем следующую команду
alexs@proxy # netstat -r
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
195.27.35.0 proxy U 1 858 ce0
192.168.0.0 192.168.0.1 U 1 1305 bge0
BASE-ADDRESS.MCAST.NET proxy U 1 0 ce0
default my.isp.ru UG 1 12935
localhost localhost UH 4 173 lo0
Значение в столбце Flags показывает следующее U – роутинг активизирован, G – маршрут до шлюза, H – маршрут до хоста, D - маршрут был динамически создан при использовании переадресовывания.
Есть полезный ключик -а , в связке с -r он выводит таблицу кэша маршрутизации, которая была осуществлена через данный хост.
Столбец Use показывает количество отправленных пакетов. А Interface выводит имена сетевых интерфейсов участвующих в маршрутизации пакетов.
Продолжение следует