Spis treści

Poruszanie się w konsoli i czytanie pomocy

Powłoka systemowa – szybkie przypomnienie

(Tekstowa) powłoka systemowa (shell), terminal, konsola.
Programy np. xfce4-terminal, konsole

Zmiana użytkownika – su
Wykonania programu na prawach innego użytkownika – sudo polecenie
Użycie sudo do uruchomienia shella z prawami roota: sudo -s (lub sudo -i lub sudo su)

Historia w konsoli: strzałki góra/dół, history, ctrl+r, fc

Obsługa polecenia less (wykonaj dla przykładu: convert -h | less albo man less):

Zapis poleceń

Wzór polecenia (wyjaśnienie: składni od Microsoftu/githuba, opcji od projektu GNU):
polecenie {jeden|z|wielu} <arg1> [-opcje <arg2>] --długa_opcja=<arg3> [<arg4>]

Przykład polecenia:
polecenie jeden 42 [-opcje foo] --długa_opcja=x

Co trzeba wpisać w konsolę:
polecenie jeden 44 -oje baz --długa_opcja=x

Pomoc systemowa

Pomoc wbudowana w polecenia zwykle jest wyświetlana po podaniu opcji -h (lub --help), np:

Dłuższy opis zwykle jest w podręczniku systemowym – komenda man i towarzyszące, np:


Programy używane do konfiguracji i diagnostyki sieci w Linuksie

Uwaga: informacje o narzędziach są podane dla wyjaśnienia dlaczego kilka komend realizuje to samo zadanie i dla uporządkowania wiedzy. Treści z tej sekcji (listy komend, nazwy paczek narzędzi, etc.) nie będą w żaden sposób wymagane na wejściówkach/teście.

Narzędzia do konfiguracji sieci

W Linuksie funkcjonują dwa zestawy podstawowych narzędzi do konfiguracji sieci.

Pakiet narzędzi net-tools powstał w 1983 roku, początkowo w systemie BSD. Od tego czasu jest utrzymywany, jednak większość jego składników jest uznawana za przestarzałe. Z tego pakietu na zajęciach pojawiają się komendy arp, hostname, ifconfig, netstat i route.

Około roku 2000 stworzono pakiet iproute2, mający zastąpić net-tools (i kilka innych, napisanych by udostępnić nowe możliwości jądra systemu Linux). Z tego pakietu na zajęciach pojawiają się komendy ip i ss.
Na komendę ip składa się wiele "podkomend", np. ip link, ip address, ip neighbour czy ip route, a pomoc do tej komendy jest rozbita na wiele stron podręcznika – man ip-link, man ip-address, itd.

Narzędzia do diagostyki

Używane na zajęciach narzędzia do sprawdzania czy i jak działa sieć to między innymi:


Interfejsy sieciowe, konfiguracja adresów, sprawdzanie łączności

Karta sieciowa (NIC – network interface card) – fizyczne urządzenie do komunikacji sieciowej.
Interfejs sieciowy (network interface) – logiczne urządzenie do komunikacji sieciowej.

Interfejsy można podzielić na fizyczne (reprezentują fizyczne urządzenia sieciowe) i wirtualne (reszta).
Przykładem interfejsu wirtualnego jest loopback – wirtualne urządzenie sieciowe łączące komputer z samym sobą.

Wyświetlanie listy urządzeń i adresów

Lista aktywnych urządzeń ifconfig ip link show up
Lista wszystkich urządzeń ifconfig -a ip link [show]
Lista adresów sieciowych ifconfig [-a] ip address [show [up]]

Zapamiętaj: komenda ip address konfiguruje adresy, ip link konfiguruje urządzenia.

Nazwy podpoleceń i akcji polecenia ip można dowolnie skracać, ale jeśli skróty nie są jednoznaczne, to narzędzie wybiera jedno rozwinięcie zamiast wyświetlić komunikat o błędzie (sic!).
Np. ip link show można zapisać jako ip l sh, ale ip l s jest już traktowane jako ip link set

Polecenie ip przyjmuje też opcje (podawane bezpośrednio po ip), wśród których warto znać opcję --brief (i --json).
Porównaj: ip addr i ip --brief addr

[ekstra] Tradycyjne nazwy urządzeń

Tradycyjne nazwy urządzeń (zwykle zakończone kolejnym numerem, jak np. eth0) to m. inn.:

Około 2015 roku w systemie Linux zmieniono sposób nadawania nazw urządzeniom.
Stąd dla fizycznych interfejsów można spotkać nazwy: eno1, enp2s0, wlp0s20f3, enx0050568a281e

Nazwy takie jak eth0, wlan0 są dalej powszechnie używane w tutorialach, dokumentacjach i podręcznikach jako generyczna nazwa urządzenia danego rodzaju.

Wcześniej to, która karta sieciowa dostanie który numer (eth0, eth1) było trudne do przewidzenia (ale zwykle stałe dla danej konfiguracji sprzętowej).
Co gorsza, kolejność po dodaniu nowej karty sieciowej lub awarii jednej z kart mogła ulec zmianie.
Więcej szczegółów: [1] [2]

Sprawdzanie stanu i włączanie interfejsu

Włączenie interfejsu ifconfig eth0 up ip link set dev eth0 up
Wyłączenie interfejsu ifconfig eth0 down ip link set dev eth0 down

