Настройка сети в Linux

Обновлено: 02.07.2024

Компьютеры объединены в сеть для обмена информацией или ресурсами друг с другом. Два или более компьютеров соединены через сетевую среду, называемую компьютерной сетью. Для формирования компьютерной сети используется ряд сетевых устройств или носителей.

Компьютер, на котором установлена ​​операционная система Linux, также может быть частью сети, независимо от того, является ли она небольшой или большой сетью, благодаря своей многозадачности и многопользовательскому характеру. Поддержание работоспособности системы и сети является задачей системного/сетевого администратора.

В этой статье мы рассмотрим часто используемые команды настройки сети и устранения неполадок в Linux.

1. Команда ifconfig

Команда ifconfig (конфигуратор интерфейса) используется для инициализации интерфейса, назначения IP-адреса интерфейсу и включения или отключения интерфейса по требованию.

С помощью этой команды вы можете просмотреть IP-адрес и аппаратный/MAC-адрес, назначенный интерфейсу, а также размер MTU (максимальная единица передачи).

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

Установка IP-адреса и шлюза в Linux

Назначение IP-адреса и шлюза интерфейсу на лету. Параметр будет удален в случае перезагрузки системы.

Включить или отключить определенный интерфейс

Чтобы включить или отключить определенный интерфейс, мы используем пример команды следующим образом.

Включить eth0
Отключить eth0

Настройка размера MTU

По умолчанию размер MTU равен 1500. Мы можем установить требуемый размер MTU с помощью приведенной ниже команды. Замените XXXX на размер.

Перевести интерфейс в неразборчивый режим

Сетевой интерфейс получал только пакеты, принадлежащие этому конкретному сетевому адаптеру. Если вы переведете интерфейс в неразборчивый режим, он будет получать все пакеты. Это очень полезно для захвата пакетов и их последующего анализа. Для этого вам может потребоваться доступ суперпользователя.

Обновление: команда ifconfig заменена командой IP в большинстве современных дистрибутивов Linux.

2. Команда проверки связи

Команда Ping (Packet INInternet Groper) — лучший способ проверить подключение между двумя узлами. Будь то локальная сеть (LAN) или глобальная сеть (WAN).

Ping использует протокол ICMP (Internet Control Message Protocol) для связи с другими устройствами. Вы можете пропинговать имя хоста или IP-адрес, используя приведенные ниже команды.

В Linux команда ping продолжает выполняться, пока вы ее не прервете. Ping с опцией -c завершает работу после N запросов (успех или ответ об ошибке).

3. Команда трассировки

traceroute — это утилита для устранения неполадок в сети, которая показывает количество прыжков, необходимых для достижения пункта назначения, а также определяет путь прохождения пакетов. Ниже мы отслеживаем маршрут до IP-адреса глобального DNS-сервера и можем достичь пункта назначения, также показывает путь, по которому движется этот пакет.

4. Команда Netstat

Команда Netstat (статистика сети) отображает информацию о соединении, информацию о таблице маршрутизации и т. д. Чтобы отобразить информацию о таблице маршрутизации, используйте параметр -r .

Для получения дополнительных примеров команды Netstat, пожалуйста, прочитайте нашу предыдущую статью о 20 примерах команд Netstat в Linux.

Обновление: в большинстве современных дистрибутивов Linux команда netstat заменена командой ss (статистика сокетов).

5. Команда копать

Dig (сборщик информации о домене) запрашивает информацию, связанную с DNS, такую ​​как запись A, CNAME, запись MX и т. д. Эта команда в основном используется для устранения неполадок, связанных с запросами, связанными с DNS.

Для получения дополнительных примеров команды Dig прочитайте статью о 10 командах Linux Dig для запроса DNS.

6. Команда Nslookup

Чтобы узнать больше о команде Nslookup, прочитайте статью о 8 примерах команды Nslookup в Linux.

7. Команда маршрута

Команда route также показывает и управляет таблицей IP-маршрутизации. Чтобы просмотреть таблицу маршрутизации по умолчанию в Linux, введите следующую команду.

Добавление, удаление маршрутов и шлюза по умолчанию с помощью следующих команд.

Добавить маршрут в Linux
Удалить маршрут в Linux
Добавить шлюз по умолчанию в Linux

8. Команда хоста

команда хоста, чтобы найти имя для IP или IP для имени в IPv4 или IPv6, а также запросить записи DNS.

Использование параметра -t для поиска записей ресурсов DNS, таких как CNAME, NS, MX, SOA и т. д.

9. Арп-команда

ARP (протокол разрешения адресов) полезен для просмотра/добавления содержимого таблиц ARP ядра. Чтобы просмотреть таблицу по умолчанию, используйте команду as.

10. Команда Ethtool

