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

Настройка IP-адреса - один из основных навыков, который должен освоить каждый администратор Linux и Unix. Настроить IP-адрес в режиме графического интерфейса намного проще, поэтому мы не будем описывать это в этом руководстве. Но что в режиме командной строки? Это не так уж сложно. Этот статья описывает, как настроить статический IP в ваших системах Linux и Unix. В этой статье описано, как это сделать в дистрибутивах Linux, таких как CentOS, Debian, Ubuntu и Unix, таких как FreeBSD.

В Fedora, RHEL и его клонах, таких как CentOS, Scientific Linux, конфигурация сетевой карты (кратко NIC) хранится в каталоге /etc/sysconfig/network-scripts/. Для выполнения следующих команд используйте пользователя root. Если же вы вошли в систему как обычный пользователь, просто используйте sudo перед каждой командой.

Сначала необходимо узнать имя сетевой карты. Для этого запустите:

# 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.1.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

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

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

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

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

# nano /etc/sysconfig/network-scripts/ifcfg-enp0s3

nano - текстовый редактор. Вы можете использовать любой текстовый редактор на ваш выбор, например, vi или gedit.

Добавьте 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.1.150"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
  • BOOTPROTO = ”none” - эта строка показывает, что IP-адрес сетевой карты должен быть настроен вручную. Если вы установите значение «dhcp», то сетевая карта будет принимать IP-адрес от любого DHCP-сервера в сети;
  • IPADDR0 = ”192.168.1.150″ - в этой строке указывается IP-адрес сетевой карты. Здесь вы можете заметить число 0 (ноль) после IPADDR. Это означает, что эта карта имеет только один IP-адрес. Если вы хотите установить более одного IP-адреса (то есть виртуального IP-адреса, то вам нужно добавить строки обозначенные как IPADDR1, IPADDR2 и т.д.;
  • PREFIX0 = ”24″ - эта строка указывает маску подсети, т.е. 25.255.255.0. Здесь вы можете указать более одного PREFIX со строками PREFIX1, PREFIX2 и т.д., в соответствии с числом виртуальных IP-адресов;
  • GATEWAY0 = ”192.168.1.1″ - это адрес шлюза NIC;
  • DNS1 = ”192.168.1.1″ - адрес сервера имен.

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

# systemctl restart network

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

Проверим правильность настройки сетевых интерфейсов:

# ip addr

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

# ip a s enp0s3

Пример вывода последней команды

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.1.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

Кроме того, вы можете использовать команду nmtui для настройки IP-адреса.

Введите IP-адрес, маску сети, шлюз, DNS и т.д.

Нажмите OK, чтобы сохранить изменения, и перезапустите сетевую службу или перезагрузите систему, чтобы изменения вступили в силу.

В системах на основе DEB, таких как Ubuntu, Linux Mint, Elementary OS и т.д. файл конфигурации сетевой карты хранится в каталоге /etc/network/

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

Отредактируйте файл /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

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

Перезапустите сетевой интерфейс:

$ sudo systemctl restart ifup@enp0s3

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

Теперь проверьте новый статический 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-адрес в Linux из командной строки. Теперь настроим статический IP-адрес в Unix. В этой статье мы будем использовать FreeBSD 10.3.

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

# ifconfig

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

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
 ether 08:00:27:f8:ba:d8
 inet 192.168.1.103 netmask 0xffffff00 broadcast 192.168.1.255 
 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 media: Ethernet autoselect (1000baseT <full-duplex>)
 status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
 options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
 inet6 ::1 prefixlen 128 
 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
 inet 127.0.0.1 netmask 0xff000000 
 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

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

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

# nano /etc/rc.conf

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

hostname="freebsd.test.local"
ifconfig_em0="inet 192.168.1.103 netmask 255.255.255.0"
defaultrouter="192.168.1.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-адреса от сервера DHCP, добавьте или измените только следующие строки:

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

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

И это все. Теперь вы знаете, как настроить статический IP-адрес в дистрибутивах Unix и Linux. Как видно из приведенных выше примеров, настройка IP-адреса из командной строки не очень сложна, как может показаться.