Stan interfejsu można sprawdzić komendami wyświetlającymi listę urządzeń (patrz wyżej).
Dla kart ethernetowych dodatkowe informacje można odczytać narzędziem ethtool:

Informacje o tym, czy połączenie na warstwie fizycznej zostało nawiązane można sprawdzić przez:

Polecenie Wynik oznacza, że karta jest…
Każde z:
ip link
ip -br link
ip address
brak pozostałych … wyłączona
<…,NO-CARRIER,…,UP,…> state … … włączona, ale nie widzi nikogo po drugiej stronie
<…,UP,…,LOWER_UP,…> state … … włączona i wykryła inną kartę po drugiej stronie
ifconfig brak pozostałych … wyłączona
<…,UP,…> … włączona, ale nie widzi nikogo po drugiej stronie
<…,UP,…,RUNNING,…> … włączona i wykryła inną kartę po drugiej stronie
ethtool Link detected: no … wyłączona lub nie widzi nikogo po drugiej stronie
Link detected: yes … włączona i wykryła inną kartę po drugiej stronie
lampka przy porcie nie świeci … wyłączona lub nie widzi nikogo po drugiej stronie
zapalona … włączona i wykryła inną kartę po drugiej stronie

Zauważ: komenda ip link / ip address pokazuje też pole state z wartościami UP/DOWN i koloruje je na zielono/czerwono. To pole pokazuje stan połączenia, a nie to czy interfejs jest włączony, i może w ogóle nie pokazywać stanu (np. mieć wartość UNKNOWN) albo pokazywać jeszcze inne znane stany (np. DORMANT).

Ustawianie / dodawanie / usuwanie adresów IP

ip address

Dodanie nowego adresu do interfejsu ip addr add 10.0.0.1/25 dev eth0
ip addr add fd00::1/64 dev eth0
Usunięcie adresu z interfejsu ip addr del 10.0.0.1/25 dev eth0
ip addr del fd00::1/64 dev eth0
Wyczyszczenie adresów interfejsu (groźne) ip addr flush dev eth0

Uwaga: Każdy adres bez maski polecenie ip interpretuje jako adres z maską /32 (IPv4) lub /128 (IPv6). Zawsze podawaj maskę manipulując adresami poleceniem ip.

ifconfig

Zmiana bieżącego adresu IPv4 i/lub maski ifconfig eth0 [10.0.0.1] [netmask 255.255.255.128]
Dodanie nowego adresu IPv4 do urządzenia
(tworząc alias urządzenia)
ifconfig eth0:something 10.0.0.1 …
'Usunięcie' dodatkowego adresu IPv4 z urządzenia
(usunięcie aliasu)
ifconfig eth0:something down
'Usunięcie' podstawowego adresu IPv4 z urządzenia ifconfig eth0 0
Dodanie nowego adresu IPv6 ifconfig eth0 add fd00::1/64
Usunięcie adresu IPv6 ifconfig eth0 del fd00::1/64

Zauważ: w poleceniu ifconfig adres IPv4 i adresy IPv6 konfiguruje się inaczej.
ifconfig umie ustawić wiele adresów IPv6 na interfejsie, ale tylko jeden adres IPv4.
ifconfig domyślnie dla IPv4 dobiera maskę pasującą do historycznej klasy adresu, a dla IPv6 /128.

Polecenie ifconfig pozwala na zmianę wielu ustawień naraz, dla przykładu poniższe polecenie ustawi adres i włączy interfejs:
ifconfig dummy0 192.168.0.1 netmask 255.255.255.0 up

Sprawdzanie łączności IP

Jako cel można podać adres IP (np. ping 150.254.30.29) lub nazwę słowną (przykładowo: ping cs.put.poznan.pl, ping lab-net-1)

Podane programy przyjmują też opcje -4 i -6 to użycia odpowiednio protokołu IPv4 i IPv6, np: traceroute -4 -T nic.cl

Używając adresów IPv6 ze specjalnych bloków oznaczonych jako link-local należy jeszcze dodać na jakim interfejsie znajduje się cel, używając składni adres%interfejs, np. ping fe80::d8a8:fbff:fe92:2ddf%eth0.

Przykładowe wyniki poleceń

Uwaga: W przykładach na stronie zwykle podświetlony tekst ma opis jako dymek (tooltip/title) widoczny po najechaniu i zatrzymaniu myszy na obszarze podświetlonego tekstu.

Przykład ip --brief link:

Przykład ip link:

Przykład ip --brief address:

Przykład ip address:

Przykład ifconfig -a:

Inny przykład ifconfig i ip address

[Ekstra] Windows

Do wyświetlenia listy interfejsów i adresów IP można użyć m. inn. komendy ipconfig, domyślnie pokazującej tylko aktywne interfejsy; ipconfig /all pokaże wszystkie

Adresy IP można ustawić z "okienek" https://support.microsoft.com/…#change-tcpip-settings
Z linii poleceń należy użyć komendy netsh, kontekstu netsh interface ip https://learn.microsoft.com/…/netsh
Z PowerShella należy użyć cmdletów modułu NetTCPIP: https://learn.microsoft.com/…/nettcpip/…

Windows dostarcza z systemem programy ping (przełączniki nie są zgodne; patrz ping /?) i tracert.

1) Twórca sterownika lub producent sprzętu określa jak to mruganie wygląda