ethtool заменяет mii-tool. Это для просмотра, настройки скорости и дуплекса вашей сетевой карты (NIC). Вы можете установить дуплекс на постоянной основе в /etc/sysconfig/network-scripts/ifcfg-eth0 с помощью переменной ETHTOOL_OPTS.

11. Команда Iwconfig

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

12. Команда имени хоста

Имя хоста используется для идентификации в сети. Выполните команду hostname, чтобы увидеть имя хоста вашего ящика. Вы можете установить постоянное имя хоста в /etc/sysconfig/network. Необходимо перезагрузить коробку после установки правильного имени хоста.

13. Инструменты Nmcli и Nmtui

Инструменты Nmcli и Nmtui используются для настройки параметров сети, а также для управления сетевыми устройствами, создания, изменения, активации/деактивации и удаления сетевых подключений в системах Linux.

Nmtui Network Manager

Эта статья может быть полезна для повседневного использования сетевыми администраторами Linux в Linux/Unix-подобных операционных системах. Пожалуйста, поделитесь в нашем поле для комментариев, если мы что-то пропустили.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

люди на вершине подключенного земного шара

Подключить компьютер Linux к сети довольно просто, за исключением случаев, когда это не так. В этой статье я расскажу об основных файлах конфигурации сети для дистрибутивов Linux на основе Red Hat и рассмотрю две службы запуска сети: почтенный запуск сети и вызывающий споры NetworkManager.

Linux легко управляет несколькими адаптерами сетевого интерфейса. Ноутбуки обычно включают в себя как проводные, так и беспроводные интерфейсы, а также могут поддерживать интерфейсы WiMax для сотовых сетей. Настольные компьютеры с Linux также поддерживают несколько сетевых интерфейсов, и вы можете использовать свой компьютер с Linux как многосетевой клиент или как маршрутизатор для внутренних сетей; так обстоит дело с несколькими моими собственными системами.

Файлы конфигурации интерфейса

Каждый сетевой интерфейс имеет собственный файл конфигурации в каталоге /etc/sysconfig/network-scripts. У каждого интерфейса есть файл конфигурации с именем ifcfg-X, где X — номер интерфейса, начинающийся с нуля или 1, в зависимости от используемого соглашения об именах; например, /etc/sysconfig/network-scripts/ ifcfg-eth0 для первого интерфейса Ethernet.

Большинство других файлов в каталоге /etc/sysconfig/network-scripts — это сценарии, используемые для запуска, остановки и выполнения различных действий по настройке сети.

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

Соглашения об именовании сетевых интерфейсов

Раньше соглашения об именах для сетевых интерфейсов были простыми, несложными и, как мне казалось, легкими. Использование ethX имело для меня смысл и было легко печатать. Не требовалось дополнительных действий, чтобы выяснить, какое длинное и непонятное имя принадлежит интерфейсу. К сожалению, добавление нового интерфейса часто вынуждало переименовывать сетевые интерфейсы, что нарушало сценарии и конфигурации. Все менялось, и не раз.

После непродолжительного использования длинных и непонятных имен сетевых интерфейсов у нас теперь есть третий набор соглашений об именах, которые кажутся лишь немногим лучше. Такие имена, как ethX, по-прежнему используются в CentOS 6.x. Новейшие соглашения об именах с такими именами, как eno1 и enp0s3, используются в RHEL 7, CentOS 7 и более поздних выпусках Fedora. Соглашение об именовании интерфейсов для RHEL 6 и CentOS 6 описано в Приложении A. Согласованное наименование сетевых устройств Руководства по развертыванию Red Hat. RHEL 7, CentOS 7 и текущие версии Fedora описаны в Главе 8. Согласованное именование сетевых устройств Руководства Red Hat Networking.

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

Этот пример файла конфигурации сетевого интерфейса, ifcfg-eth0, определяет конфигурацию статического IP-адреса для установки сервера CentOS 6.

Этот файл запускает интерфейс при загрузке, назначает ему статический IP-адрес, определяет домен и сетевой шлюз, указывает два DNS-сервера и не позволяет пользователям без полномочий root запускать и останавливать интерфейс.

Следующий файл конфигурации интерфейса, ifcfg-eno1, предоставляет конфигурацию DHCP для настольной рабочей станции.

В этом втором примере файла конфигурации записи DHCP, IP-адрес, домен поиска и вся другая сетевая информация не определены, поскольку они предоставляются DHCP-сервером. Элементы конфигурации, такие как DNS-серверы, можно переопределить в файле конфигурации интерфейса, добавив строки DNS1 и DNS2, как в предыдущем примере статической конфигурации.

Обратите внимание, что второй пример содержит строку UUID. Насколько я могу судить, эта строка не влияет на функциональность файла конфигурации. Я обычно комментирую или даже удаляю его, и никогда не испытывал пагубного влияния на свою сеть.

В обоих файлах конфигурации интерфейса строка HWADDR указывает MAC-адрес физического сетевого интерфейса. Это связывает физический интерфейс с файлом конфигурации интерфейса. При замене интерфейса необходимо изменить MAC-адрес в файле.

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

Строка ONBOOT указывает, что интерфейс должен быть активирован во время запуска. Если изменить значение этой строки на «нет», интерфейс необходимо будет активировать либо вручную, либо с помощью NetworkManager после входа пользователя в систему.

Строка USERCTL указывает, что непривилегированные пользователи не могут управлять интерфейсом; то есть они не могут включать и выключать его. Установка для этого параметра значения «да» позволяет обычным пользователям активировать и деактивировать интерфейс.

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

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

Существует множество параметров конфигурации файлов конфигурации интерфейса. Вот некоторые из наиболее распространенных вариантов:

  • УСТРОЙСТВО. Логическое имя устройства, например eth0 или enp0s2.
  • HWADDR: MAC-адрес сетевой карты, связанной с файлом, например 00:16:76:02:BA:DB
  • ONBOOT: запуск сети на этом устройстве при загрузке хоста. Варианты да/нет. Обычно для этого параметра установлено значение «нет», и сеть не запускается, пока пользователь не войдет в систему на рабочем столе. Если вам нужно, чтобы сеть запускалась, когда никто не вошел в систему, установите для этого параметра значение "да".
  • IPADDR: IP-адрес, назначенный этой сетевой карте, например 192.168.0.10.
  • BROADCAST: широковещательный адрес для этой сети, например 192.168.0.255.
  • NETMASK: маска подсети для этой подсети, например маска класса C 255.255.255.0
  • СЕТЬ: идентификатор сети для этой подсети, например идентификатор класса C 192.168.0.0.
  • ПОИСК: DNS-имя домена для поиска при поиске по неполным именам хостов, таким как "example.com"
  • BOOTPROTO: протокол загрузки для этого интерфейса. Варианты статические, DHCP, bootp, нет. Параметр "нет" по умолчанию является статическим.
  • ШЛЮЗ: сетевой маршрутизатор или шлюз по умолчанию для этой подсети, например 192.168.0.254.
  • ETHTOOL_OPTS: этот параметр используется для установки определенных элементов конфигурации интерфейса для сетевого интерфейса, таких как скорость, состояние дуплекса и состояние автосогласования. Поскольку этот параметр имеет несколько независимых значений, значения должны быть заключены в один набор кавычек, например: "autoneg off speed 100 duplex full".
  • DNS1: основной DNS-сервер, например 192.168.0.254, который является сервером в локальной сети. Указанные здесь DNS-серверы добавляются в файл /etc/resolv.conf при использовании NetworkManager или когда для директивы peerdns задано значение yes, в противном случае DNS-серверы необходимо добавить в /etc /resolv.conf вручную и здесь игнорируются.
  • DNS2: дополнительный DNS-сервер, например 8.8.8.8, который является одним из бесплатных DNS-серверов Google. Обратите внимание, что третичный DNS-сервер не поддерживается в файлах конфигурации интерфейса, хотя третий может быть настроен в энергонезависимом файле resolv.conf.
  • ТИП: Тип сети, обычно Ethernet. Единственной другой ценностью, которую я когда-либо видел здесь, был Token Ring, но сейчас это в основном не имеет значения.
  • PEERDNS: параметр yes указывает, что /etc/resolv.conf необходимо изменить, вставив в этот файл записи DNS-сервера, указанные параметрами DNS1 и DNS2. "Нет" означает, что файл resolv.conf не следует изменять. «Да» — это значение по умолчанию, если DHCP указан в строке BOOTPROTO.
  • USERCTL: указывает, могут ли непривилегированные пользователи запускать и останавливать этот интерфейс.Варианты: да/нет.
  • IPV6INIT: указывает, применяются ли к этому интерфейсу протоколы IPV6. Варианты: да/нет.

Если указан параметр DHCP, большинство других параметров игнорируются. Единственными обязательными параметрами являются BOOTPROTO, ONBOOT и HWADDR. Другими параметрами, которые могут оказаться полезными, но которые не игнорируются, являются параметры DNS и PEERDNS, если вы хотите переопределить записи DNS, предоставленные DHCP-сервером.

Устаревший сетевой файл

Вы можете столкнуться с одним старым и устаревшим файлом. Сетевой файл обычно содержит только одну строку комментариев для текущих выпусков Fedora, RHEL и CentOS. Он находится в /etc/sysconfig и использовался в прошлом для включения или отключения сети. Он также использовался для установки имени сетевого хоста, как показано в следующем примере:

Этот файл присутствует, но не используется в Fedora с выпуска 19. Он по-прежнему используется в RHEL/CentOS 6.x, но больше не используется в RHEL/CentOS 7.x. Теперь сетевое имя хоста задается в файле /etc/hostname.

Другие сетевые файлы

Каталог /etc/sysconfig/network-files содержит много других файлов, все из которых обычно представляют собой исполняемые сценарии BASH, а не файлы конфигурации. По крайней мере, для меня это одно из надоедливых исключений из иерархического стандарта файловой системы Linux (FHS), в котором прямо указано, что в дереве /etc должны находиться только файлы конфигурации, а не исполняемые файлы.

Еще один файл конфигурации сети, который вы можете найти в /etc/sysconfig/network-files, — это файл route-. Если вы хотите настроить статические маршруты в многосетевой системе, создайте файл маршрута для каждого интерфейса. Например, следующий файл называется route-eth0 и определяет маршруты для этого конкретного интерфейса как к сетям, так и к отдельным хостам.

Этот файл используется редко, если только вы не используете хост в качестве маршрутизатора с некоторыми сложными потребностями маршрутизации. Дополнительные сведения о настройке маршрутизации см. в Руководстве по работе с сетью для вашей версии Red Hat Enterprise Linux или CentOS.

Запуск сети

С появлением беспроводных сетей и мобильных устройств перенастройка сетевых интерфейсов для каждой новой беспроводной сети стала сложной и трудоемкой. Это также может привести к конфликту имен при добавлении нового сетевого интерфейса.

сеть

Старая сетевая служба использовалась по умолчанию в дистрибутивах на базе Red Hat до 2004 года для управления задачами запуска и остановки сети. Сценарий запуска SystemV использовал статические файлы конфигурации для запуска проводной или беспроводной сети во время загрузки или с помощью простой команды, такой как команда запуска сети службы, из командной строки. Эта служба по-прежнему доступна, хотя команды перенаправляются через systemd.

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

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

Менеджер сети

Компания Red Hat представила NetworkManager в 2004 году для упрощения и автоматизации настройки сети и подключений, особенно беспроводных. Цель состоит в том, чтобы запретить пользователю вручную настраивать каждую новую беспроводную сеть. Хотя он предназначен для облегчения управления сетью для нетехнических пользователей, он требует некоторой настройки со стороны администратора Linux, поскольку многие знакомые функции настройки теперь обрабатываются новым уровнем файлов конфигурации и сценариев. Это означает, что NetworkManager может перезаписывать стандартные файлы конфигурации при каждом перезапуске сети, включая каждую перезагрузку.

Демон udev — это диспетчер устройств ядра, который должен обеспечивать согласованное и постоянное присвоение имен всем устройствам, включая сетевые устройства и съемные устройства хранения данных. Он также используется для сопоставления имен сетевых устройств, например, eth0 или eno1, с MAC-адресом на сетевом интерфейсе.

Как это работает?

Диспетчер устройств udev определяет, когда в систему добавляется новое устройство, например новый сетевой интерфейс, и создает правило для его идентификации и присвоения имени, если оно еще не существует. Детали того, как это работает, изменились в более поздних версиях Fedora, CentOS и RHEL. Текущая процедура именования устройств подробно описана в Руководстве по работе в сети RHEL 7 вместе с описанием получения имен.

Существующее соглашение заключается в использовании содержимого файлов конфигурации интерфейса для создания правил.Однако, если файл конфигурации интерфейса не существует, подключение нового устройства или подключение к новой беспроводной сети приводит к тому, что udev уведомляет NetworkManager о новом устройстве или беспроводном соединении. Затем NetworkManager создает новый файл конфигурации интерфейса.
Демон udev создает запись для каждого сетевого интерфейса в файле сетевых правил. NetworkManager использует эти записи вместе с информацией в файлах конфигурации интерфейса в каталоге /etc/sysconfig/network-scripts/ для инициализации каждого интерфейса.

Выбор администраторов

Можно использовать старую сетевую службу и отключить NetworkManager. Существует множество руководств, описывающих, как отключить NetworkManager и вернуться к использованию сетевой службы, в том числе и эта, поэтому я не буду вдаваться в подробности здесь.
Я лично рекомендую не возвращаться к старой сетевой службе, потому что, как только я понял, как NetworkManager и udev работают вместе, обеспечивают согласованную схему именования и автоматическую настройку как для существующих, так и для новых устройств, все это обрело смысл и упростило управление сетевыми интерфейсами. . На мой взгляд, NetworkManager — лучшее из обоих миров.

Как всегда в Linux, решение о том, какую службу использовать, остается за вами.

Ubuntu поставляется с рядом графических утилит для настройки сетевых устройств. Этот документ предназначен для администраторов серверов и посвящен управлению вашей сетью с помощью командной строки.

Интерфейсы Ethernet

Определение интерфейсов Ethernet

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

