table of contents
SS(8) | System Manager's Manual | SS(8) |
NAZWA¶
ss - kolejne narzędzie do badania gniazd
SKŁADNIA¶
ss [opcje] [ FILTR ]
OPIS¶
ss służy do zrzucania statystyk gniazd. Umożliwia wyświetlanie informacji podobnych do netstat. Może wyświetlać więcej informacji o TCP i stanie niż inne narzędzia.
OPCJE¶
Jeśli nie użyto żadnej opcji, ss wyświetla listę otwartych gniazd nie nasłuchujących (np. TCP/UNIX/UDP), które nawiązały połączenie.
- -h, --help
- Pokazuje podsumowanie opcji.
- -V, --version
- Pokazuje informacje o wersji.
- -H, --no-header
- Pomija linię nagłówka.
- -Q, --no-queues
- Pomija wysyłanie i otrzymywanie kolumn kolejek.
- -O, --oneline
- Wypisz dane każdego gniazda w jednej lini.
- -n, --numeric
- Nie rozwiązuje nazw usług. Pokazuje dokładne wartości przepustowości, a nie czytelne dla człowieka.
- -r, --resolve
- Próbuje rozwiązać numeryczne adresy/porty.
- -a, --all
- Wyświetla zarówno gniazda nasłuchujące, jak i nienasłuchujące (dla TCP oznacza to ustanowione połączenia).
- -l, --listening
- Wyświetla tylko gniazda nasłuchujące (domyślnie są one pomijane).
- -B, --bound-inactive
- Wyświetla tylko skojarzone gniazda TCP, które są nieaktywne (nie są nasłuchujące, łączące się itp.; domyślnie są one pomijane).
- -o, --options
- Pokaż informacje o zegarze. W przypadku protokołu TCP format wyjściowy to:
zegar:(<nazwa_zegara>,<czas_wygaśnięcia>,<retransmisja>)
- <nazwa_zegara>
- nazwa timera, istnieje pięć rodzajów nazw timerów:
on : oznacza jeden z tych liczników czasu: licznik czasu retransmisji TCP, licznik czasu wczesnej retransmisji TCP i licznik czasu tail loss
keepalive: zegar podtrzymujący aktywność tcp
timewait: timer etapu oczekiwania
persist: zegar próby okna zerowego
unknown: żaden z powyższych zegarów
- <czas_wygaśnięcia>
- po jakim czasie timer wygaśnie
- <retransmisja>
- ile razy nastąpiła retransmisja
- -e, --extended
- Pokaż szczegółowe informacje o gnieździe. Format wyjściowy to:
uid:<numer_uid> ino:<numer_iwęzła> sk:<ciasteczko>
- <numer_uid>
- identyfikator użytkownika, do którego należy gniazdo
- <numer_iwęzła>
- numer i-węzła gniazda w VFS
- <ciasteczko>
- uuid gniazda
- -m, --memory
- Pokaż użycie pamięci gniazda. Format wyjściowy to:
skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,
- <rmem_alloc>
- pamięć przydzielona do odebrania pakietu
- <rcv_buf>
- całkowita pamięć która może być przydzielona do odbioru pakietu
- <wmem_alloc>
- pamięć użyta do wysłania pakietu (który został wysłany do warstwy 3)
- <snd_buf>
- całkowita pamięć która może być przeznaczona na wysłanie pakietu
- <fwd_alloc>
- pamięć przydzielona przez gniazdo jako pamięć podręczna, ale jeszcze nie używana do odbierania/wysyłania pakietu. Jeśli potrzebna jest pamięć do wysłania/odbioru pakietu, pamięć w pamięci podręcznej zostanie wykorzystana przed przydzieleniem dodatkowej pamięci.
- <wmem_queued>
- Pamięć przydzielona do wysłania pakietu (który nie został wysłany do warstwy 3)
- <opt_mem>
- Pamięć używana do przechowywania opcji gniazda, np. klucza do podpisu TCP MD5
- <back_log>
- Pamięć używana przez kolejkę sk rejestru zadań do wykonania. W kontekście procesu, jeśli proces odbiera pakiet i odbierany jest nowy pakiet, zostanie on umieszczony w kolejce sk, dzięki czemu proces może go natychmiast odebrać
- <sock_drop>
- liczba pakietów odrzuconych przed demultipleksowaniem w gnieździe
- -p, --processes
- Pokazuje proces za pomocą gniazda.
- -T, --threads
- Pokazuje wątek za pomocą gniazda. Implikuje -p.
- -i, --info
- Pokazuje wewnętrzne informacje o TCP. Mogą pojawić się poniższe pola:
- ts
- pokazuje „ts”, jeśli ustawiono opcję znacznika czasu
- sack
- pokazuje „sack”, jeśli opcja sack jest ustawiona
- ecn
- pokazuje ciąg „ecn”, jeśli ustawiono opcję jawnego powiadamiania o przeciążeniu
- ecnseen
- pokazuje „ecnseen”, jeśli flaga saw ecn zostanie znaleziona w odebranych pakietach
- fastopen
- pokazuje „fastopen”, jeśli opcja fastopen jest ustawiona
- cong_alg
- nazwa algorytmu przeciążenia, domyślnym algorytmem jest „cubic”
- wscale:<snd_wscale>:<rcv_wscale>
- jeśli używana jest opcja skali okna, to pole pokazuje współczynnik skali wysyłania i współczynnik skali odbierania
- rto:<icsk_rto>
- wartość limitu czasu retransmisji tcp, jednostką jest milisekunda
- backoff:<icsk_backoff>
- używany do wykładniczej retransmisji wycofywania, rzeczywista wartość limitu czasu retransmisji to icsk_rto << icsk_backoff
- rtt:<rtt>/<rttvar>
- rtt to średni czas podróży w obie strony, rttvar to średnie odchylenie rtt, ich jednostkami są milisekundy
- ato:<ato>
- limit czasu potwierdzenia, jednostką jest milisekunda, używana w trybie opóźnienia
- mss:<mss>
- maksymalny rozmiar segmentu
- cwnd:<cwnd>
- rozmiar okna przeciążenia
- pmtu:<pmtu>
- wartość ścieżki MTU
- ssthresh:<ssthresh>
- próg powolnego uruchamiania okna przeciążenia tcp
- bytes_acked:<bajty_potwierdzone>
- potwierdzone bajty
- bytes_received:<bajty_odebrane>
- odebrane bajty
- segs_out:<seg_wysłane>
- wysłane segmenty
- segs_in:<seg_odebrane>
- odebrane segmenty
- send <wysłane_bps>bps
- wyjścia bps
- lastsnd:<ostatnie_wysłane>
- ilość czasu która upłynęła od ostatniego wysłania pakietu, jednostką jest milisekunda
- lastrcv:<ostatnie_otrzymane>
- ilość czasu która upłynęła od otrzymania ostatniego pakietu, jednostką jest milisekunda
- lastack:<ostatni_ack>
- ilość czasu która upłynęła od ostatniego potwierdzenia, jednostką są milisekundy
- pacing_rate <wskaźnik_tempa>bps/<max_wskaźnik_tempa>bps
- wskaźnik tempa i maksymalny wskaźnik tempa
- rcv_space:<rcv_space>
- zmienna pomocnicza dla wewnętrznego bufora odbiorczego automatycznego dostrajania gniazda TCP
- tcp-ulp-mptcp flags:[MmBbJjecv] token:<rem_token(rem_id)/loc_token(loc_id)> seq:<sn> sfseq:<ssn> ssnoff:<off> maplen:<maplen>
- Informacje o przepływie podrzędnym MPTCP
- --tos
- Pokaż ToS i informacje priorytetowe. Mogą pojawić się poniższe pola:
- --cgroup
- Pokazuje informacje o grupie. Mogą pojawić się poniższe pola:
- cgroup
- Ścieżka do Cgroup v2. Ta nazwa ścieżki jest względna do punktu montowania w hierarchii.
- --tipcinfo
- Pokazuje wewnętrzne informacje o gnieździe tipc.
- -K, --kill
- Próbuje siłowo zamykać gniazda. Ta opcja wyświetla gniazda pomyślnie zamknięte i dyskretnie pomija gniazda, których zamykanie nie jest obsługiwane przez jądro. Obsługuje tylko gniazda IPv4 i IPv6.
- -s, --summary
- Wypisuje zbiorcze statystyki. Ta opcja nie analizuje list gniazd uzyskując podsumowanie z różnych źródeł. Jest to przydatne, gdy liczba gniazd jest tak duża, że parsowanie /proc/net/tcp jest ciężkie.
- -E, --events
- Ciągle wyświetla gniazda w miarę ich niszczenia
- -Z, --context
- Podobnie jak opcja -p, ale pokazuje również kontekst
bezpieczeństwa procesu. Jeśli używana jest opcja
-T, pokazuje również kontekst zabezpieczeń
wątku.
Dla netlink(7) kontekst procesu inicjującego gniazd jest wyświetlany w następujący sposób:
- 1.
- Jeśli prawidłowy pid pokazuje kontekst procesu.
- 2.
- Jeśli miejscem docelowym jest jądro (pid = 0), pokaż początkowy kontekst jądra.
- 3.
- Jeśli unikalny identyfikator został przydzielony przez jądro lub użytkownika netlink, pokaż kontekst jako „niedostępny”. Ogólnie oznacza to, że proces ma więcej niż jedno aktywne gniazdo netlink.
- -z, --contexts
- Jak opcja -Z, ale pokazuje również kontekst gniazda. Kontekst gniazda jest pobierany z powiązanego i-węzła i nie jest rzeczywistym kontekstem gniazda utrzymywanym przez jądro. Gniazda są zwykle oznaczone kontekstem procesu tworzenia, jednak pokazany kontekst będzie odzwierciedlał wszelkie zastosowane reguły zmiany ról, typów i/lub zakresów zasad, dlatego jest przydatnym odniesieniem.
- -N NAZWA-SIEC-PRZ-N, --net=NAZWA-SIEC-PRZ-N
- Przełącza się na określoną nazwę sieciowej przestrzeni nazw.
- -b, --bpf
- Pokazuje klasyczne filtry BPF gniazda (tylko administratorzy mogą uzyskać te informacje).
- -4, --ipv4
- Wyświetla tylko gniazda IP w wersji 4 (alias dla -f inet).
- -6, --ipv6
- Wyświetla tylko gniazda IP w wersji 6 (alias dla -f inet6).
- -0, --packet
- Wyświetl gniazda PACKET (alias dla łącza -f link).
- -t, --tcp
- Wyświetla gniazda TCP.
- -u, --udp
- Wyświetla gniazda UDP.
- -d, --dccp
- Wyświetla gniazda DCCP.
- -w, --raw
- Wyświetla gniazda RAW.
- -x, --unix
- Wyświetla gniazda domeny Unix (alias dla -f unix).
- -S, --sctp
- Wyświetla gniazda SCTP.
- --tipc
- Wyświetla gniazda tipc (alias dla -f tipc).
- --vsock
- Wyświetla gniazda vsock (alias dla -f vsock).
- --xdp
- Wyświetla gniazda XDP (alias dla -f xdp).
- -M, --mptcp
- Wyświetl gniazda MPTCP.
- --inet-sockopt
- Wyświetl opcje gniazda inet.
- -f FAMILY, --family=RODZINA
- Wyświetla gniazda z określonej RODZINY. Obecnie obsługiwane są następujące rodziny: unix, inet, inet6, link, netlink, vsock, tipc, xdp.
- -A ZAPYTANIE, --query=ZAPYTANIE, --socket=ZAPYTANIE
- Lista tabel gniazd do zrzutu, oddzielona przecinkami. Rozumiane się następujące identyfikatory: all, inet, tcp, udp, raw, unix, package, netlink, unix_dgram, unix_stream, unix_seqpacket, package_raw, package_dgram, dccp, sctp, tipc, vsock_stream, vsock_dgram, xdp, mptcp. Każdy element na liście może być opcjonalnie poprzedzony wykrzyknikiem (!), aby wykluczyć zrzut tabeli gniazd.
- -D PLIK, --diag=PLIK
- Nie wyświetla niczego, zrzuca nieprzetworzone informacje o gniazdach TCP do PLIKU po zastosowaniu filtrów. Jeśli PLIK jest - używane jest stdout.
- -F PLIK, --filter=PLIK
- Czyta informacje o filtrze z PLIKU. Każda linia PLIKU jest interpretowana jako pojedyncza opcja wiersza poleceń. Jeśli PLIK to - używane jest stdin.
- --bpf-maps
- Wypisuje wszystkie wpisy danych lokalnych gniazd BPF dla każdego gniazda, sformatowane za pomocą pretty-print.
- --bpf-map-id=IDENTYFIKATOR-MAPY
- Wypisuje wpisy danych lokalnych gniazd BPF dla żądanego identyfikatora mapy, sformatowane za pomocą pretty-print. Można użyć więcej niż raz.
- FILTER := [ state FILTR-STANU ] [ WYRAŻENIE ]
- Szczegółowe informacje dotyczące filtrów można znaleźć w oficjalnej dokumentacji.
FILTR-STANU¶
FILTR-STANU pozwala skonstruować dowolny zestaw stanów do dopasowania. Jego składnia to sekwencja słów kluczowych stan i wykluczenie, po których następuje identyfikator stanu.
- Dostępne identyfikatory to:
-
Wszystkie standardowe stany TCP: established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listening and closing.
all - dla wszystkich stanów
connected - dla wszystkich stanów oprócz listening i closed
synchronized - dla wszystkich stanów connected oprócz syn-sent
bucket - stany, które są utrzymywane jako mini gniazda, czyli time-wait i syn-recv
big - przeciwieństwo do bucket
bound-inactive - skojarzone, lecz poza tym nieaktywne gniazda (nie są nasłuchujące, łączące się itp.)
WYRAŻENIE¶
WYRAŻENIE umożliwia filtrowanie na podstawie określonych kryteriów. WYRAŻENIE składa się z szeregu predykatów połączonych operatorami boolowskimi. Możliwe operatory w rosnącej kolejności to lub (lub | lub ||), and (lub & lub &&) i not (lub !). Jeśli żaden operator nie znajduje się między kolejnymi predykatami, zakłada się operator and. Podwyrażenia można grupować za pomocą „(” i „)”.
Obsługiwane są następujące predykaty:
- {dst|src} [=] HOST
- Sprawdź, czy miejsce docelowe lub źródło odpowiada HOST. Aby uzyskać szczegółowe informacje, zobacz HOST SYNTAX.
- {dport|sport} [OP] [FAMILY:]:PORT
- Porównaj port docelowy lub źródłowy z PORT. OP może być dowolnym z „<”, „<=”, „=”, „!=”, „>=” i „>”. Zgodnie ze zwykłymi regułami arytmetycznymi. FAMILY i PORT są takie, jak opisano w HOST SYNTAX poniżej.
- dev [=|!=] DEVICE
- Dopasowuje na podstawie urządzenia, z którego korzysta połączenie. DEVICE może być nazwą urządzenia lub indeksem interfejsu.
- fwmark [=|!=] MASK
- Dopasowania na podstawie wartości fwmark dla połączenia. Może to być określona wartość znaku lub wartość znaku, po której następuje znak „/” i maska bitów, których bity mają być użyte w porównaniu. Na przykład „fwmark = 0x01/0x03” pasowałoby, gdyby dwa najmniej znaczące bity znaku fw miały wartość 0x01.
- cgroup [=|!=] PATH
- Dopasuj, jeśli połączenie jest częścią cgroup w podanej ścieżce.
- autobound
- Dopasuj, jeśli port lub ścieżka adresu źródłowego została przydzielona automatycznie (a nie jawnie określona).
Większość operatorów ma aliasy. Jeśli nie podano żadnego operatora, przyjmowany jest znak „=”. Każda z następujących grup operatorów jest równoważna:
- = == eq
- != ne neq
- > gt
- < lt
- >= ge geq
- <= le leq
- ! not
- | || or
- & && and
SKŁADNIA HOSTA¶
Ogólna składnia hosta to [RODZINA:]ADRES[:PORT].
RODZINA musi być jedną z rodzin obsługiwanych przez opcję -f. Jeśli nie zostanie podany, domyślnie przyjmuje rodzinę podaną z opcją -f, a jeśli jej również nie ma, przyjmie albo inet, albo inet6. Należy zauważyć, że wszystkie warunki hosta w wyrażeniu powinny należeć do tej samej rodziny lub zawierać tylko inet i inet6. Jeśli istnieje inna mieszanka rodzin, wyniki będą prawdopodobnie nieoczekiwane.
Postać ADRESU i PORTU zależy od użytej rodziny. „*” może służyć jako symbol wieloznaczny dla adresu lub portu. Szczegóły dotyczące każdej rodziny są następujące:
- unix
- ADRES jest wzorcem globalnym (patrz fnmatch(3)), który będzie dopasowywany bez uwzględniania wielkości liter do adresu gniazda uniksowego. Obsługiwane są zarówno nazwy ścieżek, jak i abstrakcyjne. Adresy uniksowe nie obsługują portu, a „*” nie może być używana jako symbol wieloznaczny.
- link
- ADRES to niewrażliwa na wielkość liter nazwa protokołu Ethernet do dopasowania. PORT to albo nazwa urządzenia, albo indeks urządzenia dla żądanego urządzenia łącza, jak widać na wyjściu łącza ip.
- netlink
- ADRES jest deskryptorem rodziny netlink. Możliwe wartości pochodzą z /etc/iproute2/nl_protos. PORT to identyfikator portu gniazda, który zwykle jest taki sam jak identyfikator procesu będącego właścicielem. Wartość „kernel” może być używana do reprezentowania jądra (identyfikator portu równy 0).
- vsock
- ADRES to liczba całkowita reprezentująca adres CID, a PORT to port.
- inet i inet6
- ADRES to adres IP (w zależności od rodziny v4 lub v6) lub nazwa hosta DNS, która jest tłumaczona na adres IP wymaganej wersji. Adres IPv6 musi być ujęty w „[” i „]”, aby ujednoznacznić separator portów. Adres może mieć dodatkowo długość prefiksu podaną w notacji CIDR (ukośnik, po którym następuje długość prefiksu w bitach). PORT jest numerycznym portem gniazda lub nazwą usługi, do której ma być dopasowany port.
PRZYKŁADY UŻYCIA¶
- ss -t -a
- Wyświetla wszystkie gniazda TCP.
- ss -t -a -Z
- Wyświetla wszystkie gniazda TCP z procesowymi kontekstami bezpieczeństwa SELinux.
- ss -u -a
- Wyświetla wszystkie gniazda UDP.
- ss -o state established '( dport = :ssh or sport = :ssh )'
- Wyświetla wszystkie ustanowione połączenia ssh.
- ss -x src /tmp/.X11-unix/*
- Znajduje wszystkie lokalne procesy podłączone do serwera X.
- ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24
- Wypisuje wszystkie gniazda tcp w stanie FIN-WAIT-1 dla naszego Apache do sieci 193.233.7/24 i wskazuje na ich liczniki czasu.
- ss -a -A 'all,!tcp'
- Wyświetla listę gniazd we wszystkich stanach ze wszystkich tabel gniazd z wyjątkiem protokołu TCP.
ZOBACZ TAKŻE¶
ip(8),
RFC 793 - https://tools.ietf.org/rfc/rfc793.txt (TCP states)
AUTOR¶
ss napisane przez Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>.
Ta strona podręcznika została napisana przez Michaela Prokopa <mika@grml.org> dla projektu Debian (ale może być używana przez innych).
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Daria Danieluk <daria.danieluk@gmail.com> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.