netstat -s
drukuje wiele bardzo szczegółowych statystyk protokołu, takich jak liczba odebranych komunikatów resetowania TCP lub liczba wysłanych komunikatów ICMP „żądanie echa” lub liczba pakietów odrzuconych z powodu braku trasy.
Kiedy w Linuksie netstat
jest obecnie uważany za przestarzały, to czy istnieje alternatywa?
Statystyki dostarczone przez ss -s
są powierzchowne w porównaniu do tych dostarczonych przez netstat
.
netstat
jest przestarzałe. Zastosowaniess
.tcpdump
pozwala przechwytywać ruch na żywo, ale nie przechowuje statystyk w sposóbnetstat -s
pokazany.sysctl
dane wyjściowe lub zawartość różnych/proc/net/*
węzłów.Odpowiedzi:
netstat
rzeczywiście została zaniechana przez wielu dystrybucji, choć to naprawdę dużo pakietu (w tym „net-tools”ifconfig
,route
aarp
) że została zaniechana na korzyść „iproute2” pakietu. iproute2 ewoluował wraz z najnowszymi funkcjami sieciowymi Linuksa , a tradycyjne narzędzia nie.Odpowiednik iproute2, który chcesz, jest mało znany
nstat
, zapewnianetstat -s
liczniki, choć w nieco innej formie:/proc
używane są surowe nazwy liczników, z których każda poprzedzona jest swoją klasą („Udp”, „Tcp”, „TcpExt” itp.)trzecia kolumna pokazuje średnią z konfigurowalnego okna czasowego, jeśli uruchomiłeś nstat w tle (
-d
tryb demona) lub 0.0, jeśli nienp.
nstat
wypisuje „UdpInDatagrams NNN”, a nie „Udp: InDatagrams”, a nie pełną wersję „Udp: NNN otrzymanych pakietów”.nstat
zakłada również, że chcesz raczej liczb przyrostowych niż bezwzględnych, więc najbliższym odpowiednikiemnetstat -s
jest użycie/sbin/nstat -asz
opcji-a
liczników bezwzględnych,-s
nie przechowuj pliku historii,-z
nie pomijaj liczników zerowych.ss
przejmuje części „gniazdowe”netstat
, ale nie jest to pełna funkcja, jak się dowiedziałeś. (ss
jest faktycznie lepszy niżnetstat
w wielu przypadkach, dwie konkretne to zdolność do używania wyrażeń filtrujących oraz opcjonalna możliwość użycia modułów jądratcp_diag
iinet_diag
Linuxa do uzyskania dostępu do danych gniazda jądra bardziej bezpośrednio niż przez/proc
.)W przypadku konieczności potwierdzenia odwzorowania nazw opisowych ostatecznym źródłem jest net-tools: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html
Doug Vitale zapewnia przydatny przewodnik do znajdowania odpowiedników iproute2 starszych poleceń (jest nieobsługiwany i nieco niekompletny, pomija wszelkie odniesienia,
nstat
które były częścią pakietu iproute2 od czasu jądra co najmniej 2004.x).net-tools żyje jednak, i powinieneś być w stanie znaleźć pakiet dla twojej dystrybucji (lub skompilować go samodzielnie).
źródło
NETSTAT jest obecnie uważany za przestarzały, a inne programy wchodzące w skład narzędzi sieciowych, takie jak arp, ifconfig, iptunnel, nameif
netstat
i route.Funkcjonalność zapewniana przez kilka z tych narzędzi została odtworzona i ulepszona w nowym pakiecie iproute2 , głównie za pomocą nowej
ip
komendy.Przykłady przestarzałych poleceń i ich zastępowania:
arp => ip n (sąsiad ip)
ifconfig => ip a (adres IP), link ip, ip -s (ip -stats)
iptunnel => tunel ip
iwconfig => iw
nameif => ip link, ifrename
netstat => ss, ip route (dla netstat-r), ip -s link (dla netstat -i), ip maddr (dla netstat-g)
netstat
Komenda czyta różnych plików / proc do zbierania informacji. Jednak to podejście słabnie, gdy istnieje wiele połączeń do wyświetlenia. To sprawia, że jest wolniejszy.ss
Polecenia dostaje swoje informacje bezpośrednio z przestrzeni jądra. Opcje używane zss
poleceniami są bardzo podobne do netstat, dzięki czemu jest łatwym zamiennikiem.Podane statystyki
ss
są powierzchowne, ale uważa się je za lepszą alternatywę dlanetstat
Przykłady:
uzyskaj wszystkie połączenia:
ss | less
ss -t
odbieraj połączenia TCP nie w trybie nasłuchiwania (programy serwera)ss -u
uzyskać połączenia udp nie w trybie nasłuchiwaniass -x
uzyskać połączenia rurowe z gniazdem unixss -ta
uzyskaj wszystkie połączenia TCPss -au
uzyskaj wszystkie połączenia udpss -nt
wszystkie tcp bez nazwy hostass -ltn
słuchanie tcp bez rozdzielczości hostass -ltp
słuchanie tcp z PID i nazwąss -s
drukuje statystykiss -tn -o
Połączenie TCP z usługodawcą hostingowym domeny i pokaż zegar utrzymywania aktywnościss -tl4
połączenia ip4źródło
ss -s
nie dostarcza danych, którenetstat -s
dostarcza. Zawiera również dezinformacji:/proc
jest interfejs jądra do tego i to jest dokładnie jakss
uzyskiwanych przez większość danych:strace -e trace=file,read /sbin/ss -s
.ss -s
są powierzchowne w porównaniu do tych dostarczonych przez netstat” (oznacza porównanie znetstat -s
). I to jest naprawdę prawda: np. Z ss-s nic nie wiesz o retransmisjach TCP.Możesz sprawdzić zawartość
/proc/net/netstat
:Nie jest to najbardziej przyjazny format, ale masz pomysł.
Nie jestem pewien, czy faktycznie zawiera określone elementy, których szukasz, ale mogą być dostępne w innym miejscu
/proc/net
.źródło
awk '{for(i=1;i<=NF;i++)title[i] = $i; getline; print title[1]; for(i=2;i<=NF;i++)printf " %s: %s\n", title[i], $i }' /proc/net/netstat
/proc/net/snmp
zawiera większość danych, a/proc/net/netstat
resztę zawiera. Niestety musisz przeczytać źródło narzędzi sieciowych,statistics.c
aby określić wszystkie odwzorowania nazw, choć większość z nich jest dość oczywista.