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>,
            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

-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:

    tos Bajt typu usługi IPv4

    tclass
        Bajt klasy ruchu IPv6

    class_id
        Identyfikator klasy ustawiony przez net_cls cgroup. Jeśli klasa ma wartość zero, pokazuje priorytet ustawiony przez SO_PRIORITY.

--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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.