Еще одним приложением, которое может помочь определить все сетевые интерфейсы, доступные вашей системе, является команда lshw. Эта команда предоставляет более подробную информацию об аппаратных возможностях конкретных адаптеров. В приведенном ниже примере lshw показывает один интерфейс Ethernet с логическим именем eth0 вместе с информацией о шине, сведениями о драйвере и всеми поддерживаемыми возможностями.

Логические имена интерфейса Ethernet

Логические имена интерфейсов также можно настроить с помощью конфигурации сетевого плана. Если вы хотите контролировать, какой интерфейс получает конкретное логическое имя, используйте клавиши match и set-name. Ключ совпадения используется для поиска адаптера на основе некоторых критериев, таких как MAC-адрес, драйвер и т. д. Затем можно использовать ключ set-name для изменения устройства на желаемое логическое имя.

Настройки интерфейса Ethernet

ethtool – это программа, которая отображает и изменяет параметры карты Ethernet, такие как автосогласование, скорость порта, дуплексный режим и Wake-on-LAN. Ниже приведен пример просмотра поддерживаемых функций и настроенных параметров интерфейса Ethernet.

IP-адресация

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

Временное назначение IP-адреса

Для временной настройки сети вы можете использовать команду ip, которая также присутствует в большинстве других операционных систем GNU/Linux. Команда ip позволяет настроить параметры, которые вступают в силу немедленно, однако они не являются постоянными и будут потеряны после перезагрузки.

Чтобы временно настроить IP-адрес, вы можете использовать команду ip следующим образом. Измените IP-адрес и маску подсети в соответствии с требованиями вашей сети.

Затем IP-адрес можно использовать для установки связи вверх или вниз.

Чтобы проверить конфигурацию IP-адреса enp0s25, вы можете использовать команду ip следующим образом.

Чтобы настроить шлюз по умолчанию, вы можете использовать команду ip следующим образом. Измените адрес шлюза по умолчанию, чтобы он соответствовал требованиям вашей сети.

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

Если вам требуется DNS для временной конфигурации сети, вы можете добавить IP-адреса DNS-серверов в файл /etc/resolv.conf . Как правило, непосредственное редактирование /etc/resolv.conf не рекомендуется, но это временная и непостоянная конфигурация. В приведенном ниже примере показано, как ввести два DNS-сервера в /etc/resolv.conf, которые следует изменить на серверы, подходящие для вашей сети. Более подробное описание правильного постоянного способа настройки DNS-клиента приведено в следующем разделе.

Если вам больше не нужна эта конфигурация и вы хотите удалить всю IP-конфигурацию из интерфейса, вы можете использовать команду ip с параметром flush, как показано ниже.

Примечание

Сброс конфигурации IP с помощью команды ip не очищает содержимое /etc/resolv.conf . Вы должны удалить или изменить эти записи вручную или перезагрузиться, что также должно привести к перезаписи /etc/resolv.conf , который является символической ссылкой на /run/systemd/resolve/stub-resolv.conf .

Динамическое назначение IP-адреса (DHCP-клиент)

Чтобы настроить сервер на использование DHCP для динамического назначения адресов, создайте конфигурацию netplan в файле /etc/netplan/99_config.yaml . В приведенном ниже примере предполагается, что вы настраиваете свой первый интерфейс Ethernet, обозначенный как enp3s0.

Затем конфигурацию можно применить с помощью команды netplan.

Назначение статического IP-адреса

Чтобы настроить систему на использование статического назначения адресов, создайте конфигурацию netplan в файле /etc/netplan/99_config.yaml . В приведенном ниже примере предполагается, что вы настраиваете свой первый интерфейс Ethernet, обозначенный как eth0. Измените значения addresses, gateway4 и nameservers в соответствии с требованиями вашей сети.

Затем конфигурацию можно применить с помощью команды netplan.

Интерфейс обратной связи

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

Разрешение имени

Разрешение имен применительно к IP-сетям — это процесс сопоставления IP-адресов с именами хостов, упрощающий идентификацию ресурсов в сети. В следующем разделе объясняется, как правильно настроить систему для разрешения имен с помощью DNS и статических записей имен хостов.

Конфигурация DNS-клиента

Традиционно файл /etc/resolv.conf был статическим файлом конфигурации, который редко требовалось изменять или изменять автоматически с помощью клиентских ловушек DCHP. Systemd-resolve обрабатывает конфигурацию сервера имен, и с ним следует взаимодействовать с помощью команды systemd-resolve. Netplan настраивает systemd-resolved для создания списка серверов имен и доменов для помещения в /etc/resolv.conf , который является символической ссылкой:

Чтобы настроить преобразователь, добавьте IP-адреса серверов имен, подходящие для вашей сети, в файл конфигурации netplan. Вы также можете добавить необязательные списки поиска суффиксов DNS, чтобы они соответствовали именам доменов в вашей сети. Результирующий файл может выглядеть следующим образом:

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

Если вы попытаетесь пропинговать хост с именем server1, ваша система автоматически запросит у DNS полное доменное имя (FQDN) в следующем порядке:

Если совпадений не найдено, DNS-сервер предоставит результат не найдено, и DNS-запрос завершится ошибкой.

Статические имена хостов

Статические имена хостов — это локально определенные сопоставления имен хостов и IP-адресов, расположенные в файле /etc/hosts . Записи в файле hosts по умолчанию имеют приоритет над DNS. Это означает, что если ваша система пытается разрешить имя хоста и оно совпадает с записью в /etc/hosts, она не будет пытаться найти запись в DNS. В некоторых конфигурациях, особенно когда доступ в Интернет не требуется, серверы, взаимодействующие с ограниченным числом ресурсов, можно удобно настроить на использование статических имен хостов вместо DNS.

Ниже приведен пример файла hosts, в котором несколько локальных серверов идентифицируются простыми именами хостов, псевдонимами и эквивалентными им полными доменными именами (FQDN).

Примечание

В приведенном выше примере обратите внимание, что каждому из серверов были присвоены псевдонимы в дополнение к их собственным именам и полным доменным именам. Server1 сопоставлен с именем vpn, server2 называется mail, server3 как www и server4 как файл.

Конфигурация коммутатора службы имен

Порядок, в котором ваша система выбирает метод преобразования имен хостов в IP-адреса, контролируется файлом конфигурации переключателя службы имен (NSS) /etc/nsswitch.conf . Как упоминалось в предыдущем разделе, обычно статические имена хостов, определенные в системном файле /etc/hosts, имеют приоритет над именами, полученными из DNS. Ниже приведен пример строки, отвечающей за этот порядок поиска имен хостов в файле /etc/nsswitch.conf.

files сначала пытается разрешить статические имена хостов, расположенные в /etc/hosts .

mdns4_minimal пытается разрешить имя с помощью многоадресной рассылки DNS.

[NOTFOUND=return] означает, что любой ответ notfound предыдущего процесса mdns4_minimal следует рассматривать как авторитетный и что система не должна пытаться продолжать поиск ответ.

dns представляет собой устаревший одноадресный DNS-запрос.

mdns4 представляет многоадресный DNS-запрос.

Чтобы изменить порядок вышеупомянутых методов разрешения имен, вы можете просто изменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать устаревший одноадресный DNS вместо многоадресного DNS, вы можете изменить строку в файле /etc/nsswitch.conf, как показано ниже.

Связь

Соединение нескольких интерфейсов — это более сложная конфигурация, но она очень полезна в нескольких сценариях.В одном сценарии устанавливается мост с несколькими сетевыми интерфейсами, а затем используется брандмауэр для фильтрации трафика между двумя сегментами сети. В другом сценарии используется мост в системе с одним интерфейсом, чтобы предоставить виртуальным машинам прямой доступ к внешней сети. В следующем примере рассматривается последний сценарий.

Настройте мост, изменив конфигурацию сетевого плана в /etc/netplan/:

Примечание

Введите соответствующие значения для вашего физического интерфейса и сети.

Теперь примените конфигурацию, чтобы включить мост:

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

networkd-dispatcher для pre-up, post-up и т. д. скриптов ловушек

Пользователи предыдущего ifupdown могут быть знакомы с использованием скриптов-ловушек (например, pre-up, post-up и т. д.) в своих файлах интерфейсов. Конфигурация Netplan в настоящее время не поддерживает сценарии подключения в своем определении конфигурации.

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

Примечание. Если не на Ubuntu Server, а на рабочем столе, сеть управляется Network Manager — в этом случае вместо этого вам понадобятся сценарии NM Dispatcher.

В FAQ по Netplan есть отличная таблица, в которой сравниваются тайминги событий между ifupdown / systemd-networkd / network-manager

Важно помнить, что эти хуки выполняются асинхронно; то есть они не будут блокировать переход в другое состояние.

В FAQ Netplan также есть пример преобразования старого хука ifupdown в networkd-dispatcher .

Ресурсы

На странице Ubuntu Wiki Network есть ссылки на статьи, посвященные более сложной настройке сети.

На веб-сайте netplan есть дополнительные примеры и документация.

Справочная страница netplan содержит дополнительную информацию о netplan.

Справочная страница systemd-resolved содержит дополнительную информацию о сервисе systemd-resolved.

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

Настройка Ubuntu выполняется в меню Система -> Администрирование -> Сеть .

RedHat Linux поставляется с redhat-config-network , который имеет как графический, так и текстовый интерфейс.

YAST или YAST2 от Suse — это универсальный инструмент настройки.

Mandrake/Mandriva поставляется с Мастером настройки сети и Интернета, который предпочтительно запускать из Центра управления Mandrake.

