SS(8) System Manager's Manual SS(8)

ss - kolejne narzędzie do badania gniazd

ss [opcje] [ FILTR ]

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.

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.

Pokazuje podsumowanie opcji.
Pokazuje informacje o wersji.
Pomija linię nagłówka.
Pomija wysyłanie i otrzymywanie kolumn kolejek.
Wypisz dane każdego gniazda w jednej lini.
Nie rozwiązuje nazw usług. Pokazuje dokładne wartości przepustowości, a nie czytelne dla człowieka.
Próbuje rozwiązać numeryczne adresy/porty.
Wyświetla zarówno gniazda nasłuchujące, jak i nienasłuchujące (dla TCP oznacza to ustanowione połączenia).
Wyświetla tylko gniazda nasłuchujące (domyślnie są one pomijane).
Wyświetla tylko skojarzone gniazda TCP, które są nieaktywne (nie są nasłuchujące, łączące się itp.; domyślnie są one pomijane).
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
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
Pokaż użycie pamięci gniazda. Format wyjściowy to:

skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,

f<fwd_alloc>,w<wmem_queued>,o<opt_mem>,
bl<back_log>,d<sock_drop>)
<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
Pokazuje proces za pomocą gniazda.
Pokazuje wątek za pomocą gniazda. Implikuje -p.
Pokazuje wewnętrzne informacje o TCP. Mogą pojawić się poniższe pola:
pokazuje „ts”, jeśli ustawiono opcję znacznika czasu
pokazuje „sack”, jeśli opcja sack jest ustawiona
pokazuje ciąg „ecn”, jeśli ustawiono opcję jawnego powiadamiania o przeciążeniu
pokazuje „ecnseen”, jeśli flaga saw ecn zostanie znaleziona w odebranych pakietach
pokazuje „fastopen”, jeśli opcja fastopen jest ustawiona
nazwa algorytmu przeciążenia, domyślnym algorytmem jest „cubic”
jeśli używana jest opcja skali okna, to pole pokazuje współczynnik skali wysyłania i współczynnik skali odbierania
wartość limitu czasu retransmisji tcp, jednostką jest milisekunda
używany do wykładniczej retransmisji wycofywania, rzeczywista wartość limitu czasu retransmisji to icsk_rto << icsk_backoff
rtt to średni czas podróży w obie strony, rttvar to średnie odchylenie rtt, ich jednostkami są milisekundy
limit czasu potwierdzenia, jednostką jest milisekunda, używana w trybie opóźnienia
maksymalny rozmiar segmentu
rozmiar okna przeciążenia
wartość ścieżki MTU
próg powolnego uruchamiania okna przeciążenia tcp
potwierdzone bajty
odebrane bajty
wysłane segmenty
odebrane segmenty
wyjścia bps
ilość czasu która upłynęła od ostatniego wysłania pakietu, jednostką jest milisekunda
ilość czasu która upłynęła od otrzymania ostatniego pakietu, jednostką jest milisekunda
ilość czasu która upłynęła od ostatniego potwierdzenia, jednostką są milisekundy
wskaźnik tempa i maksymalny wskaźnik tempa
zmienna pomocnicza dla wewnętrznego bufora odbiorczego automatycznego dostrajania gniazda TCP
Informacje o przepływie podrzędnym MPTCP
Pokaż ToS i informacje priorytetowe. Mogą pojawić się poniższe pola:
Bajt typu usługi IPv4
Bajt klasy ruchu IPv6
Identyfikator klasy ustawiony przez net_cls cgroup. Jeśli klasa ma wartość zero, pokazuje priorytet ustawiony przez SO_PRIORITY.
Pokazuje informacje o grupie. Mogą pojawić się poniższe pola:
Ścieżka do Cgroup v2. Ta nazwa ścieżki jest względna do punktu montowania w hierarchii.
Pokazuje wewnętrzne informacje o gnieździe tipc.
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.
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.
Ciągle wyświetla gniazda w miarę ich niszczenia
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.
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.
Przełącza się na określoną nazwę sieciowej przestrzeni nazw.
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).
Wyświetla gniazda TCP.
Wyświetla gniazda UDP.
Wyświetla gniazda DCCP.
Wyświetla gniazda RAW.
Wyświetla gniazda domeny Unix (alias dla -f unix).
Wyświetla gniazda SCTP.
Wyświetla gniazda tipc (alias dla -f tipc).
Wyświetla gniazda vsock (alias dla -f vsock).
Wyświetla gniazda XDP (alias dla -f xdp).
Wyświetl gniazda MPTCP.
Wyświetl opcje gniazda inet.
Wyświetla gniazda z określonej RODZINY. Obecnie obsługiwane są następujące rodziny: unix, inet, inet6, link, netlink, vsock, tipc, xdp.
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.
Nie wyświetla niczego, zrzuca nieprzetworzone informacje o gniazdach TCP do PLIKU po zastosowaniu filtrów. Jeśli PLIK jest - używane jest stdout.
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.
Wypisuje wszystkie wpisy danych lokalnych gniazd BPF dla każdego gniazda, sformatowane za pomocą pretty-print.
Wypisuje wpisy danych lokalnych gniazd BPF dla żądanego identyfikatora mapy, sformatowane za pomocą pretty-print. Można użyć więcej niż raz.
Szczegółowe informacje dotyczące filtrów można znaleźć w oficjalnej dokumentacji.

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.

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 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.
Dopasowuje na podstawie urządzenia, z którego korzysta połączenie. DEVICE może być nazwą urządzenia lub indeksem interfejsu.
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.
Dopasuj, jeśli połączenie jest częścią cgroup w podanej ścieżce.
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:

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.
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.
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).
ADRES to liczba całkowita reprezentująca adres CID, a PORT to port.
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.

Wyświetla wszystkie gniazda TCP.
Wyświetla wszystkie gniazda TCP z procesowymi kontekstami bezpieczeństwa SELinux.
Wyświetla wszystkie gniazda UDP.
Wyświetla wszystkie ustanowione połączenia ssh.
Znajduje wszystkie lokalne procesy podłączone do serwera X.
Wypisuje wszystkie gniazda tcp w stanie FIN-WAIT-1 dla naszego Apache do sieci 193.233.7/24 i wskazuje na ich liczniki czasu.
Wyświetla listę gniazd we wszystkich stanach ze wszystkich tabel gniazd z wyjątkiem protokołu TCP.

ip(8),
RFC 793 - https://tools.ietf.org/rfc/rfc793.txt (TCP states)

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).

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.