В этой статье рассмотрим основные этапы настройки сети в Debian и дистрибутивах основанных на нем такие как Ubuntu. Здесь рассмотрено как настраивать сетевые интерфейсы руками без использования графических мастеров, что иногда бывает удобней и быстрее.
Информация об интерфейсах
В linux сетевые интерфейсы обычно обозначаются как eth0, eth1, eth2 и т.д. по количеству сетевых карт установленных в компьютере. Для Wi-Fi карты интерфейсы будет называться wlan0, wlan1, wlan2 и т.д.
Для начала выясним какие сетевые карты (интерфейсы) нам доступны выполним команду:
ifconfig -a
В результате мы получим информацию обо всех сетевых интерфейсах включая неактивные:
eth0 Link encap:Ethernet HWaddr 00:1f:c6:fe:25:e8 inet addr:192.168.0.196 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::23f:c6ff:fede:49e8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:47560082 errors:0 dropped:0 overruns:0 frame:0 TX packets:37740170 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7815177901 (7.8 GB) TX bytes:68243054986 (68.2 GB) Interrupt:17 lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:72869 errors:0 dropped:0 overruns:0 frame:0 TX packets:72869 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6081898 (6.0 MB) TX bytes:6081898 (6.0 MB)
Здесь видно два интерфейса рассмотрим их подробно.
Первый интерфейс eth0 это наша основная сетевая карта типа Ethernet. Команда ifconfig отображает следующую информацию MAC-адрес (HWaddr), IP-адрес (inet addr), маску сети (Mask). Особое внимание обратите на четвертую сточку она показывает статус работы сетевого интерфейса, если строка начинается со слова UP то интерфейс запущен, если при этом есть слово RUNNING то это значит что в сетевую карту вставлен патч-корд и она работает нормально. Так же проверьте статистику здесь можно увидеть количество принятых (RX packets) и переданных (TX packets) пакетов, если наблюдается много ошибок (errors) то сеть не настроена или плохо работает. Второй интерфейс lo или local loopback (локальная петля) используется для того, что-бы компьютер мог обращаться к самому себе и имеет по-умолчанию ip-адрес 127.0.0.1 на всех компьютерах.
Для Wi-Fi карт также полезно посмотреть команду:
iwconfig wlan0
Эта команда отображает такие сведения как частоту канала, качество сигнала, скорость соединения и ряд других параметров свойственных Wi-Fi.
Если у вас вообще отсутствует сетевой интерфейс eth0 (wlan0) то вероятно на вашу сетевую карту не установлен драйвер и его придется устанавливать самостоятельно но эта тема выходит за рамки этой статьи.
Автоматическая настройка сети через DHCP
Для быстрой и удобной настройки IP адресов и не которых других сетевых настроек часто используют протокол DHCP (dynamic host configuration protocol). Чтобы настроить DHCP клиент достаточно привести файл /etc/network/interfaces к следующему виду:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
Чтобы изменения применить нужно перезапустить сетевую службу:
sudo /etc/init.d/networking restart
Важно: Если вы сидите на удаленном компьютере через SSH то лучше будет полностью перезагрузить компьютер т.к. при перезапуске сетевой службы сетевые интерфейсы выключатся но включить их можно будет только подойдя к компьютеру.
Если хотите посмотреть как происходит запрос на получение IP у DHCP сервера то выполните команду:
sudo dhclient -v
Настройка статического IP
Но часто бывает необходимо настроить постоянный адрес там где нет DHCP сервера. Открываем файл /etc/network/interfaces и пишем туда:
auto lo iface lo inet loopback allow-hotplug eth0 iface eth0 inet static address 192.168.0.196 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 8.8.8.8 192.168.0.2 dns-search mydomain.local
Это минимальный конфиг необходимый для работы сети. Указываем IP адрес маску и шлюз по умолчанию. В параметре dns-nameservers указываем через пробел DNS серверы вашего провайдера или локальной сети. Параметр dns-search обычно указывает имя домена или рабочей группы в сети.
Важно: Если у вас несколько сетевых интерфейсов то указывать шлюз (gateway) нужно только на одном интерфейсе который является основным и подключен к интернету, иначе сеть может не работать или работать нестабильно.
Настройка DNS
DNS (domain name system) — распределенная система которая сопоставляет имена доменов и их IP адреса. Т.е. эта система которая позволяет в браузере писать легко запоминающиеся названия сайтов в место цифровых IP адресов с которыми удобней работать компьютерам.
Чтобы узнать IP адрес сервера где находится сайт можно воспользоваться командой:
nslookup yandex.ru
В результате мы видим что сайт яндекса распределен сразу по нескольким ip адресам и информация получена с dns сервера указанного в настройках:
Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: yandex.ru Address: 87.250.250.11 Name: yandex.ru Address: 93.158.134.11 Name: yandex.ru Address: 213.180.193.11 Name: yandex.ru Address: 213.180.204.11 Name: yandex.ru Address: 77.88.21.11
Если запросы не работают то есть два варианта.
Для статических адресов необходимо открыть файл /etc/resolve.conf и указать в нем DNS сервера вашего провайдера или сервера в локальной сети:
search mydomain.local nameserver 8.8.8.8 nameserver 192.168.0.2
Вообще эти параметры мы уже указывали при настройки интерфейсов так что эти сточки должны были сами сюда прописаться.
Для динамических адресов открываем файл /etc/dhcp3/dhclient.conf и добавляем строчку:
prepend domain-name-servers 192.168.200.1, 192.168.200.2;
Затем обновляем настройки командой
sudo dhclient
Затем опять проверяем через nslookup.
Проверка соединения
Самый простой способ проверить что сетевой компьютер доступен и сеть работает это выполнить команду:
ping -c 4 8.8.8.8
В результате получим:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_req=1 ttl=50 time=23.5 ms 64 bytes from 8.8.8.8: icmp_req=2 ttl=50 time=21.5 ms 64 bytes from 8.8.8.8: icmp_req=3 ttl=50 time=25.2 ms 64 bytes from 8.8.8.8: icmp_req=4 ttl=50 time=22.1 ms --- 8.8.8.8 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 21.567/23.132/25.246/1.419 ms
Мы отправляем эхо запросы (icmp пакеты) и сервер должен ответить на них. Если потерянных пакетов 0% (packet loss) то значит сеть работает хорошо. Но сетевые экраны (firewall) могут блокировать эхо запросы что впрочем нестрашно, если сеть и интернет работает.
Хорошая и подробная статья, я тоже написал статью про настройку сети в debian/ubuntu
http://www.artcom-ufa.ru/posts/2011/07/20/nastroika-seti-v-linux