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
When no option is used ss displays a list of open non-listening sockets (e.g. TCP/UNIX/UDP) that have established connections.

-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
    Do not try to resolve service names. Show exact bandwidth values, instead of human-readable values.

-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>
        the name of the timer, there are five kinds of timer names:

        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>
        how long until the timer will expire

    <retransmisja>
        how many times retransmissions have occurred

-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>
        a uuid of the socket

-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>
        the memory allocated for receiving packets

    <rcv_buf>
        the total memory that can be allocated for receiving packets

    <wmem_alloc>
        the memory used for sending packets (which has been sent to layer 3)

    <snd_buf>
        the total memory that can be allocated for sending packets

    <fwd_alloc>
        the memory allocated by the socket as cache, but not used for receiving/sending packets yet. If memory is needed to send/receive packets, the memory in this cache will be used before allocating additional memory.

    <wmem_queued>
        The memory allocated for sending packets (which has not been sent to layer 3)

    <opt_mem>
        The memory used for storing socket options, e.g., the key for TCP MD5 signature

    <back_log>
        The memory used for the sk backlog queue. On a process context, if the process is receiving packets, and a new packet is received, it will be put into the sk backlog queue, so it can be received by the process immediately.

    <sock_drop>
        liczba pakietów odrzuconych przed demultipleksowaniem w gnieździe

-p, --processes
    Show processes using sockets.

-T, --threads
    Show threads using sockets. Implies -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>
        how long it has been since the last packet sent, the unit is millisecond

    lastrcv:<ostatnie_otrzymane>
        how long it has been since the last packet received, the unit is millisecond

    lastack:<ostatni_ack>
        how long it has been since the last ack received, the unit is millisecond

    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
    Show socket classic BPF filters (only administrators are allowed to get this information).

-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
STATE-FILTER allows one to construct an arbitrary set of states to match. Its syntax is sequence of keywords state and exclude followed by identifier of state.

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
    Compare the destination or source port to PORT. OP can be any of "<", "<=", "=", "!=", ">=" and ">", following normal arithmetic rules. FAMILY and PORT are as described in HOST SYNTAX below.

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
Tłumaczenie niniejszej strony podręcznika: 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.