Для доступа к сетевым картам в 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 eth0
#просмотр списка доступных интерфейсов
ifcfg -a
#настройка ip адреса и активация интерфейса
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
#деактивация интерфейса
ifconfig eth0 down
Настройка таблицы маршрутизации 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
В современных дистрибутивах линукса на смену ifconfig
и route
приходит универсальная утилита ip
#просмотр списка доступных интерфейсов
ip link
#просмотр статистики по интерфейсам
ip -s link
#просмотр ip адресов
ip addr
#просмотр таблицы маршрутизации
ip route
Адреса серверов DNS и имя локального домена вписываются в файл /etc/resolv.conf
search example.com
nameserver 8.8.8.8