Skoro już masz Linuxa i skoro ten Linux ma świadczyć w sieci jakieś usługi, to może warto byłoby przypisać mu stały adres IP? Oto, jak to zrobić:
Ustal aktualną adresację sieci
Twój system teraz już pracuje w jakieś sieci, pewnie dostaje adres IP przez DHCP. Jeśli ta sieć jest zarządzana przez administratora, który sam decyduje o adresacji, to zatrzymaj się ze swoją zmianą i skontaktuj się z administratorem. Zazwyczaj admini określają jakie adresy IP są rozdzielane przez serwer DHCP, a jakie można sobie ukraść i przypisać ręcznie do swojego komputera. Tutaj jednak, tym problemem się nie przejmuję, ale Ty musisz.
Poleceniem
ip addres
można wyświetlić informację o aktualnie przypisanym adresie IP
W wyświetlonym wyniku powinno się udać odnaleźć aktualnie wykorzystywany adres IP:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:01:0b:05 brd ff:ff:ff:ff:ff:ff inet 192.168.137.220/24 brd 192.168.137.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::8adb:ccf3:d4ed:4331/64 scope link noprefixroute valid_lft forever preferred_lft forever
Tutaj jest to 192.168.137.220. Dodatkowy zapis /24 określa maskę sieci. W tym przypadku początkowy adres 192.168.137.0 to adres sieci, maską jest 255.255.255.0 a sam komputer otrzymał 192.168.137.220. Twój admin może np. powiedzieć, że możesz używać adresu 192.168.137.100, cała reszta, czyli sieć i maska sieci pozostaną prawdopodobnie takie same.
Warto też znać adres gateway, przez który odbywa się komunikacja z całą siecią zewnętrzną, w tym z Internetem. Wyświetlisz go poleceniem
ip route
U mnie wynik wygląda tak:
default via 192.168.137.1 dev eth0 proto static metric 100 192.168.137.0/24 dev eth0 proto kernel scope link src 192.168.137.100 metric 100
Gateway to adres wskazywany w pierwszej linijce czyli 192.168.137.1
Co się jeszcze może przydać to adres DNS. Często jest to ten sam adres, co gateway, ale żeby uzyskać pewność, należałoby zajrzeć do pliku /etc/resolv.conf. Jeśli adresu nie znamy, to pomijając pewne zagrożenia security można zaryzykować używanie adresu serwera Google: 8.8.8.8
Mając te informacje możemy przejść do zmian:
Zmiana adresu IP
Za koordynacje konfiguracji sieci odpowiada network manager. Komenda, która pracuje z tym serwisem to między innymi nmcli. Poniższe polecenie wyświetli aktualną konfiguracje:
nmcli connection show
wynik może wyglądać mniej więcej tak:
NAME UUID TYPE DEVICE Wired connection 1 29e65197-3719-33a1-bd37-5b4bb35e4ba1 ethernet eth0
Co tu jest ważne. Ta konfiguracja ma swoją nazwę i jest to „Wired connection 1”. Jest ona przypisana do konkretnej karty sieciowej i jest to eth0. W kolejnych krokach będziemy zmieniać konfigurację, więc trzeba się poslużyć nazwą „Wired connection 1”. Poniższe polecenie zmieni adres IPv4 na 192.168.137.100:
sudo nmcli connection modify Wired\ connection\ 1 ipv4.method manual ipv4.address 192.168.137.100/24 ipv4.gateway 192.168.137.1 ipv4.dns 8.8.8.8
Co tu się dzieje?
- sudo – bo to czynność zarezerwowana dla administratora
- nmcli – bo to jest polecenie sterujące network managerem
- connection modify – bo chodzi o modyfikację połączenia
- Wired\ connection\ 1 – bo to jest to połączenie, które chcemy zmienić. Zauważ, że spacje w nazwie są „cytowane” przy pomocy znaku backslash. (Hint – wpisując polecenie można napisać Wired i nacisnać tabulator – reszta nazwy, wraz z cytowaniem uzupełni się sama)
- ipv4.method manual – bo adres IP ma być nadawany ręcznie
- 192.168.137.100/24 – bo taki adres dał nam administrator, albo też samodzielnie odkryliśmy, że będzie dobry wykonując kroki z początku tego artykułu
- ipv4.gateway 192.168.137.1 – bo taki ma być przypisany adres gateway w tej konfiguracji
- ipv4.dns 8.8.8.8 – bo zdecydowałem się tu użyć serwera DNS od Google
Po uruchomieniu polecenia nic się jeszcze nie stanie. Dopiero wyłączenie i włączenie konfiguracji sprawi, że zostanie ona aplikowana:
sudo nmcli connection down Wired\ connection\ 1 sudo nmcli connection up Wired\ connection\ 1
Od tej pory polecenie
ip address
oraz
ip route
powinny zwracać wartości zdefiniowane w poleceniu nmcli.