przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
bio-sk
»
podstawowe-narzedzia
bio-sk:podstawowe-narzedzia
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
===== 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'' \\ <small> 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'') </small> 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''): * przewianie: strzałki, page up / page down * ''/'' – wyszukuje: * ''n'' – następne wystąpienie * ''N'' – poprzednie * ''g'' – początek dokumentu; ''G'' – koniec * ''q'' – wyjście ==== Zapis poleceń ==== Wzór polecenia (wyjaśnienie: składni od [[https://docs.microsoft.com/pl-pl/windows-server/administration/windows-commands/command-line-syntax-key|Microsoftu]]/[[https://github.com/cli/cli/blob/trunk/docs/command-line-syntax.md|githuba]], opcji od [[https://sourceware.org/glibc/manual/2.44/html_node/Argument-Syntax.html|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: * ''tracepath -h'' * ''netstat -h'' * ''ip a h'' * ''ifconfig -h'' Dłuższy opis zwykle jest w podręczniku systemowym – komenda ''man'' i towarzyszące, np: * ''man tracepath'' * ''man ip'' / ''man 7 ip'' / ''man 8 ip'' * ''apropos …'' / ''man -k …'' – lista stron które w tytule mają podane słowo, np. ''apropos network'' * ''whatis …'' / ''man -f …'' – tytuły stron pod podaną nazwą, np. ''whatis write'' ----- ===== Programy używane do konfiguracji i diagnostyki sieci w Linuksie ===== <small> **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. </small> ==== Narzędzia do konfiguracji sieci ==== W Linuksie funkcjonują dwa zestawy podstawowych narzędzi do konfiguracji sieci. Pakiet narzędzi ''[[https://wiki.linuxfoundation.org/networking/net-tools|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 ''[[https://wiki.linuxfoundation.org/networking/iproute2|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: * narzędzia z paczki ''[[https://wiki.linuxfoundation.org/networking/iputils|iputils]]'' takie jak ''arping'', ''ping'', czy ''tracepath'' * <html><a href="https://www.remlab.net/ndisc6/" class="urlextern" title="https://www.remlab.net/ndisc6/" rel="nofollow"><code>ndisc6</code> i <code>rdisc6</code> </a></html> * ''[[https://traceroute.sourceforge.net/|traceroute]]'', ''[[https://www.bitwizard.nl/mtr/|mtr]]'' * ''[[https://www.wireshark.org/|wireshark]]'', ''[[https://www.tcpdump.org/|tcpdump]]'' ----- ===== 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'' (<small>i ''--json''</small>). \\ 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.: * loopback (pętla zwrotna, połączenie do siebie samego) ''lo'' * przewodowe karty sieciowe ''eth'' * bezprzewodowe karty sieciowe ''wlan, ath, wifi, radio'' * ''firewire'', infiniband ''ib'' * urządzenia wirtualne: wirtualne karty sieciowe ''veth, dummy'', <html> </html>mostki ''br'', urządzenia programowe ''tun, tap'', <html> </html>tunele ''sit, tnl, ppp, vpn, gre'' 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. <small> 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: [[https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/|[1]]] [[https://en.wikipedia.org/wiki/Consistent_Network_Device_Naming|[2]]] </small> ==== 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'': * ''ethtool <//ifname//>'' – wyświetla podstawowe informacje \\ * ''ethtool --identify <//ifname//>'' – prosi kartę o to, by zamrugała diodami tak żeby można było ją odróżnić od innych((Twórca sterownika lub producent sprzętu określa jak to mruganie wygląda)) **Informacje o tym, czy połączenie na warstwie fizycznej zostało nawiązane można sprawdzić przez:**<html><div style="margin-top:-1.2em"></div></html> ^ 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. <small> 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'' </small> ==== Sprawdzanie łączności IP ==== * ''ping <//cel//>'' – sprawdza czas odpowiedzi od podanego adresu * ''traceroute {-I|-T} <//cel//>'' – sprawdza trasę, czyli jakie routery IP są na drodze do podanego adresu \\ <small>Z uwagi na firewall Politechniki proszę używać opcji ''-I'' lub ''-T'', która go skutecznie omija</small> * ''mtr <//cel//>'' – ponawia sprawdzanie trasy co sekundę ("połączenie" poleceń wyżej) <small>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'')</small> Podane programy przyjmują też opcje ''-4'' i ''-6'' to użycia odpowiednio protokołu IPv4 i IPv6, np: ''traceroute -4 -T //nic.cl//'' <small> Używając adresów IPv6 ze specjalnych bloków oznaczonych jako [[https://en.wikipedia.org/wiki/Link-local_address|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''. </small> ==== 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: | {{section>bio-sk:podstawowe-narzedzia:przyklady#ip_--brief_link&inline&noheader}} ++++ ++++ Przykład ip link: | {{section>bio-sk:podstawowe-narzedzia:przyklady#ip_link&inline&noheader}} ++++ ++++ Przykład ip --brief address: | {{section>bio-sk:podstawowe-narzedzia:przyklady#ip_--brief_address&inline&noheader}} ++++ ++++ Przykład ip address: | {{section>bio-sk:podstawowe-narzedzia:przyklady#ip_address&inline&noheader}} ++++ ++++ Przykład ifconfig -a: | {{section>bio-sk:podstawowe-narzedzia:przyklady#ifconfig_-a&inline&noheader}} ++++ ++++ Inny przykład ifconfig i ip address | <html><pre> <b>/ # ip a</b> 10: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether da:a8:fb:92:2d:df brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet <span title="Adres IPv4 na tym interfejsie" style="background-color:rgba(0,255,0,0.2)">192.168.5.2</span><span title="Maska sieci" style="background-color:rgba(128,0,128,0.2)">/30</span> <span title="Adres rozgłoszeniowy (nie adres komputera!)" style="background-color:rgba(0,0,255,0.1)">brd 192.168.5.3</span> scope link eth0 valid_lft forever preferred_lft forever inet <span title="Adres IPv4 na tym interfejsie" style="background-color:rgba(0,255,0,0.2)">172.19.67.0</span><span title="Maska sieci" style="background-color:rgba(128,0,128,0.2)">/19</span> <span title="Adres rozgłoszeniowy (nie adres komputera!)" style="background-color:rgba(0,0,255,0.1)">brd 172.19.95.255</span> scope global eth0:1 valid_lft forever preferred_lft forever inet <span title="Adres IPv4 na tym interfejsie" style="background-color:rgba(0,255,0,0.2)">10.42.0.238</span><span title="Maska sieci" style="background-color:rgba(128,0,128,0.2)">/24</span> scope global eth0 valid_lft forever preferred_lft forever inet6 <span title="Adres IPv6" style="background-color:rgba(255,255,0,0.2)">fe80::d8a8:fbff:fe92:2ddf</span>/<span title="Długość prefiksu" style="background-color:rgba(255,128,80,0.2)">64</span> scope link valid_lft forever preferred_lft forever <b>/ # ifconfig</b> eth0 Link encap:Ethernet HWaddr DA:A8:FB:92:2D:DF inet addr:<span title="Adres IPv4 na tym interfejsie" style="background-color:rgba(0,255,0,0.2)">192.168.5.2</span> Bcast:192.168.5.3 Mask:<span title="Maska sieci" style="background-color:rgba(128,0,128,0.2)">255.255.255.252</span> inet6 addr: <span title="Adres IPv6" style="background-color:rgba(255,255,0,0.2)">fe80::d8a8:fbff:fe92:2ddf</span>/<span title="Długość prefiksu" style="background-color:rgba(255,128,80,0.2)">64</span> Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1326 errors:0 dropped:0 overruns:0 frame:0 TX packets:1063 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2681637 (2.5 MiB) TX bytes:123670 (120.7 KiB) eth0:1 Link encap:Ethernet HWaddr DA:A8:FB:92:2D:DF inet addr:<span title="Adres IPv4 na tym interfejsie" style="background-color:rgba(0,255,0,0.2)">172.19.67.0</span> Bcast:172.19.95.255 Mask:<span title="Maska sieci" style="background-color:rgba(128,0,128,0.2)">255.255.224.0</span> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 </pre></html> Uwaga: ifconfig w różnych dystrybucjach może mieć nieznacznie inny format wyjścia. ++++ ==== [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/en-us/windows/experience/connectivity-networking/essential-network-settings-and-tasks-in-windows#change-tcpip-settings|https://support.microsoft.com/…#change-tcpip-settings]] \\ Z linii poleceń należy użyć komendy ''netsh'', kontekstu ''netsh interface ip'' [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/netsh|https://learn.microsoft.com/…/netsh]] \\ Z PowerShella należy użyć cmdletów modułu NetTCPIP: [[https://learn.microsoft.com/en-us/powershell/module/nettcpip/?view=windowsserver2025-ps|https://learn.microsoft.com/…/nettcpip/…]] Windows dostarcza z systemem programy ''ping'' (przełączniki nie są zgodne; patrz ''ping /?'') i ''tracert''.
bio-sk/podstawowe-narzedzia.txt
· ostatnio zmienione: 2026/10/12 00:47 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry