http://manpages.ubuntu.com/manpages/lucid/man5/interfaces.5.html
http://manpages.ubuntu.com/manpages/lucid/man8/ip.8.html
man interfaces - первоисточник по конфигурации Ethernet интерфейсов
Примечание
Команда ifconfig считается устаревшей и не рекомендована к использованию, вместо нее следует использовать исключительно команду ip
Перезапуск сетевых интерфейсов
/etc/init.d/networking restart выполнение такой команды в Debian приводит к тому, что система жалуется нам:
"Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ..."
Вместо этого лучше использовать команды ifdown eth0, а затем ifup eth0, для каждого отдельно взятого интерфейса ethX.
Если мы работаем удаленно и связаны, к примеру, с удаленным хостом черех eth0, то выполнение ifdown eth0 приведет к отключению интерфейса и потере связи с сервером, поэтому перезапускаем интерфейс такой командой:
#ifdown eth0 && ifup eth0
что последовательно выполняет команды ifdown eth0, а затем ifup eth0
Системная часть
cat /proc/net/dev посмотреть все сетевые интерфейсы, подключенные к системе. Будут показаны активные и неактивные сетевые карты
ifconfig показывает статус текущих активных сетевых интерфейсов - команда не работает в
ip link show up показывает статус текущих сетевых интерфейсов
ifconfig -a показывает статус всех доступных в системе сетевых интерфейсов - активных и неактивных - устаревает
ip address показывает статуc всех сетевых интерфейсов
2: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:af:8c:e6:93:e2 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:af:af:66:ae:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.77.191/24 brd 192.168.77.255 scope global wlan0
inet6 fe80::215:afff:fe66:ae44/64 scope link
valid_lft forever preferred_lft forever
ip address в чем-то более информативна, чем ifconfig
NO-CARRIER - нет связи, не воткнут кабель итп.
UP - активирован интерфейс
00:af:af:66:ae:44 MAC-адрес
192.168.77.191/24 IP-адрес/маска подсети
192.168.77.255 широковещательный адрес
sudo lspci - список pci устройств, среди которых есть и сетевые карты
sudo lspci -v подробнее; sudo lspci -vv - еще подробнее; sudo lspci -vvv - подробнее не бывает :)
sudo lshw - список оборудования, можно посмотреть и логическое имя сетевой карты (по умолчанию не установлен, можно установить lshw и lshw-gtk)
sudo lshw -class network список сетевого оборудования с логическими именами, нас интересует в первую очередь logical name
ifconfig, rourte и netstat - устаревшие команды(legacy), вместо них нужно использовать ip и ss
sudo ip link set wlan0 down - деактивировать wlan0 (sudo ifconfig wlan0 down)
sudo ip link set wlan0 up -активировать wlan0 (sudo ifconfig wlan0 up)
/etc/udev/rules.d/70-persistent-net.rules привязка имен eth0, eth1, ... ,ethX к сетевым картам, привязка идет на основе мак-адреса сетевой карты.
Подредактировав данный файл можно убрать привязки тех сетевых карт, которые ранее втыкались в комп и сделать аккуратную сплошную нумерацию для логических имен сетевых интерфейсов. Может пригодиться при перетыкании сетевых карт, чтобы не переписывать правила для iptables
Переназначить имена можно также при помощи всемогущей команды ip
Настройка сетевых карт:
man 5 interfaces - руководство
/etc/network/interfaces файл настроек сетевых карт
Добавить шлюз по умолчанию:
1) ip route add default via 7.7.7.1 dev eth1
(Этот шлюз пропадет при перезапуске сетевых интерфейсов
/etc/init.d/networking restart - т.е. в файл /etc/network/interfaces запись не производится)
После добавления таким образом шлюза ip route дает такой вывод:
....
default via 7.7.7.1 dev eth1
2) вносим в файл /etc/network/interfaces запись после eth1:
gateway 7.7.7.1, после чего делаем /etc/init.d/networking restart
ip route выдаст такой результат:
.....
default via 7.7.7.1 dev eth1 metric 100
Пример файла interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 7.7.7.7
netmask 255.255.255.0
network 7.7.7.0
broadcast 7.7.7.255
dns-nameservers 192.168.0.1 x.x.x.x y.y.y.y
dns-search lan
post-up iptables-restore < /etc/iptables.up.rules
gateway 7.7.7.1
# dns-* options are implemented by the resolvconf package, if installed
# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
Еще один пример для интерфейса, получающего настройки от DHCP-сервера:
auto eth0
iface eth0 inet dhcp
Еще один пример для интерфейса, получающего настройки от DHCP-сервера:
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
Еще один пример для статически заданного интерфейса:
auto eth0
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.254
Важно!
Нельзя указывать автоматически стартующие интерфейсы таким способом:
auto lo, eth0 - нельзя так делать
в этом случае интерфейс lo не будет распознан системой и получим букет проблем со стартом сетевых сервисов
Грабли:
Задача. Есть два сетевых интерфейса: eth1 и eth2. Пусть eth1 настроен на WAN. Хотим, чтобы eth2 смотрел в WAN вместо eth1. Подключаем кабель, редактируем /etc/network/interfaces, делаем:
sudo /etc/init.d/networking restart
далее пытаемся пинговать внешний мир c хоста - болт32,
соответственно не пингуется и узел извне.
Смотрим активные сетевые интерфейсы: ifconfig
Активные eth1 и eth2, ip route показывает также два активных маршрута для обеих сетевых карт.
Гасим старый интерфейс eth1 принудительно
sudo ifconfig eth1 down
После чего все работает, как ожидается (reboot также решает проблему).
Возникают грабли, поскольку мы "забыли" вписать строчку auto eth1 в файле /etc/network/interfaces
"Забываем" про строчки, потому что в новых дистрибутивах автозапуск интерфейсов иногда оформляют так:
auto lo eth1 eth2, тогда строчки auto eth1 и auto eth2 - необязательны
Иточник:
http://ubuntologia.ru/forum/viewtopic.php?f=109&t=2300&p=20195
Указание DNS-серверов
DNS можно не указывать в настройках сетевых соединений. В этом случае необходимо прописать DNS-сервера в файле
/etc/resolv.conf - при работающем NetworkManager, этот файл генерируется им. В серверной версии Ubuntu без NetworkManager этот файл является статичным
Пример файла:
domain lan
search lan
nameserver 204.11.126.131
nameserver 64.125.134.133
nameserver 64.125.134.132
Директива nameserver указывает, какие DNS сервера использовать для разрешения имен, search определяет какой суффикс будет автоматически добавляться к неполному имени хоста. В нашем случае ping server будет интерпретировано как ping server.lan
Вышесказанное справедливо для статических интерфейсов без получения настроек по DHCP
/etc/hosts
Пример файла hosts:
127.0.0.1 localhost
127.0.1.1 ssd (имя hosta)
127.0.0.1 eshop.lan
127.0.0.1 www.eshop.lan
127.0.0.1 www.tutorial.lan
127.0.0.1 tutorial.lan
177.177.177.177 dev.com такая запись на клиентском компьютере позволит обратиться к веб-серверу по адресу 177.177.177.177, который настроен выдавать сайт dev.com, но пока что не откликается по доменному имени по причине того, что сервера в DNS еще не актуализировали свои данные по недавно внесенным изменениям
192.168.77.1 gate.lan такая запись понадобится squid?, здесь указан адрес и имя хоста, являющегося прокси-сервером
При преобразовании доменного имени в IP-адрес система сначала пытается сделать это, используя файл hosts, а затем идет обращение к DNS-серверам, указанным в /etc/resolv.conf (этот порядок по умолчанию можно модифицировать)
/etc/hostname (имя хоста)
Имя хоста задается в файле /etc/hostname
host-name
NetworkManager
Апплет в Gnome + программа-сервис, которая помогает нам создавать и управлять сетевыми соединениями в графической среде. Приложение ведет себя не всегда предсказуемо.
/etc/NetworkManager/system-connections/ - папка, где находятся файлы, описывающие сетевые соединения, имя соединения совпадает с именем файла в этой папке, в файлике для WiFi соединений можно посмотреть ключ шифрования беспроводной сети.