В системах Gnome: gnome-network-preferences .

В системах KDE: knetworkconf .

В вашей системной документации содержится множество советов и информации о доступности и использовании инструментов.

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

Для подключения к локальной сети, например, с вашими домашними компьютерами или на работе: имя хоста, имя домена и IP-адрес. Если вы хотите настроить свою собственную сеть, лучше сначала прочитать больше. На работе эта информация, скорее всего, будет предоставлена ​​вашему компьютеру автоматически при его загрузке. В случае сомнений лучше не указывать никакой информации, чем выдумывать ее.

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

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

Файл /etc/hosts всегда содержит IP-адрес локального хоста 127.0.0.1, который используется для межпроцессного взаимодействия. Никогда не удаляйте эту строку! Иногда содержит адреса дополнительных хостов, с которыми можно связаться без использования внешней службы имен, такой как DNS (сервер доменных имен).

Пример файла hosts для небольшой домашней сети:

Подробнее читайте в man hosts .

Подробнее читайте на справочной странице resolv.conf.

Файл /etc/nsswitch.conf определяет порядок обращения к различным службам имен. Для использования в Интернете важно, чтобы DNS отображался в строке «hosts»:

[bob@tux ~] grep hosts /etc/nsswitch.conf hosts: файлы dns

Это указывает вашему компьютеру сначала искать имена хостов и IP-адреса в файле /etc/hosts, а затем связываться с DNS-сервером, если данный хост не встречается в локальном файле hosts.Другими возможными службами имен, с которыми можно связаться, являются LDAP, NIS и NIS+.

Подробнее в man nsswitch.conf .

Сценарии и графические инструменты для конкретного дистрибутива являются внешними интерфейсами к ip (или ifconfig и route в старых системах) для отображения и настройки сетевой конфигурации ядра.

Команда ip используется для назначения IP-адресов интерфейсам, для настройки маршрутов к Интернету и другим сетям, для отображения конфигураций TCP/IP и т. д.

Следующие команды показывают IP-адрес и информацию о маршрутизации:

benny@home benny> IP-адрес show 1: lo: mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/ 8 brd 127.255.255.255 хост области lo inet6 :: 1/128 хост области 2: eth0:
mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:50:bf:7e:54:9a brd ff:ff:ff :ff:ff:ff inet 192.168.42.15/24 brd 192.168.42.255 scope global eth0 inet6 fe80::250:bfff:fe7e:549a/10 scope link benny@home benny> ip route show 192.168.42.0/24 dev eth0 scope ссылка 127.0.0.0/8 dev lo scope ссылка по умолчанию через 192.168.42.1 dev eth0

два сетевых интерфейса, даже в системе, имеющей только одну сетевую карту: "lo" – это локальный шлейф, используемый для связи внутри сети; «eth0» — это обычное имя реального интерфейса. Ни в коем случае не меняйте конфигурацию локальной сети, иначе ваша машина начнет работать со сбоями! Беспроводные интерфейсы обычно определяются как «wlan0»; интерфейсы модема как "ppp0" , но могут быть и другие имена.

IP-адреса, отмеченные "inet": локальный контур всегда имеет 127.0.0.1, физический интерфейс может иметь любую другую комбинацию.

Аппаратный адрес вашего интерфейса, который может потребоваться в рамках процедуры аутентификации для подключения к сети, помечен "ether" . Локальный цикл имеет 6 пар нулей, физический цикл имеет 6 пар шестнадцатеричных символов, из которых первые 3 пары зависят от поставщика.

Несмотря на то, что ip — это самый новый способ настройки системы Linux, ifconfig по-прежнему очень популярен. Используйте его без опции отображения информации о сетевом интерфейсе:

els@asus:~$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:50:70:31:2C:14 inet addr:60.138.67.31 Bcast:66.255.255.255 Mask:255.255.255.192 inet6 addr: fe80 ::250:70ff:fe31:2c14/64 Область действия:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Метрика:1 RX-пакеты:31977764 ошибки:0 отброшены:0 переполнение:0 кадр:0 TX-пакеты:51896866 ошибки:0 отброшены:0 переполнения: 0 несущая: 0 коллизии: 802207 txqueuelen: 1000 байты RX: 2806974916 (2,6 ГБ) байты TX: 2874632613 (2,6 ГБ) Прерывание: 11 Базовый адрес: 0xec00 lo Link encap: Local Loopback адрес inet: 127.0.0.1 Маска: 255.0 .0.0 адрес inet6: ::1/128 Область действия:Host UP LOOPBACK RUNNING MTU:16436 Метрика:1 RX-пакетов:765762 ошибок:0 отброшено:0 превышение:0 кадр:0 TX-пакетов:765762 ошибок:0 отброшено:0 превышено: 0 оператор: 0 коллизий: 0 txqueuelen: 0 RX байт: 624214573 (595,2 МБ) TX байт: 624214573 (595,2 МБ)

Здесь также отметим наиболее важные аспекты настройки интерфейса:

IP-адрес помечен "inet addr" .

Аппаратный адрес следует за тегом "HWaddr".

И ifconfig, и ip отображают более подробную информацию о конфигурации и ряд статистических данных о каждом интерфейсе и, что, возможно, наиболее важно, о том, находится ли он в состоянии "РАБОТАЕТ" или "РАБОТАЕТ" .

На вашем ноутбуке, который вы обычно подключаете к сети компании с помощью встроенного соединения Ethernet, но который теперь вы должны настроить для коммутируемого доступа дома или в отеле, вам может потребоваться активировать карту PCMCIA. Это делается с помощью утилиты управления cardctl или pccardctl в новых дистрибутивах.

Пример использования:

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

Однако хороший дистрибутив должен обеспечивать поддержку PCMCIA в инструментах настройки сети, чтобы пользователям не приходилось выполнять команды PCMCIA вручную.

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

В большинстве систем есть версия файла ip-cref (найдите ее с помощью команды locate); формат PS этого файла можно просмотреть, например, с помощью gv .

На компьютере с Linux имя устройства lo или локальная петля связаны с внутренним адресом 127.0.0.1. Компьютеру будет сложно заставить ваши приложения работать, если этого устройства нет; он всегда есть, даже на компьютерах, не подключенных к сети.

Первое устройство Ethernet, eth0 в случае стандартной сетевой карты, указывает на ваш локальный IP-адрес в локальной сети. Обычные клиентские машины имеют только одну сетевую карту. Маршрутизаторы, соединяющие сети, имеют по одному сетевому устройству для каждой сети, которую они обслуживают.

Если вы используете модем для подключения к Интернету, ваше сетевое устройство, вероятно, будет называться ppp0 .

Есть много других имен, например, для интерфейсов виртуальной частной сети (VPN), и несколько интерфейсов могут быть активны одновременно, так что выходные данные команд ifconfig или ip могут стать довольно обширными, если не используются никакие параметры. Даже несколько интерфейсов одного типа могут быть активны. В этом случае они нумеруются последовательно: первому присваивается номер 0, второму — суффикс 1, третьему — 2 и так далее. Это имеет место на многих серверах приложений, на машинах с отказоустойчивой конфигурацией, на маршрутизаторах, брандмауэрах и многом другом.

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

Информацию о маршрутизации можно отобразить с помощью параметра -nr команды netstat:

bob:~> netstat -nr Таблица IP-маршрутизации ядра Шлюз назначения Флаги генмаски Окно MSS irtt Iface 192.168.42.0 0.0.0.0 255.255.255.0 U 40 0 ​​0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 ​​0 lo 0.0.0.0 192.168.42.1 0.0.0.0 UG 40 0 ​​0 eth0

Это типичный клиентский компьютер в IP-сети. У него есть только одно сетевое устройство, eth0. Интерфейс lo — это локальный шлейф.

Современный способ

Новый способ получить эту информацию из вашей системы — использовать команду ip:

Когда этот компьютер пытается связаться с хостом, находящимся в сети, отличной от его собственной, на что указывает строка, начинающаяся с 0.0.0.0, он отправляет запросы на подключение на компьютер (маршрутизатор) с IP-адресом 192.168.42.1 и для этого он будет использовать свой основной интерфейс eth0.

Хосты, которые находятся в той же сети, строка начинается с 192.168.42.0, также будут связываться через основной сетевой интерфейс, но маршрутизатор не требуется, данные просто помещаются в сеть.

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

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

В этом разделе мы обсудим только некоторые распространенные текстовые инструменты UNIX/Linux.

Чтобы отобразить информацию о хостах или доменах, используйте команду host:

Похожая информация может быть отображена с помощью команды dig, которая дает дополнительную информацию о том, как записи хранятся на сервере имен.

Чтобы проверить, жив ли хост, используйте ping . Если ваша система настроена на отправку более одного пакета, прервите ping комбинацией клавиш Ctrl+C:

[emmy@pc10 emmy]$ ping a.host.be PING a.host.be (1.2.8.3) с 80.20.84.26: 56 (84) байт данных. 64 байта от a.host.be(1.2.8.3): icmp_seq=0 ttl=244 time=99,977 мс --- статистика пинга a.host.be --- 1 пакет передан, 1 пакет получен, 0% потерянных пакетов -трип мин/средн/макс/mdev = 99,977/99,977/99,977/0,000 мс

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

В некоторых системах traceroute был переименован в tracepath .

Конкретную информацию о доменном имени можно запросить с помощью команды whois, как это объясняется многими серверами whois, такими как приведенный ниже:

Читайте также: