1. Главная страница » Компьютеры

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

Автор: | 16.12.2019

Для систематизирования информации по настройке сети в ОС Linux было решено написать эту заметку. Здесь в доступной форме описан процесс настройки сетевого интерфейса на примере ОС Ubuntu. Также данное руководство поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.

Содержание

Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:

Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -a:

Из приведенного примера видно, что на компьютере используется два сетевых интерфейса: eth0 и lo.

Интерфейс lo — это локальная петля, которая имеет IP-адрес 127.0.0.1 и предназначена для сетевого доступа к своему же компьютеру. Далее этот интерфейс рассматриваться не будет, так как для эффективной работы не требует дополнительной настройки.

Интерфейс eth0 — это Ethernet сетевая карта, которая имеет сетевые параметры: IP-адрес — 192.168.1.18, маску сети — 255.255.0.0 и MAC-адрес — 00:11:5b:91:25:3e. Значение RUNNING показывает, что в данный момент сетевой интерфейс eth0 работает.

Для просмотра типа соединения, скорости и поддерживаемых параметров сетевым интерфейсом eth0 набираем команду:

Из вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с включенным полным дуплексом (Full Duplex). Полный дуплекс от полудуплекса (Half Duplex) отличается тем, что первый обеспечивает передачу данных в обе стороны одновременно, а второй осуществляет передачу входящих и исходящих данных поочередно.

Команду легко запомнить, так как после названия самой команды идет имя интерфейса и после действие, которое нужно произвести над ним (down или up).

Для возобновления работы сетевого интерфейса eth0:

Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.

Так же по аналогии производится остановка всех интерфейсов:

Настроить сеть можно одним из вышеприведенных способов. Эти два способа абсолютно взаимозаменяемые. Кому как привычнее.

  1. Настройка сети с помощью команд.

Чтобы настроить сетевой интерфейс, не влезая в дебри конфигурационного файла, нужно воспользоваться специальными командами.

Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:

Редактировать будем конфигурационный файл /etc/network/interfaces. Чтобы вывести на экран содержимое конфига, набираем команду:

Если локальная сеть, к которой подключаемся, подразумевает ручную настройку IP-адреса, то содержимое конфигурационного файла должно выглядеть примерно так:

Первые строки оставляем как есть, так как их дополнительная настройка не требуется.

Строка auto eth0 говорит, что сетевой интерфейс eth0 должен стартовать при загрузке ОС.

Вторая строка iface eth0 inet static говорит, что сетевому интерфейсу eth0 IP-адрес задается вручную.

Строка address 192.168.1.18 говорит, что сетевому интерфейсу eth0 назначен IP-адрес 192.168.1.18 (этот сетевой адрес взят для примера и на его месте может быть любой другой).

Строка netmask 255.255.0.0 говорит, что маска сети является 255.255.0.0.

Последняя строчка gateway 192.168.1.253 показывает, что сетевым шлюзом является компьютер с IP-адресом 192.168.1.253. Эта строка может отсутствовать, так как ее наличие в конфигурационном файле зависит от параметров локальной сети, к которой подключается настраиваемый компьютер.

Если в подключаемой локальной сети используется автоматическая раздача сетевых настроек DHCP-сервером, то конфигурационный файл /etc/network/interfaces должен быть приведен к виду:

Настройка DNS-сервера.

Так же во многих случаях для правильной работы локальной сети на настраиваемом компьютере потребуется ввести IP-адрес используемого DNS-сервера.

Для этого нужно открыть конфигурационный файл командой:

Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.

Смена MAC-адреса сетевой карты.

Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:

Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:

Смены скорости сетевого интерфейса.

  1. sergo #
    1 Ноябрь, 23:27

огромное спасибо за статью! в линукс недавно, оч помогло, не подскажете, если сетевых в компьютере две, у одной сетевой dns-server 192.168.0.9, а у другой например 192.168.1.9, корректно будет в одном файле resolv.conf написать
nameserver 192.168.0.9
nameserver 192.168.1.9
Поймут сетевухи кому какой dns?
И можно ли в линукс назначить сетевой карточке какое-то имя, например eth0 это loc, а eth1 это prov?

