Найти тему
Aizek INC

Ручная настройка сети в Linux

Подписывайтесь на канал, новости из мира технологий каждый день!

Для доступа к сетевым картам в Linux используются так называемые интерфейсы. Интерфейсы это не файлы устройств и их нет в каталоге /dev. Интерфейсы создаются динамически и не всегда связаны с сетевыми картами. Например интерфейс ppp0 - это интерфейс VPNа, организованного по протоколу PPTP, а интерфейс lo это виртуальная сетевая карта с адресом localhost (127.0.0.1). В Linux имена интерфейсов традиционно состоят из мнемонического типа интерфейса и его порядкового номера. Карты ethernet доступны через интерфейсы eth0, eth1 и т.д. В системах, использующих systemd способ именования другой - интерфейсы имеют имена вида enp2s0 (en -Ethernet, p - PCI, 2 - номер на шине) Список всех интерфейсов можно посмотреть командой ifconfig -a или ip link.

Привязка интерфейса к карте

При наличии нескольких сетевых карт возникает вопрос о порядке их нумерации. В CentOS 6 эта задача возложена на подсистему обнаружения и конфигурации устройств - udev. В системах с systemd правила именования встроены в udev, но могот быть переопределены, как написано ниже.

Конфигурационный файл переименования интерфейсов обновляется автоматически при первом обнаружении очередной сетевой карты и находится в файле /etc/udev/rules.d/70-persistent-net.rules. Файл состоит из строк такого содержания:

# PCI device 0x1af4:0x1000 (virtio-pci)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:29:24:1e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Видно, что нумерация опирается на аппаратный (MAC) адрес карты. Если в компьютере заменить карту, то интерфейс eth0 станет недоступным, а новая карта получит имя eth1. Если есть желание вручную назначить имена картам, то можно отредактировать этот файл, выставив желаемые соответствия между MAC адресами именами интерфейсов (возможно потребуется перезагрузка).

ifcfg

Классическая утилита конфигурации сетевых интерфейсов ifcfg

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

ifcfg

просмотр конфигурации конкретного интерфейса

ifcfg eth0

просмотр списка доступных интерфейсов

ifcfg -a

настройка ip адреса и активация интерфейса

ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up

деактивация интерфейса

ifconfig eth0 down

route

Настройка таблицы маршрутизации route

добавление шлюза по умолчанию

route add default gw 192.168.0.1

добавление маршрута в локальную сеть

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

добавление маршрута в удаленную сеть

route add -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2

удаление маршрута

route del -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2

просмотр таблицы маршрутизации

route

или

netstat -r

ip

В современных дистрибутивах линукса на смену ifconfig и route приходит универсальная утилита ip

просмотр списка доступных интерфейсов

ip link

просмотр статистики по интерфейсам

ip -s link

просмотр ip адресов

ip addr

просмотр таблицы маршрутизации

ip route

DNS

Адреса серверов DNS и имя локального домена вписываются в файл /etc/resolv.conf

search example.com

nameserver 8.8.8.8

Ручная настройка сети в ArchLinux

Для просмотра доступных сетевых интерфейсов используется команда ip link

ArchLinux использует для настройки сети systemd/netctl. Для конфигурации используются файлы профилей, которые хранятся в /etc/netctl/. В данном каталоге есть подкаталог examples/ из которого можно копировать файлы с образцами профилей в /etc/netctl/. Например:

cp /etc/netctl/examples/ethernet-static /etc/netctl/enp1s0-work

Содержимое enp1s0-work после редактирования

Interface=enp1s0

Connection=ethernet

IP=static

Address=('10.1.10.2/24')

Gateway='10.1.10.1'

DNS=('10.1.10.1')

Базовые команды netctl

активация профиля

netctl start enp1s0-work

включение автоматической активации с текущими настройками профиля при старте системы

netctl enable enp1s0-work

обновление конфигурации автостарта после изменения настроек профиля

netctl reenable enp1s0-work

Ручная настройка сети в Ubuntu

Просмотр доступных интерфейсов - ifcfg -a

Файл конфигурации интерфейсов - /etc/network/interfaces. auto - говорит о том, что интерфейс надо конфигурировать при старте системы.

iface eth0 inet static

address 192.168.0.1

netmask 255.255.255.0

gateway 192.168.0.254

auto eth0

iface eth1 inet dhcp

auto eth1

После смены настроек в /etc/network/interfaces, необходимо отключить и снова включить интерфейс.

ifdown eth0

ifup eth0

Ручная настройка сети в CentOS 6

Общие настройки сети

Файл /etc/sysconfig/network используется стартовыми скриптами и содержит ключевые параметры - нужна ли сеть, нужно ли конфигурировать IP v6, имя компьютера. Сюда можно вписать шлюз по умолчанию, но CentOS 6 ориентируется на динамическое подкючение к сетям через WiFi и вписывает его в конфигурацию подходящего интерфейса.

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=wwww.example.com

GATEWAY=10.10.10.1

Конфигурация интерфейса

Файлы в каталоге /etc/sysconfig/network-scripts с именами вида ifcfg-eth0

Интерфейс, получающий адрес по DHCP

# динамическая конфигурация интерфейса

ONBOOT="yes"

DEVICE="eth0"

BOOTPROTO="dhcp"

Ручная конфигурация

# статическая конфигурация интерфейса

ONBOOT="yes"

DEVICE="eth1"

BOOTPROTO="static"

IPADDR=145.14.137.221

PREFIX=24

# конфигурация шлюза и DNS

GATEWAY=192.168.1.1

DEFROUTE=yes

DNS1=192.168.1.14

# NM - NetworkManager - графическая оболочка + автоматизация настроек

NM_CONTROLLED="no"

Дополнительный IP адрес на интерфейсе eth1

ONBOOT=no

DEVICE=eth1:0

BOOTPROTO=static

IPADDR=172.16.12.6

NETMASK=255.255.0.0

# следующие два параметра можно не писать

# они вычисляются из IP и маски

BROADCAST=172.16.255.255

NETWORK=172.16.0.0

Инициализация VLAN на eth1

DEVICE=eth1.72

VLAN=yes

VLAN_TRUNK_IF=eth1

BOOTPROTO=static

IPADDR=10.10.0.1

NETMASK=255.255.255.192

ONBOOT=yes

Настройка DNS

Файл /etc/resolv.conf

# мой домен, для подстановки в короткие имена

search example.com

# сервер DNS

nameserver 8.8.8.8

Ручная настройка имен хостов файл /etc/hosts

127.0.0.1 localhost.localdomain localhost ANY

::1 localhost6.localdomain6 localhost6

194.87.0.50 www.ru

Настройка брандмауэра

Файл /etc/sysconfig/system-config-firewall правила для настройки программой system-config-firewall

Файл /etc/sysconfig/iptables текущие правила, сохраненные на случай перезагрузки.

После ручного изменения правил их можно сохранить командой service iptables save