Бывают ситуации, когда мы не хотим использовать DHCP, а хотим назначить хосту статичный IP. Бывают ситуации, когда мы просто не можем использовать динамический IP адрес – на VDS, например. В этой небольшой инструкции будет показано, как установить статический IP на Arch Linux.
Настройка статического IP при установке Arch Linux
Если нам нужно установить статичный IP адрес на один раз, до перезагрузки (пример, когда это нужно, установка новой системы), то делается это так.
Для начала узнаём имя сетевого интерфейса:
ip a
После этого назначение статичного IP делается следующей командой (сам IP, маску подсети и имя сетевого интерфейса замените на свои):
ip a add 192.168.1.101/255.255.255.0 dev ens3
Вы можете немного сократить её:
ip a add 192.168.1.101/24 dev ens3
Тем не менее, этом этапе у вас ещё не будет соединения с Интернетом. Нам нужно прописать шлюз по умолчанию (адрес шлюза замените на свой):
ip route add default via 192.168.1.254
И… всё равно на этом этапе ещё не будет интернета. Нужно прописать DNS сервер.
Для этого откройте файл
nano /etc/resolv.conf
и добавьте туда строку:
nameserver 8.8.8.8
Наконец-то, теперь можно проверять:
ping google.com
Сделанные таким образом изменения пропадут после перезагрузки.
Настройка статического IP в Arch Linux сохраняющегося после перезагрузки
Узнаем имя сетевого интерфейса:
ip a
Нам нужно создать файл с настройками сетевого интерфейса в каталоге /etc/netctl/. Нам необязательно писать его с нуля. Мы можем отредактировать один из примеров, которые поставляются с программой netctl. В следующей команде имя файла static.ens3 можете поменять на любое своё:
cp /etc/netctl/examples/ethenet-static /etc/netctl/static.ens3
Отредактируем этот файл:
nano /etc/netctl/static.ens3
Вот пример моего файла:
Description='A basic static ethernet connection' Interface=ens3 Connection=ethernet IP=static Address=('185.87.49.81/22') #Routes=('192.168.0.0/24 via 192.168.1.2') Gateway='185.87.48.1' DNS=('8.8.8.8') ## For IPv6 autoconfiguration #IP6=stateless ## For IPv6 static address configuration #IP6=static #Address6=('1234:5678:9abc:def::1/64' '1234:3456::123/96') #Routes6=('abcd::1234') #Gateway6='1234:0:123::abcd'
Здесь:
- ens3 – имя моего сетевого интерфейса
- 185.87.49.81/22 – это IP и сокращённая запись маски подсети.
- 185.87.48.1 – шлюз по умолчанию.
- 8.8.8.8 – DNS сервер.
Больше ничего в этом файле я не менял.
После редактирования и сохранения файла активируйте и проверьте статус сетевого интерфейса (если вы поменяли имя файла на своё, то измените static.ens3 на имя своего файла):
netctl start static.ens3
netctl status static.ens3
Также наличие сети можно проверить пингом.
Чтобы изменения сохранились и после перезагрузки, выполните команду:
netctl enable static.ens3