1. DNS можно указать оба, но сетевым следует указать маски сети 255.255.255.0. Тогда они будут ходить по своим DNS `ам.

2. Про названия сетевых не знаю. Думаю, что можно, это же Linux!!

выключаем интерфейс
ifconfig eth0 down
даем команду
ifrename -i eth0 -n новое_имя (например local)
ifconfig local up
потом в вашем линуксе наверно надо будет в файле /etc/network/interfaces некоторые eth0 поменять на local, у меня просто альт, и этого файла вообще нет, у меня /etc/net/ifaces/папки_с_интерфейсами, и вот у меня надо папку eth0 переименовать в local, ну и потом
service network restart 🙂

Нужно будет добавить в статью, спасибо))

Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255)
В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

gpns: Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0 у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255) В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

Черт, Вы перевернули все мое сознание. Придется переделывать настройки сетевого интерфейса на компьютере, которые работали уже почти 2 года.
Почему тогда командой ifconfig показывается та маска, которую я установил?

Простым языком! Ясно и понятно! Огромное спасибо!
P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

GydruS: P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

Спасибо, приму к сведенью. Хотя вроде отличие есть, в точке )

спасибо за ваш сайт. мне нравится! все доходчиво и понятно
у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.
не могу понять как это сделать.

andrey: спасибо за ваш сайт. мне нравится! все доходчиво и понятно у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.

Если честно давно не сталкивался с DSL -соединениями. Расскажите по потробнее:
1. Какая локальная сеть? За модемом или на другой сетевой?

соединение самое обычное – городская сеть
компьютер подключен через сетевую карту
выход в интернет подключается через соединение DSL

andrey: соединение самое обычное – городская сеть компьютер подключен через сетевую карту выход в интернет подключается через соединение DSL

По-моему Вам нужно настраивать сам модем. Посмотрите в сторону Dual PPPOE
Я что-то подобное делал на роутере D-Link DIR -320, но на модеме не разу.

спасибо. буду искать!

К словам о DSL через локальную сеть: очень много парился, перерыл кучу манов (у меня Debian Lenny) и чтобы избавить других людей от тех же граблей скажу – pppoeconf помогает не всем, у меня например, инет появлялся на пару секунд и пропадал чудным образом. Конфиги, логи не помогли. Но спустя две недели и нару клочьев вырванных волос, наткнулся на простенькую команду ifconfig ppp0 mtu 1372. Надеюсь комуто это поможет. Выговорился, аж легче стало)))

помогите пожалуйста.
только начинаю осваивать Linux.
стоит на машине Ubuntu 10.10. подключено 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?! по отдельности все работает норм, а вместе только виндовая сеть.
виндовая сеть – eth0, модем – eth1

молодец автор!!огромный респект!
а я вот бьюсь…какой Lin выбрать для конторы которая ранее в глаза его не видела….а виндовую сеть суся 12.1 вскрыл за 5 мин))))))))

Я тоже написал подробную заметку про настройка сети, но она больше ориентированная на debian – based дистрибутивы http://www.artcom-ufa.ru/posts/2011/07/20/nastroika-seti-v-linux

Добрый день,у меня в папке etc нет ни папки network,ни папки net,стоит centos 5.7,что делать подскажите

Здравствуйте, такая проблема случилась. К интернету комп подключен через роутер.. Проблема в том, что некоторые сайты не открываются- пишет ошибка преобразования dns .. Что нужно сделать. чтобы все нормально работало?? Заранее спасибо!!

Артем: 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?!

например прописать правила маршрутизации на машине таким образом чтобы пакеты предназначенные для локальной сети отправлялись в етн0 , а все остальные в етн1
но эта тема выходит за рамки данной статьи.

Вполне годная статья. Спасибо огромное

я всего 3-й мес на linux но уже штук 17 перепробовал но никто не хочет dsl подклсразу обрывает локалку оставил zorin и вот поставил ALT -работаю как домашние а для сети ХРюша7 -снес как и все остальные.если-бы сеть на ALT то до конца жизни… я всего лет 7 как освоил комп – стар ужо.

Содержание

Краткое описание руководства

В руководстве приведены примеры редактирования конфигурационных файлов с помощью текстовых редакторов «nano» и «gedit». Обратите внимание на то, что первый редактор запускается в терминале и может быть использован как при запуске Ubuntu с графическим интерфейсом, так и без него, а «gedit» можно использовать только при включенной графической среде.

Требования к системе

Для воспроизведения описанных в руководстве действий подходит любой вариант установки системы. Наличие графического пользовательского интерфейса не обязательно. Все действия необходимо выполнять в консоли. Подразумевается, что команды, начинающиеся с символа $ — необходимо выполнять от пользователя, а начинающиеся с # — от суперпользователя (root).

Прежде чем Вы начнете, убедитесь, что:

Для настроек вам обязательно потребуется имя вашего сетевого адаптера. Его можно узнать из вывода команды:

Она позволяет посмотреть подключенные сетевые устройства.

Пример вывода команды:

Обратите внимание на строку:

eth0 — это и есть искомое имя сетевого интерфейса.

Имя eth0 будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает что используется Ethernet интерфейс, а 0 — номер устройства. Если у вас установлено несколько сетевых устройств, то, соответственно, им будут присвоены имена: eth0 , eth1 , eth2 и т.д.

Более подробно о наименовании сетевых интерфейсов в SystemD можно почитать тут (англ.).

Такое переименование можно отключить добавив в /etc/default/grub, в строку с переменной GRUB_CMDLINE_LINUX_DEFAULT строку net.ifnames=0. После этого нужно выполнить sudo update-grub

Настройка проводной сети

Настройка IP-адреса, шлюза по умолчанию, маски подсети

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

И допишите в него:
Для статического IP:

eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

В итоге файл /etc/network/interfaces должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)

Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl + X , затем Y , убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter .

Более подробно про синтаксис файла /etc/network/interfaces можно прочитать в документации.

Пример конфигурации для динамического IP:

Временная настройка IP-адреса и маски подсети

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

Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0).
eth0 — подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces

Настройка DNS

В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:

Ubuntu до версии 12.04

В более старых версиях ubuntu, когда есть необходимость указать статические адреса DNS серверов (если они не выдаются автоматически) выполните:

Настройка соединений ppp

За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd , более подробная информация о котором доступна в документации. В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.

Соединение PPPoE

В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf , для ее запуска наберите:

Появится «псевдографическое» 2) окно в терминале. Утилита произведет поиск сетевых устройств и выведет их на экран, далее она произведет поиск модема 3) на этих устройствах. Если на этом этапе pppoeconf выдаст отрицательный результат — проверьте правильность подключения, питание модема. Следующий шаг — выбор «популярных параметров» — в большинстве случаев стоит согласиться. Далее утилита запросит Ваш логин, а затем — пароль. Теперь — выбор способа указания DNS серверов. Опять же, в большинстве случаев следует согласиться на получение адресов DNS серверов автоматически. Далее Вам предложат ограничить размер MSS до 1452-х байт — как правило, стоит согласиться. Следующий вопрос — устанавливать ли подключение автоматически при загрузке компьютера. Последний вопрос утилиты — установить ли соединение сейчас. pppoeconf по умолчанию создает для подключения имя dsl-provider. Управлять подключением Вы можете при помощи команд:

Если в Вашем случае опций, предоставляемых утилитой pppoeconf недостаточно — обратитесь к документации по pppd или pppoeconf.

Замечание: при настройке соединения с помощью pppoeconf часть настроек записывается в /etc/network/interfaces , в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги. Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):

Перезагрузитесь или перезапустите Network Manager:

Соединение PPTP

Для осуществления VPN-соединения при помощи pppd Вам потребуется установить пакет pptp-linux , который может быть найден на установочном диске Ubuntu. Далее создайте (от root’а) в папке /etc/ppp/peers файл с названием Вашего провайдера и отредактируйте его, например так:

И добавьте туда опции подключения, например такие:

Далее — отредактируйте файл /etc/chap-secrets 4) и добавьте туда:

После перезагрузки системы Вы сможете управлять соединением при помощи команд:

Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник.

Настройка DIAL-UP подключения

Для настройки модемного соединения можно использовать встроенный конфигуратор pppdpppconfig или специальную утилиту wvdial .

При помощи pppconfig

Процесс настройки при помощи pppconfig во многом похож на утилиту pppoeconfig , Вам по очереди будут заданы вопросы о параметрах подключения, и будет предложено ввести номер телефона, логин и пароль, а также имя соединения. Запускать pppconfig следует с правами суперпользователя. Например так:

Управлять соединением можно так:

Где my-provider — имя, присвоенное Вами соединению при настройке.

При помощи wvdial

В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial . Для этого нужно его сначала установить. Например так:

В состав пакета wvdial входит утилита автоматического конфигурирования — wvdialconf .

Вывод будет примерно следующим:

Теперь остается только отредактировать файл /etc/wvdial.conf и добавить в него номер телефона, логин и пароль.

В данном примере я дополнительно добавил несколько опций. См. комментарии.

Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.

Теперь, когда все настроено, соединение можно установить набрав:

Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой

Прервать соединение можно прервав выполнение команды wvdial , т.е. в том же терминале нужно нажать Ctrl + C .

Автоматическое подключение

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial :

Где my-provider — название вашего соединения.
При использовании wvdial :

Теперь при перезапуске сетевых служб соединение будет автоматически установлено.

Ручная настройка роутинга

Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную — Вы можете создать свой скрипт в /etc/ppp/ip-up.d/ , либо по рекомендации официальной документации создать /etc/ppp/ip-up.local например так:

со следующим кодом:

Далее — сделайте этот скрипт исполняемым, например так:

Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.

Установка MTU и TTL

TTL (Time To Live) — время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами. Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу. Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu). Для DNS -записей TTL определяет время актуальности данных при кешировании запросов.

Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces , например так:

Для изменения величины TTL наберите:

Настройка WiFi

Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces

В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.

Замечания

Дополнительно к требованиям, указанным выше Вам следует учесть, что:

Подготовка

Установите пакеты wpa-supplicant и wireless-tools
Например так:

Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда

должна выдать примерно такой результат:

а доступные сети можно посмотреть командой

которая должна выдать примерно такой результат:

Бывает, что Ваше устройство Wi-Fi не включено по умолчанию, тогда команда вместо рапорта, приведенного выше выдаст такое сообщение:

Ничего страшного, просто введите команду

соответственно выключить устройство можно командой

Настройка

Редактируем /etc/network/interfaces , например так:

Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:

Параметр Описание
iface wlan0 inet dhcp конфигурация для DHCP (для статического IP см. пример ниже)
«iface wlan0» — Имя нашего интерфейса (wlan0, eth1, rausb0, ra0, итд.)
wpa-driver Это wpa-driver для нашей карты
(‘wext’ — общий драйвер для linux, работающий с «ndiswrapper»). Рекомендуется оставить как есть.
Другие варианты:
hostap = Host AP driver (Intersil Prism2/2.5/3)
atmel = ATMEL AT76C5XXx (USB, PCMCIA)
wext = Linux wireless extensions (generic)
madwifi = Atheros
wired = wpa_supplicant wired Ethernet driver
wpa-ssid Имя нашей точки доступа (ESSID). Без кавычек.
wpa-ap-scan Параметр вещания точкой доступа ее имени.
«1» = ESSID вещается всем.
«2» = ESSID скрыт.
wpa-proto Протокол
«RSN» = WPA(2)
«WPA» = WPA(1)
wpa-pairwise & wpa-group «CCMP» = AES-шифрователь (как часть стандарта WPA(2))
«TKIP» = TKIP-шифрователь (как часть стандарта WPA(1))
wpa-key-mgmt «WPA-PSK» = Аутентификация через ключевую фразу (см. ‘Cоздание ключей’)
«WPA-EAP» = Аутентификация при помощи сервера аутентификаций.
auto wlan0 Автоматическое включение wlan0 при загрузке/перезагрузке сети.

Генерация ключей

Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII ) в hex-ключ:

Результат будет примерно таким:

hex-ключ это все символы после «psk=».

Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.

Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так — перезагружаем машину.

Дополнительно

Отключаем чтение файла /etc/network/interfaces для others во избежания попадания пароля от сети к третьим лицам.

Примеры конфигураций

WPA2 + статический IP, скрытый ESSID.

Другие способы работы Wi-Fi оборудования

При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства — обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе Cсылки .

Решение проблем

Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором

Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь. При перезапуске адаптера сети таким образом:

будет выводиться в консоль похожий текст

Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.

Простое решение проблемы состоит в выключении компьютера и выдергивании кабеля питания из розетки с последующим подключением шнура питания и включением компьютера.

Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.

Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором

Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после

перезагрузки маршрутизатора сеть сама собой появляется вновь.

Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:

Простое решение проблемы состоит в комментировании этого параметра, чтобы адаптер не был ограничен только этим каналом, и перезапуске сети

Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.

Перезапуск сети

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

Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами. Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces , либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.

FAQ по сетям

Как зайти на мой компьютер извне (через интернет)?

Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:

Мне кажется, у меня слишком медленно работает сеть!

Измерьте скорость сети между двумя компьютера с помощью iperf . Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP -сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да — с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool ), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.

Как узнать, какие программы слушают порты на моём компьютере?

Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:

Для вывода информации о конкретном порте можно использовать grep . Например, для 80 порта:

Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps :

Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1. Кратковременно, до перезапуска сети:

Навсегда — добавить в /etc/network/interfaces следующее:

Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.

Оригинал: Interface configuration
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 1 апреля 2015 г.

Глава 22. Настройка сетевых интерфейсов

В данной главе описывается процесс настройки сетевых интерфейсов , соответствующих сетевым картам , для последующего использования стека протоколов TCP/IP .

22.1. Следует ли использовать для настройки инструменты с графическим интерфейсом

В состав современных дистрибутивов Linux часто включаются приложения с графическим интерфейсом, предназначенные для настройки параметров сетевых соединений. Некоторые люди жалуются на то, что данные приложения нарушают настройки сетевых соединений в том случае, если они используются одновременно с инструментами с интерфейсом командной строки. Наиболее известными примерами приложений, которые никоим образом не обрабатывают настройки сетевых соединений, сделанные с помощью инструментов с интерфейсом командной строки, являются демон Network Manager (который нередко заменяется на демон wicd ), а также приложение для настройки системы yast .

Так как целью данного курса является изучение приемов администрирования серверов , мы будем считать, что администрирование серверов Linux всегда осуществляется с помощью приложений с интерфейсом командной строки.

В данной главе рассматриваются исключительно вопросы использования инструментов с интерфейсом командной строки для настройки сетевых интерфейсов системы!

К сожалению, не существует единого набора команд и файлов конфигурации в директории /etc , которые могли бы использоваться во всех дистрибутивах Linux. Мы рассмотрим вопросы настройки сетей в двух (значительных, но отличающихся) семействах дистрибутивов Linux.

Начнем с рассмотрения аспектов настройки сетевых интерфейсов в дистрибутивах Debian/Ubintu , после чего перейдем к рассмотрению аналогичных аспектов в дистрибутивах Fedora/RHEL .

22.2. Настройка сетевых интерфейсов в дистрибутивах Debain/Ubuntu

22.2.1. Файл конфигурации /etc/network/interfaces

Файл /etc/network/interfaces является основным файлом настроек сетевых интерфейсов, соответствующих сетевым картам, в дистрибутивах Debain/Ubuntu.

В примере ниже показано, что наша текущая система Ubuntu 11.04 настроена таким образом, что клиент DHCP используется для сетевого интерфейса eth0 (соответствующего первой сетевой карте).

Использование клиента DHCP является отличной практикой в случае настройки клиентских машин, но в случае настройки серверов чаще всего требуется использовать фиксированные IP-адреса .

В примере ниже показано содержимое файла /etc/network/interfaces в случае использования фиксированного IP-адреса .

В примере также показано, что в файле конфигурации помимо единственного IP-адреса могут использоваться дополнительные параметры. Обратитесь к странице руководства interfaces(5) для ознакомления с принципами установки значений таких параметров, как gateway , netmask или каких-либо других.

22.2.2. Утилита /sbin/ifdown

Рекомендуется деактивировать сетевой интерфейс перед изменением его конфигурации (хотя это и не обязательно). Данная операция может быть осуществлена с помощью утилиты ifdown .

Утилита не выведет какого-либо сообщения при деактивации сетевого интерфейса с фиксированным IP-адресом. Однако после деактивации сетевого интерфейса информация о нем больше не будет содержаться в выводе утилиты ifconfig .

Сетевой интерфейс, который был деактивирован, не может использоваться для соединения с сетью без повторной активации.

22.2.3. Утилита /sbin/ifup

Ниже приведен вывод утилиты ifup при активации сетевого интерфейса eth0 с использованием клиента DHCP. (Обратите внимание на то, что данный вывод был получен в дистрибутиве Ubuntu 10.10, при этом в дистрибутиве Ubuntu 11.04 утилита ifup не генерирует вывода по умолчанию).

Подробности использования программных компонентов для работы с протоколом DHCP освещены в отдельной главе курса "Администрирование серверов Linux" .

22.3. Настройка сетевых интерфейсов в дистрибутивах Red Hat/Fedora

22.3.1. Файл конфигурации /etc/sysconfig/network

Файл /etc/sysconfig/network является глобальным файлом конфигурации (для всех сетевых карт). Он позволяет установить, хотим ли мы использовать сетевое соединение (NETWORKING=yes|no), желаемое имя узла (HOSTNAME=), а также адрес шлюза (GATEWAY=).

Существуют и некоторые другие параметры, значения которых могут быть установлены в рамках данного файла, причем информация об этих параметрах приведена в текстовом файле /usr/share/doc/initscripts-*/sysconfig.txt .

22.3.2. Файлы конфигурации /etc/sysconfig/network-scripts/ifcfg-*

Каждая сетевая карта может быть индивидуально настроена в рамках файла конфигурации /etc/sysconfig/network-scripts/ifcfg-* . Если вы используете всего одну сетевую карту, для ее настройки, скорее всего, будет использоваться файл конфигурации /etc/sysconfig/network-scripts/ifcfg-eth0 .

Ниже приведено содержимое файла конфигурации /etc/sysconfig/network-scripts/ifcfg-eth0 в случае использования клиента DHCP (BOOTPROTO="dhcp"). Также обратите внимание на параметр NM_CONTROLLED, который предназначен для запрета управления этой сетевой картой демоном Network Manager . Данный параметр, в отличие от многих других, не описан (и даже не упомянут) в текстовом файле /usr/share/doc/initscripts-*/sysconfig.txt .

В качестве значения переменной BOOTPROTO может использоваться либо строка dhcp , либо строка bootp , любые другие значения будут интерпретироваться как значение static , которое подразумевает отказ от специальных протоколов для установки параметров сетевого интерфейса при его активации.

Ниже приведен пример содержимого файла конфигурации /etc/sysconfig/network-scripts/ifcfg-eth0 в случае использования фиксированного IP-адреса .

Параметр HWADDR предназначен для гарантированного использования заданных значений параметров для определенной сетевой карты при наличии нескольких сетевых карт в системе. Оно не может использоваться для присваивания произвольного MAC-адреса сетевой карте. Для этого вам придется установить значение переменной MACADDR. Не используйте переменные HWADDR и MACADDR в рамках одного файла конфигурации ifcfg-ethx .

Параметры BROADCAST= и NETWORK= из предыдущих версий дистрибутивов RHEL/Fedora являются устаревшими.

22.3.3. Утилиты /sbin/ifup и /sbin/ifdown

Утилиты ifup и ifdown позволяют активировать или деактивировать сетевой интерфейс с использованием описанных выше файлов конфигурации. Данные утилиты ведут себя аналогично соответствующим утилитам из состава дистрибутивов Debian и Ubuntu.

22.4. Утилита ifconfig

При использовании утилиты /sbin/ifconfig без аргументов будет выведен список всех активных сетевых интерфейсов, включая интерфейсы адаптеров беспроводных сетей и петлевой интерфейс. В примере ниже IP-адрес сетевого интерфейса eth0 не установлен.

Также вы можете использовать утилиту ifconfig для получения информации об одной сетевой карте.

В том случае, если для учетных записей обычных пользователей директория /sbin не включена в список директорий с исполняемыми файлами, передаваемый с помощью переменной окружения $PATH , вам придется использовать полный путь к утилите, как и в дистрибутиве Debian.

22.4.1. Активация и деактивация сетевых интерфейсов

Вы можете использовать утилиту ifconfig также для активации и деактивации сетевых интерфейсов. Главное отличие данной утилиты от утилиты ifup состоит в том, что в случае использования команды ifconfig eth0 up сетевой интерфейс будет повторно активирован с сохранением (текущей) конфигурации, в то время, как в случае использования утилиты ifup будет осуществляться чтение соответствующего файла конфигурации, который содержит (возможно обновленные) значения параметров конфигурации, с последующим использованием прочитанных значений параметров конфигурации в процессе активации сетевого интерфейса.

22.4.2. Установка IP-адреса

С помощью утилиты ifconfig вы также можете временно установить IP-адрес сетевого интерфейса. Этот IP-адрес будет использоваться до следующего цикла активации/деактивации сетевого интерфейса с помощью утилит ifup/ifdown или до следующей перезагрузки системы .

22.4.3. Установка MAC-адреса

Кроме того, вы также можете использовать утилиту ifconfig для установки MAC-адреса сетевого интерфейса, отличного от того, который был установлен при изготовлении вашей сетевой карты. В примере ниже показан процесс его установки.

22.4.4. Демон dhclient

Демон /sbin/dhclient обычно исполняется в домашних или клиентских системах, работающих под управлением Linux. Данный демон позволяет получать параметры подключения сетевого интерфейса от DHCP-сервера . В том случае, если в настройках вашего сетевого адаптера есть указание на использование протоколов DHCP или BOOTP , утилита /sbin/ifup будет автоматически осуществлять запуск демона dhclient .

При обновлении данных подключения демон dhclient будет заменять IP-адрес, установленный с помощью утилиты ifconfig !

22.5. Имя узла

Каждый узел получает имя, называемое именем узла (hostname) и обычно находящееся в пространстве имен DNS и формирующее полностью определенное имя домена (Fully Qualified Domain Name — FQDN).

В данном примере показана методика установки имени узла и его проверки с помощью утилиты hostname в случае работы с дистрибутивами Red Hat/Fedora.

Для установки имени узла в дистрибутивах Ubuntu/Debian используется файл /etc/hostname .

Во всех дистрибутивах Linux вы можете изменить имя узла с помощью команды hostname $новое_имя_узла . В этом случае имя узла будет изменяться не на постоянной основе.

В любой системе Linux вы также можете использовать утилиту sysctl для вывода и изменения имени узла.

22.6. Утилита arp

Поиск соответствий между IP- и MAC-адресами осуществляется с помощью протокола ARP второго уровня сетевой модели OSI . Содержимое таблиц ARP может выводиться с помощью одноименной утилиты arp . В примере ниже показан список имен и адресов компьютеров, с которыми не так давно обменивался данными рассматриваемый компьютер.

Узел с именем "anya" является межсетевым экраном Cisco, с именем "faith" — лазерным принтером, с именем "kiss" — медиа-плеером Kiss DP600, с именем "laika" — ноутбуком, а с именами "Agapi", "Shaka" и "Pasha" — серверами SPARC. С помощью символа знака вопроса обозначен сервер под управлением дистрибутива Red Hat Enterprise Linux, работающий в виртуальной машине.

Вы можете использовать команду arp -d для удаления элемента из таблицы ARP .

22.7. Утилита route

Вы можете ознакомиться с локальной таблицей маршрутизации компьютера, воспользовавшись утилитой /sbin/route (а также с помощью команды netstat -r ).

Оказывается, на данном компьютере не установлен адрес шлюза , поэтому мы можем воспользоваться командой route add default gw для непосредственной установки адреса шлюза, используемого по умолчанию .

Если вы не добавите адрес шлюза в один из описанных в начале данной главы файлов конфигурации сетевых интерфейсов из директории /etc/ , ваш компьютер будет забывать этот адрес после каждой перезагрузки.

22.8. Утилита ping

Если удаленный узел обнаруживается в сети с помощью утилиты ping , все необходимые для функционирования стека протоколов TCP/IP настройки были выполнены корректно.

22.9. Дополнительная информация: утилита ethtool

Для вывода и изменения значений рабочих параметров сетевой карты следует использовать утилиту ethtool . Результаты работы утилиты зависят от возможностей вашей сетевой карты. При рассмотрении представленного в примере вывода можно сделать вывод, что сетевая карта осуществляет автоматическое согласование пропускной способности.

А в данном примере показана методика использования утилиты ethtool с целью перевода сетевой карты с режима работы с пропускной способностью в 1000МБит к режиму работы с пропускной способностью в 100МБит и назад. Учтите, что для возврата сетевой карты в режим работы с пропускной способностью в 1000Мбит потребуется некоторое время.

22.10. Практическое задание: настройка сетевых интерфейсов

1. Проверьте, исполняется ли на вашем компьютере демон dhclient .

2. Выведите информацию о вашем текущем IP-адресе (или адресах).

3. Выведите содержимое файла конфигурации, в котором записан используемый IP-адрес .

4. Выполните действия, перечисленные в одном из разделов с описанием процесса н астройки сетевых интерфейсов , для перехода от использования клиента DHCP к использованию фиксированного IP-адреса . Используйте полученный ранее IP-адрес для того, чтобы избежать конфликтов!

5. Установили ли вы корректный адрес шлюза при выполнении предыдущего задания? Если нет, сделайте это сейчас.

6. Проверьте корректность установки адреса шлюза.

7. Проверьте возможность соединения с адресом шлюза, а также корректность работы шлюза.

8. Измените два последних символа в MAC-адресе вашей сетевой карты.

9. Какие порты используются приложениями, работающими по протоколам http, pop3, ssh, telnet, nntp и ftp?

10. Поясните, почему для передачи сообщений электронной почты и доступа к вебсайтам используется протокол TCP , а не UDP .

11. Выведите имя узла вашего компьютера.

12. Выведите список IP-адресов узлов, с которыми ваш компьютер недавно обменивался данными.

22.11. Корректная процедура выполнения практического задания: настройка сетевых интерфейсов

1. Проверьте, исполняется ли на вашем компьютере демон dhclient .

2. Выведите информацию о вашем текущем IP-адресе (или адресах).

3. Выведите содержимое файла конфигурации, в котором записан используемый IP-адрес .

В дистрибутивах Ubuntu/Debian: cat /etc/network/interfaces

В дистрибутивах RedHat/Fedora: cat /etc/sysconfig/network-scripts/ifcfg-eth*

4. Выполните действия, перечисленные в одном из разделов с описанием процесса н астройки сетевых интерфейсов , для перехода от использования клиента DHCP к использованию фиксированного IP-адреса . Используйте полученный ранее IP-адрес для того, чтобы избежать конфликтов!

В дистрибутивах Ubuntu/Debian:

В дистрибутивах RedHat/Fedora:

5. Установили ли вы корректный адрес шлюза при выполнении предыдущего задания? Если нет, сделайте это сейчас.

6. Проверьте корректность установки адреса шлюза.

7. Проверьте возможность соединения с адресом шлюза, а также корректность работы шлюза.

8. Измените два последних символа в MAC-адресе вашей сетевой карты.

9. Какие порты используются приложениями, работающими по протоколам http, pop3, ssh, telnet, nntp и ftp?

10. Поясните, почему для передачи сообщений электронной почты и доступа к вебсайтам используется протокол TCP , а не UDP .

Так как протокол TCP является надежным, а протокол UDP не является таковым.

11. Выведите имя узла вашего компьютера.

12. Выведите список IP-адресов узлов, с которыми ваш компьютер недавно обменивался данными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *