Jak nastavit statickou IP adresu

 Překlad nejlépe hodnocené odpovědi z raspberrypi.stackexchange.com.

Jak nastavit statickou IP adresu na Raspberry Pi?

Připojení Pi přímo k počítači

Aktuální verze Raspbianu s dhcpcd umožňují použití ssh přes link-local adresu a avahi (což je zeroconf impelentace) umožňuje programům najít hostitele na lokální síti. To znamená, že Pi můžete připojit přímo k počítači, nebo k routeru v lokální síti a propojit se s ním i bez znalosti jeho IP adresy!

Z Linuxu a OS X se můžete připojit jednoduše příkazem ssh pi@hostname.local (výchozí hostname je raspberrypi). Mělo by to fungovat se všemi populárními ssh GUI programy, ale na Windows můžete narazit na problém u sítí, které používají .local nestandardním způsobem (viz https://en.wikipedia.org/wiki/.local).

Pokud máte v lokální síti více než jedno Pi, musíte u každého nastavit unikátní hostname.

Jedním nedostatkem příměho připojení je, že Pi zůstane bez přístupu k Internetu a nenastaví si správné datum. Datum ale můžete zkopírovat z hostitelského počítače při otevírání ssh propojení příkazem ssh pi@hostname.local sudo date -s$(date -Ins).

Zjištění nastavení lokálního sítě

Nastavení lokální sítě se zjistí nejsnáze přímo na Pi (se spuštěným DHCP), nebo na jiném počítači ve stejné síti, ačkoliv příkazy se mohou u jiného systému lišit.

Spusťte jeden z následujících příkazů (v závislosti na tom, zda používáte Ethernet nebo WiFi):

ip -4 addr show dev eth0 | grep inet
ip -4 addr show dev wlan0 | grep inet

Výstup by měl vypadat nějak takto:

inet 10.1.1.30/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.31/24 brd 10.1.1.255 scope global wlan0

První adresa je IP Vašeho Pi v lokální síti. Část za lomítkem je velikost sítě. Často se používá /24.

Druhá adresa je IP pro vysílání (broadcast) do celé sítě.

Zjistění adresy routeru (gateway):

ip route | grep default | awk '{print $3}'

10.1.1.1

Zjištění adresy DNS serveru (často je shodná s adresou gateway).

cat /etc/resolv.conf

# Generated by resolvconf
nameserver 10.1.1.1

Nyní pokračujte JEDNÍM z následujících kroků. (Existují i další možnosti, které zde nejsou zdokumentované, tyto dvě jsou ty nejběžnější na Raspbianu)

A) Network Interfaces

Nastavení statické síťové adresy Pi v souboru /etc/network/interfaces:

auto eth0
iface eth0 inet static
        address 10.1.1.30
        netmask 255.255.255.0
        gateway 10.1.1.1

allow-hotplug wlan0
iface wlan0 inet static
        address 10.1.1.31
        netmask 255.255.255.0
        gateway 10.1.1.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

address je adresa zjištěná v příkazech výše (nebo jiná volná adresa ve stejné síti), netmask 255.255.255.0 odpovídá velikosti sítě /24. gateway je adresa routeru (nebo gateway).

Dále můžete specifikovat dns-nameservers, ale obecně to není potřeba. Adresa broadcast je automaticky vytvořena z address a netmask a není třeba ji v souboru uvádět. Pro více podrobností navštivte wiki Debianu.

Můžete nastavit jen eth0, jen wlan0, nebo obě tato rozhraní.

Nyní zakažte DHCP klientskou službu a přepněte na standardní Debian networking.

sudo systemctl disable dhcpcd
sudo systemctl enable networking

Nakonec restartujte Pi pro uplatnění změn:

sudo reboot

B) dhcpcd

Nechte soubor /etc/network/interfaces ve výchozím stavu:

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Upravte soubor /etc/dhcpcd.conf, zde je příklad:

interface eth0
static ip_address=10.1.1.30/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1

interface wlan0
static ip_address=10.1.1.31/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1

ip_address je adresa zjištěná v příkazech výše (nebo jiná volná adresa ve stejné síti), routers je adresa routeru (nebo gateway). domain_name_servers jsou adresy DNS serverů z /etc/resolv.conf. (Podívejte se na man dhcpcd.conf)

Na Arch wiki je dobrý článek o dhcpcd. Fallback profile je alternativa ke statické IP adrese.

Napsat komentář

%d blogerům se to líbí: