Поиск по сайту:

Как настроить статический IP-адрес в Linux и Unix

3 разных способа установки статического IP-адреса в Linux и FreeBSD

Настройка IP-адреса после новой установки Linux — один из обязательных навыков, которым должен овладеть каждый администратор Linux и Unix. Мы можем легко назначить IP-адрес в Linux с графическим интерфейсом. Однако настройка IP-сети из режима командной строки — это совершенно другое дело! В этом пошаговом руководстве описывается, как настроить статический IP-адрес в операционных системах Linux и Unix из режима командной строки.

Приведенные ниже шаги протестированы на серверных версиях AlmaLinux 8, CentOS 8, серверных и настольных версиях Ubuntu 22.04, 18.04 и 16.04, а также серверных версиях FreeBSD 13, FreeBSD 12. Однако он должен работать в большинстве систем Linux на базе RPM и DEB, а также в версиях BSD.

1. Настройте статический IP-адрес в Linux

Настройка IP-адреса в системах на базе RPM и DEB немного отличается. Сначала мы увидим, как настроить IP-адрес в системах на базе RPM.

1.1. Назначение статического IP-адреса в Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux

Назначение IP-адреса в системах на базе Fedora и RHEL можно выполнить разными способами. Мы можем установить IP-адрес,

  • вручную отредактировав файл конфигурации сети,
  • с помощью инструмента командной строки Nmcli,
  • и использование инструмента текстового пользовательского интерфейса Nmtui.

1.1.1. Установите статический IP-адрес, отредактировав файл конфигурации сети

В Fedora, RHEL и его клонах, таких как CentOS, AlmaLinux и Rocky Linux, конфигурация сетевой карты (сокращенно NIC) хранится в /etc/sysconfig/network-scripts/.

Примечание. Здесь я запускаю все команды от имени пользователя root. Если вы вошли в систему как обычный пользователь, просто добавьте перед каждой командой 'sudo'.

Сначала найдем имя сетевой карты.

Для этого запустите:

ip link show

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff

Или используйте эту команду для отображения подробного вывода:

ip addr

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
 inet 192.168.225.150/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe80:6319/64 scope link 
 valid_lft forever preferred_lft forever

Обычно имя проводной сетевой карты начинается с буквы "e", а имя беспроводной карты начинается с буквы "w".

Как вы видите в приведенном выше выводе, имя моей проводной сетевой карты — enp0s3. В вашем дистрибутиве это может быть по-другому, но обычно оно начинается с буквы «е».

Давайте теперь настроим статический IP-адрес для этого сетевого адаптера.

Откройте файл конфигурации сетевой карты в любом редакторе:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Здесь я использую редактор vi для редактирования файла конфигурации сети. Вы можете использовать любой текстовый/графический редактор по вашему выбору, например nano или gedit.

Установите для bootproto (протокол загрузки) значение none и установите IP-адрес, маску подсети, шлюз и DNS-сервер, как показано ниже.

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
ONBOOT="yes"
HWADDR="08:00:27:80:63:19"
IPADDR0="192.168.225.150"
PREFIX0="24"
GATEWAY0="192.168.225.1"
DNS1="8.8.8.8"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

Настройка статического IP-адреса в CentOS Linux

Вот как выглядит типичный файл конфигурации сетевой карты в любых системах на базе RPM. Вы заметили линии, которые я выделил жирным шрифтом (и стрелки на изображении)? Это важные линии.

Позвольте мне объяснить эти строки:

  • BOOTPROTO="none" – эта строка показывает, что IP-адрес сетевой карты следует настроить вручную. Если вы установите значение "dhcp", то сетевая карта будет принимать IP-адрес от любого DHCP-сервера в сети.
  • IPADDR0="192.168.225.150" — в этой строке указывается IP-адрес сетевой карты. Здесь ноль в IPADDR0 указывает, что эта карта настроена только с одним IP-адресом. Если вы хотите установить более одного IP-адреса (т.е. виртуального IP-адреса), добавьте новые строки — например IPADDR1, IPADDR2 и задайте разные IP-адреса по вашему выбору.
  • PREFIX0="24"  – в этой строке указывается маска подсети, например 255.255.255.0. Здесь вы можете указать более одной подсети с помощью строк PREFIX1, PREFIX 2 и т. д.
  • GATEWAY0="192.168.225.1"  – это адрес шлюза сетевого адаптера.
  • DNS1="8.8.8.8"  – адрес сервера имен. Вы также можете указать более одного DNS с помощью строк DNS2, DNS3 и т. д.

Остальные линии менее важны. Если вам интересно узнать, что это такое, вот вам.

  • DEFROUTE — использовать ли это соединение в качестве маршрута по умолчанию.
  • HWADDR — указывает аппаратный адрес сетевого устройства.
  • IPV4_FAILURE_FATAL – следует ли отключать устройство в случае сбоя настройки IPv4. Значение по умолчанию — нет.
  • IPV6INIT — включить ли поддержку IPv6 для этого подключения.
  • ONBOOT — запускать ли это соединение при загрузке системы.
  • UUID — UUID, связанный с этим соединением.
  • ТИП – указывает тип подключения, например Ethernet, Wi-Fi и т. д.

Более подробную информацию о каждом параметре можно найти на странице руководства команды ip addr.

После того, как вы настроите все детали, сохраните и закройте файл. Перезапустите сетевую службу, чтобы изменения вступили в силу.

systemctl restart network

Или просто перезагрузите систему.

Теперь проверьте новый статический IP-адрес с помощью команды:

ip addr

Или вы можете проверить адрес конкретной сетевой карты, как показано ниже.

ip a s enp0s3

Пример вывода:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.150/24 brd 192.168.225.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 2405:204:714e:faa:a00:27ff:fe80:6319/64 scope global noprefixroute 
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe80:6319/64 scope link noprefixroute 
valid_lft forever preferred_lft forever

1.1.2. Установите IP-адрес с помощью Nmtui

Альтернативно вы можете использовать утилиту NetworkManager TUI (nmtui) для настройки IP-адреса.

Если он еще не установлен, вы можете установить его с помощью команды:

dnf install NetworkManager-tui

Теперь запустите утилиту nmtui, введя следующую команду:

nmtui

Выберите опцию Изменить соединение:

Изменить сетевое подключение

Выберите сетевую карту для настройки на левой панели, выберите опцию Изменить справа и нажмите клавишу ВВОД:

Выберите «Редактировать соединение».

Введите IP-адрес, маску сети, шлюз, данные DNS и т. д. Наконец, нажмите «ОК», чтобы сохранить изменения.

Установите IP-адрес с помощью Nmtui

Перезапустите службу Networkmanager:

systemctl restart NetworkManager

Или перезагрузите систему, чтобы изменения вступили в силу.

1.1.3. Установите IP-адрес с помощью Nmcli

nmcli — это интерфейс командной строки NetworkManager для создания, просмотра, изменения, активации, деактивации и удаления сетевых подключений.

Чтобы отобразить все активные и неактивные сетевые подключения, запустите:

nmcli connection show 

Пример вывода:

NAME         UUID                                  TYPE      DEVICE  
System eth0  466779c6-2f49-11ed-a11e-a0e70bdf3dfb  ethernet  eth0    
docker0      97580a1a-1e98-4534-ae8f-52fbbccf6a82  bridge    docker0 

Как вы видите в приведенном выше выводе, он показывает два профиля подключения, а именно «System eth0» и «docker0», а также устройства, к которым они подключены.

Давайте посмотрим, как настроить IP-адрес для соединения eth0.

Чтобы назначить статический IP-адрес интерфейсу eth0 с помощью nmcli, запустите:

sudo nmcli connection modify "System eth0" ip4 192.168.1.20/24 gw4 192.168.1.101 ipv4.dns 8.8.8.8

Здесь мы устанавливаем IP-адрес 192.168.1.20/24 для профиля подключения «System eth0» со шлюзом 192.168.1.101 и DNS 8.8.8.8. Замените имя профиля подключения на свое собственное вместе с IP-адресом, шлюзом и DNS.

Обновите изменения с помощью команды:

sudo nmcli connection up "System eth0"

Вот и все. Мы назначили статический IP-адрес карте eth0.

Давайте проверим это с помощью команды:

ip a

Пример вывода:

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@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.20/24 brd 192.168.1.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::d085:cff:fec7:c1c3/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:a9:0a:0a:9b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Вы также можете проверить IP-адрес, отобразив содержимое файла конфигурации ifcfg-eth0.

cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
UUID=a5da8caa-2f52-11ed-a720-a0e70bdf3dfb
BOOTPROTO=none
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.101
DNS1=8.8.8.8

Рекомендуем прочитать:

  • Как назначить несколько IP-адресов одной сетевой карте в Linux

1.2. Настройка статического IP-адреса в Debian, Ubuntu

Настройка IP-адреса в Debian и Ubuntu с помощью инструментов nmcli и nmtui в точности аналогично, как описано выше. Если вы используете среду рабочего стола в Debian или Ubuntu, nmcli и nmtui уже установлены.

Настройка статического IP-адреса путем редактирования файлов конфигурации сети немного отличается в системах на базе DEB. Следующие шаги показывают, как настроить статический IP-адрес в Debian 11.

1.2.1. Установить статический IP-адрес в Debian

Давайте сначала перечислим доступные сетевые интерфейсы с помощью команды:

ip link show

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether ca:da:d1:bc:ba:65 brd ff:ff:ff:ff:ff:ff
    altname enp0s18

Как вы видите в приведенном выше выводе, имя моей сетевой карты — ens18.

Мы можем установить статический IP-адрес, отредактировав файл конфигурации сетевого интерфейса. Все файлы конфигурации сети хранятся в каталоге /etc/network/ в системах на базе Debian.

Отредактируйте файл /etc/network/interfaces/ с помощью любого текстового редактора:

sudo vim /etc/network/interfaces

Или,

sudo nano /etc/network/interfaces

Добавьте или измените следующие строки, чтобы настроить статический IP-адрес.

auto ens18
iface ens18 inet static
        address 192.168.1.150
        netmask 255.255.255.0
        gateway 192.168.1.101
        dns-nameservers 8.8.8.8    

Установить статический IP-адрес в Debian

Замените ens18 именем вашего сетевого интерфейса, а также IP-адресом, шлюзом и DNS. сохраните файл и закройте его.

Перезапустите службу NetworkManager, чтобы обновить изменения.

sudo systemctl restart networkijng.service

Вот и все. Теперь вы можете проверить IP-адрес с помощью команды:

$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: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether ca:da:d1:bc:ba:65 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 192.168.1.150/24 brd 192.168.1.255 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 fe80::c8da:d1ff:febc:ba65/64 scope link 
       valid_lft forever preferred_lft forever

1.2.2. Назначьте статический IP-адрес в Ubuntu

Как я уже сказал, настройка IP-адреса с помощью инструментов nmcli или nmtui точно такая же, как мы объяснили в разделе «Системы на основе RHEL» выше.

Если вы хотите установить IP-адрес, отредактировав файл конфигурации сети вручную, выполните действия, описанные ниже.

Отредактируйте файл /etc/network/interfaces/ в любом текстовом редакторе:

sudo nano /etc/network/interfaces

Добавьте или измените следующие строки, чтобы настроить статический IP-адрес.

auto enp0s3
iface enp0s3 inet static
 address 192.168.1.105
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 192.168.1.1

Настройте IP-адрес в Ubuntu

Сохраните и закройте файл.

Перезапустите сетевую службу с помощью команды:

sudo systemctl restart ifup@enp0s3

Или,

sudo systemctl restart networking.service

Или просто перезагрузите систему.

Теперь проверьте новый статический IP-адрес, используя любую из следующих команд:

ifconfig
ip addr
ip a s enp0s3

Пример вывода:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe12:f8c1/64 scope link 
 valid_lft forever preferred_lft forever

Посмотреть IP-адрес

Внимание: Начиная с Ubuntu 17.10, мы больше не используем файл /etc/network/interfaces для настройки IP-адреса. В последних версиях Ubuntu мы используем утилиту Netplan для настройки IP-адреса. Чтобы настроить IP-адрес в последних дистрибутивах Ubuntu, перейдите по следующей ссылке.

  • Как настроить IP-адрес в Ubuntu 18.04 LTS

Мы только что узнали, как настроить статический IP-адрес в Linux из командной строки. Давайте теперь настроим статический IP-адрес в Unix. Для целей этого руководства я буду использовать FreeBSD 13.

2. Настройте статический IP-адрес во FreeBSD.

Мы используем команду "ifconfig", чтобы узнать имя сетевой карты во FreeBSD. Здесь я вошел в систему как пользователь root, чтобы выполнить следующие команды.

ifconfig

Пример вывода:

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=81009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER>
    ether 08:00:27:7e:6d:d4
    inet6 fe80::a00:27ff:fe7e:6dd4%em0 prefixlen 64 scopeid 0x1 
    inet6 2405:204:714e:faa:a00:27ff:fe7e:6dd4 prefixlen 64 autoconf 
    inet 192.168.225.27 netmask 0xffffff00 broadcast 192.168.225.255 
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
    inet 127.0.0.1 netmask 0xff000000 
    groups: lo 
    nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

Просмотр IP-адреса во FreeBSD

Здесь em0 — имя сетевой карты.

Чтобы настроить статический IP-адрес, отредактируйте файл /etc/rc.conf:

vi /etc/rc.conf

Добавьте/измените строки, как показано ниже.

hostname="freebsd.ostechnix.local"
ifconfig_em0="inet 192.168.255.110 netmask 255.255.255.0"
defaultrouter="192.168.255.1"
local_unbound_enable="YES"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
powerd_enable="YES"
Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"

Сохраните и закройте файл.

Перезапустите сетевую службу, используя следующую команду:

/etc/rc.d/netif restart && /etc/rc.d/routing restart

Теперь проверьте, был ли IP-адрес изменен или нет, с помощью команды:

ifconfig

Просмотр IP-адреса во FreeBSD с помощью команды ifconfig

Чтобы настроить сетевую карту для получения IP-адреса от DHCP-сервера, добавьте или измените только следующие строки:

hostname="freebsd.ostechnix.local"
ifconfig_em0="DHCP"

Или,

hostname="freebsd.ostechnix.local"
ifconfig_DEFAULT="DHCP inet6 accept_rtadv"

Сохраните и закройте файл. Перезапустите сетевую службу или перезагрузите систему, чтобы изменения вступили в силу.

Связанное чтение:

  • Как настроить статический и динамический IP-адрес в Arch Linux
  • Как найти IP-адрес шлюза по умолчанию в Linux и Unix из командной строки
  • Как узнать состояние подключения сетевого кабеля в Linux
  • vnStat — мониторинг пропускной способности сети в Linux и BSD
  • Отображение информации о сети в Linux с помощью инструмента What IP

Заключение

В этом руководстве мы узнали несколько способов настройки статического IP-адреса в операционных системах Linux и Unix. В первом методе мы присваивали IP-адрес путем редактирования файлов конфигурации сети вручную. Во втором и третьем методе мы использовали nmcli и nmtui для установки IP-адреса из командной строки в Linux.

Избранное изображение Мохамеда Хасана с сайта Pixabay.

Статьи по данной тематике