ss - kolejne narzędzie do badania gniazd
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.
- -h, --help
- Pokazuje podsumowanie opcji.
- -V, --version
- Pokazuje informacje o wersji.
- -H, --no-header
- Pomija linię nagłówka.
- -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).
- -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 NSNAME,
--net=NSNAME
- 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=FAMILY
- Wyświetla gniazda z FAMILY. Obecnie obsługiwane są
następujące rodziny: unix, inet, inet6, link, netlink,
vsock, tipc, xdp.
- -A QUERY, --query=QUERY,
--socket=QUERY
- 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 FILE, --diag=FILE
- 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 FILE,
--filter=FILE
- 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.
- FILTER := [ state
FILTR-STANU ] [ WYRAŻENIE ]
- Szczegółowe informacje dotyczące filtrów
można znaleźć w oficjalnej dokumentacji.
STATE-FILTER 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
EXPRESSION umożliwia filtrowanie na podstawie
określonych kryteriów. EXPRESSION 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.
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>
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.