- Настройка сети в Linux – команда ifconfig
- Как работает ifconfig
- Синтаксис и основные опции
- 🇺🇸 Как включить (UP) и отключить (DOWN) порт сетевого интерфейса (NIC) в Linux?
- 1) Как подключить и отключить сетевой интерфейс в Linux с помощью команды ifconfig?
- 2) Как включить и отключить сетевой интерфейс в Linux с помощью команды ifdown / up?
- 3) Как вывести из строя или поднять сетевой интерфейс в Linux с помощью команды ip?
- 4) Как включить и отключить сетевой интерфейс в Linux с помощью команды nmcli?
- 5) Как вывести из строя сетевой интерфейс в Linux с помощью команды nmtui?
- Команда ifconfig в Linux
- Linux ifconfig Command
- В этой статье мы рассмотрим, как использовать ifconfig команду.
- Как установить ifconfig
- Установить ifconfig на Ubuntu / Debian
- Установить ifconfig на Centos
- Как использовать ifconfig команду
- Отображение информации о сетевых интерфейсах
- Назначьте IP-адрес и маску сети сетевому интерфейсу
- Включение и отключение сетевого интерфейса
- Включение и отключение беспорядочного режима
- Изменить MTU сетевого интерфейса
- Изменить MAC-адрес сетевого интерфейса
- Вывод
- Network configuration (Русский)
- Contents
- Проверка подключения
- Управление сетевым подключением
- net-tools
- iproute2
- Сетевые интерфейсы
- Обнаружение сетевых интерфейсов
- Включение и отключение сетевых интерфейсов
- Статический или динамический адрес?
- Статический IP-адрес
- IP-адреса
- Таблицы маршрутизации
- Сервер
- Сетевые менеджеры
- Имя хоста
- Локальное разрешение имён
- Разрешение имён в локальной сети
- Советы и рекомендации
- Смена имени интерфейса
- Традиционные названия интерфейсов
- Установка MTU и длины очереди
- Объединение сетевых интерфейсов (bonding) или LAG
- Псевдонимы для IP-адресов
- Пример
- Promiscuous mode
- Получение информации о сокетах
- Решение проблем
- Проблема масштабирования TCP window
- Диагностика
- Способы решения проблемы
- Дополнительная информация
- Нет подключения к локальной сети через мост
Настройка сети в Linux – команда ifconfig
В системах Linux, как и в остальных операционных системах (ОС) предусмотрены широкие возможности для организации сетей. В частности, необходимо конфигурировать сетевые интерфейсы для построения сети на сетевом уровне. С этой задачей успешно справляется команда ifconfig. Она предназначена для выполнения отключений/подключений сетевых интерфейсов, а также указания IP-адресов, масок подсетей, протоколов и других параметров работы сети.
Как работает ifconfig
При старте системы, на этапе начальной загрузки (в большинстве случаев) выполняется запуск ifconfig. При этом в качестве аргументов используются данные из конфигурационного файла по-умолчанию, либо переопределённые администратором/пользователем.
Если при запуске команды, получите ошибку «bash: ifconfig: команда не найдена», то необходимо установить пакет net-tools
Для указания самого сетевого интерфейса в команде ifconfig используются имена, состоящие из двух или трёх символов, за которыми следует цифра, например: ln0, lo, lan0, eth0, ie0, we0 и т. д., однако в современных Linux-дистрибутивах всё чаще встречаются и более длинные наименования сетевых интерфейсов. Интерфейс lo в Linux обозначает интерфейс с обратной связью. Чтобы узнать, какие в системе используются сетевые интерфейсы, достаточно просто дать команду ifconfig, но стоит помнить, что в этом случае будут выведены только активные или включенные сети, т. е. если, к примеру в системе отключен какой-либо сетевой интерфейс (модуль беспроводной связи Wi-Fi/Bluetooth, например), то он в этом случае выведен не будет. Для получения списка всех сетевых интерфейсов, известных системе с их настройками нужно использовать команду ifconfig -a. Чтобы получить сведения о конкретном интересующем интерфейсе, следует явно указать в команде ifconfig его наименование:
В данном выводе флаг RUNNING указывает, что eth1 является активным — т. е. имеет активные соединения и пропускает трафик. Флаг BROADCAST означает широковещательное соединение. Другими важными сведениями являются IP-адреса в семействах протоколов IPv4 (inet), IPv6 (inet6), подсеть — netmask, а также диапазон широковещательного соединения broadcast. Для анализа активности служат строки RX/TX.
Синтаксис и основные опции
В большинстве UNIX-подобных систем (в том числе и Linux) команда ifconfig имеет следующий синтаксис:
Так, например, следующая команда:
задаст IP-адрес 192.168.0.100 для устройства eno1, используемого соответствующей сетевой картой, назначит подсеть для данного узла с помощью опции netmask и задействует его — опцией up. В данном случае параметр [семейство] не задан, т. к. по-умолчанию используется inet – протокол IPv4. Для одного интерфейса можно задавать несколько протоколов, но конфигурировать их нужно по отдельности. В качестве адреса можно также использовать и имена узлов. Опция up в данном примере задана явно, хотя при назначении адреса его активация/включение происходит по-умолчанию. Для отключения используется опция down.
Для команды ifconfig существует много опций и многие из них требуют дополнительных параметров, которые вводятся сразу после имени опции через символ пробела. Вот некоторые из них:
Источник
🇺🇸 Как включить (UP) и отключить (DOWN) порт сетевого интерфейса (NIC) в Linux?
Вам может потребоваться выполнить эти команды в соответствии с вашими требованиями.
Я могу привести несколько примеров, где вам это понадобится.
При добавлении нового сетевого интерфейса или при создании нового виртуального сетевого интерфейса из исходного физического интерфейса.
вам может понадобиться отослать эти команды, чтобы вызвать новый интерфейс.
Кроме того, если вы внесли какие-либо изменения или если они не работают, вам нужно выполнить одну из следующих команд, чтобы применить их.
Это можно сделать разными способами, и мы хотели бы добавить лучшие пять методов, которые мы использовали в статье.
Это можно сделать, используя следующие пять методов.
- Команда ifconfig: Команда ifconfig используется для настройки сетевого интерфейса. Он предоставляет много информации о NIC.
- Команда ifdown / up: команда ifdown отключает сетевой интерфейс, а команда ifup запускает сетевой интерфейс.
- Команда ip: команда ip используется для управления NIC. Это замена старой и устаревшей команды ifconfig. Она похожа на команду ifconfig, но имеет много мощных функций, которые недоступны в команде ifconfig.
- Команда nmcli: nmcli – это инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети.
- Команда nmtui: nmtui – это основанное на curses приложение TUI для взаимодействия с NetworkManager.
Приведенные ниже выходные данные показывают информацию о доступной сетевой карте (NIC) в моей системе Linux.
1) Как подключить и отключить сетевой интерфейс в Linux с помощью команды ifconfig?
Команда ifconfig используется для настройки сетевого интерфейса.
Он используется во время загрузки для настройки интерфейсов по мере необходимости.
Он предоставляет много информации о NIC.
Мы можем использовать команду ifconfig, когда нам нужно внести какие-либо изменения в сетевую карту.
Общий синтаксис для ifconfig:
Выполните следующую команду, чтобы отключить интерфейс enp0s3 в Linux.
Запишите его, вы должны ввести имя вашего интерфейса вместо нашего варианта.
Да действительно, данный интерфейс не работает согласно следующему выводу.
Выполните следующую команду, чтобы включить интерфейс enp0s3 в Linux.
Да, данный интерфейс работает сейчас согласно следующему выводу.
2) Как включить и отключить сетевой интерфейс в Linux с помощью команды ifdown / up?
Команда ifdown отключает сетевой интерфейс, а команда ifup – поднимает сетевой интерфейс.
Примечание. Она не работает с новым интерфейсным именем устройства, таким как enpXXX.
Общий синтаксис для ifdown / ifup:
Выполните следующую команду, чтобы отключить интерфейс eth1 в Linux.
Выполните следующую команду, чтобы включить интерфейс eth1 в Linux.
Да, данный интерфейс работает сейчас согласно следующему выводу.
ifup и ifdown не поддерживают последние имена интерфейсных устройств enpXXX.
При запуске команды я получил следующее сообщение.
3) Как вывести из строя или поднять сетевой интерфейс в Linux с помощью команды ip?
Команда ip используется для управления картой сетевого интерфейса (NIC).
Это замена старой и устаревшей команды ifconfig в современных системах Linux.
Она похожа на команду ifconfig, но имеет много мощных функций, которые недоступны в команде ifconfig.
Общий синтаксис для IP:
Выполните следующую команду, чтобы отключить интерфейс enp0s3 в Linux.
Да, данный интерфейс не работает согласно следующему выводу.
Выполните следующую команду, чтобы включить интерфейс enp0s3 в Linux.
Да, данный интерфейс работает сейчас согласно следующему выводу.
4) Как включить и отключить сетевой интерфейс в Linux с помощью команды nmcli?
nmcli – это инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети.
Его можно использовать в качестве замены для nm-applet или других графических клиентов. nmcli используется для создания, отображения, редактирования, удаления, активации и деактивации сети.
подключения, а также контролировать и отображать состояние сетевого устройства.
Выполните следующую команду, чтобы определить имя интерфейса, потому что команда nmcli выполняет большую часть задачи, используя имя профиля вместо имени устройства.
Общий синтаксис для IP:
Выполните следующую команду, чтобы отключить интерфейс enp0s3 в Linux.
Вы должны дать имя профиля вместо имени устройства, чтобы отключить его.
Да, данный интерфейс не работает согласно следующему выводу.
Выполните следующую команду, чтобы включить интерфейс enp0s3 в Linux. Вы должны дать имя профиля вместо имени устройства, чтобы включить его.
Да, данный интерфейс работает сейчас согласно следующему выводу.
5) Как вывести из строя сетевой интерфейс в Linux с помощью команды nmtui?
nmtui – приложение TUI на основе curses для взаимодействия с NetworkManager.
При запуске nmtui пользователю предлагается выбрать действие для выполнения, если оно не было указано в качестве первого аргумента.
Запустите следующую команду, чтобы запустить интерфейс nmtui.
Выберите «Подключится» и нажмите «ОК».
Выберите интерфейс, который хотите отключить, затем нажмите кнопку «отключить».
Для активации выполните ту же процедуру, что и выше.
Источник
Команда ifconfig в Linux
Linux ifconfig Command
В этой статье мы рассмотрим, как использовать ifconfig команду.
Как установить ifconfig
Команда ifconfig устарела, заменена ip на новые дистрибутивы Linux и может не входить в их состав.
Если вы получаете сообщение об ошибке «ifconfig: command not found», это означает, что пакет, содержащий команду, не установлен в вашей системе.
Установить ifconfig на Ubuntu / Debian
В дистрибутивах Linux на основе Ubuntu и Debian выполните следующую команду для установки ifconfig :
Установить ifconfig на Centos
Чтобы установить ifconfig на CentOS и другие дистрибутивы Linux на основе RHEL, введите:
Как использовать ifconfig команду
Базовый синтаксис ifconfig команды показан ниже:
- interface — это имя сетевого интерфейса.
- address — IP-адрес, который вы хотите назначить.
Конфигурации, установленные с помощью ifconfig команды, не являются постоянными. После перезапуска системы все изменения теряются. Чтобы сделать изменения постоянными, вам необходимо отредактировать файлы конфигурации конкретного дистрибутива или добавить команды в сценарий запуска.
Только root или пользователи с привилегиями sudo могут настраивать сетевые интерфейсы.
Отображение информации о сетевых интерфейсах
При вызове без каких-либо опций ifconfig отображает информацию о конфигурации всех сетевых интерфейсов и связанный IP-адрес:
Вывод включает информацию обо всех активных и неактивных сетевых интерфейсах:
Чтобы отобразить информацию о конфигурации любого конкретного сетевого интерфейса, напишите имя интерфейса после команды:
Результат будет выглядеть примерно так:
Назначьте IP-адрес и маску сети сетевому интерфейсу
С помощью этой ifconfig команды вы можете назначить IP-адрес и сетевую маску сетевому интерфейсу.
Используйте следующий синтаксис для назначения IP-адреса и сетевой маски:
Например, чтобы назначить интерфейсу IP-адрес 192.168.0.101 и сетевую маску , вы должны запустить: 255.255.0.0 eth0
Вы также можете назначить дополнительный IP-адрес сетевому интерфейсу, используя псевдоним интерфейса:
Включение и отключение сетевого интерфейса
Иногда может потребоваться сбросить сетевой интерфейс. В этом случае ifconfig команда может использоваться для включения или отключения сетевого интерфейса.
Чтобы отключить активный сетевой интерфейс, введите имя устройства и установите down флажок:
Чтобы включить неактивный сетевой интерфейс, используйте up флаг:
Включение и отключение беспорядочного режима
Беспорядочный позволяет сетевому интерфейсу получать доступ и просматривать все пакеты в сети. Вы можете использовать ifconfig команду для включения и отключения беспорядочной связи на определенном сетевом устройстве.
Чтобы включить неразборчивый режим в сетевом интерфейсе, введите promisc флаг после имени устройства:
Чтобы отключить беспорядочный режим, используйте -promisc флаг
Изменить MTU сетевого интерфейса
MTU «Максимальный блок передачи» позволяет ограничить размер пакетов, передаваемых через интерфейс.
Вы можете изменить значение MTU, используя синтаксис:
Например, установить значение MTU сетевого интерфейса eth0 к 500 , выполнить следующую команду:
Изменить MAC-адрес сетевого интерфейса
MAC «Управление доступом к среде» — это физический адрес, который однозначно идентифицирует устройства в сети.
Чтобы изменить MAC-адрес сетевого интерфейса, используйте hw ether флаг для установки нового MAC-адреса:
Вывод
Мы показали вам, как использовать ifconfig команду для настройки и отображения информации о сетевом интерфейсе. Для получения дополнительной информации ifconfig посетите страницу руководства по команде ifconfig .
Источник
Network configuration (Русский)
В статье описана настройка сетевого подключения на 3-м уровне модели OSI и выше. Отдельные способы передачи информации рассматриваются на подстраницах /Ethernet и /Wireless.
Contents
Проверка подключения
При проблемах с подключением к сети последовательно проверьте, что:
- Сетевой интерфейс обнаружен и включён. В противном случае, проверьте драйвер устройства – см. /Ethernet#Драйвер устройства и /Wireless#Драйвер устройства.
- Вы подключены к сети: воткнут сетевой кабель или есть подключение к беспроводной сети.
- Сетевому интерфейсу присвоен IP-адрес.
- Правильно настроена таблица маршрутизации.
- Возможно пропинговать локальный IP-адрес (например, шлюз по умолчанию).
- Возможно пропинговать публичный IP-адрес (например, 8.8.8.8 — DNS-сервер Google).
- Работает разрешение доменных имен (например, archlinux.org ).
Для проверки соединения с хостом, используется утилита ping.
Утилита выводит информацию о каждом полученном ответе. Подробнее см. ping(8) . Учтите, что удалённый хост может быть настроен игнорировать ICMP-запросы [1].
Если вы не получаете ответов, это может быть связано со шлюзом по умолчанию или интернет-провайдером. Воспользуйтесь утилитой traceroute для диагностики маршрута к хосту.
Управление сетевым подключением
Для настройки сетевого подключения сделайте следующее:
- Убедитесь, что сетевой интерфейс обнаружен и включён.
- Подключитесь к сети. Вставьте Ethernet-кабель или подключитесь к беспроводной сети.
- Настройте сетевое подключение:
- статический IP-адрес.
- динамический IP-адрес: используйте DHCP.
net-tools
Утилиты net-tools считаются устаревшими; рекомендуется использовать пакет iproute2 [2].
Устаревшая команда | Замена |
---|---|
arp | ip neigh |
ifconfig | ip address, ip link |
netstat | ss |
route | ip route |
iproute2
iproute2 (зависимость мета-пакета base ) предоставляет утилиту командной строки ip(8) для управления сетевыми интерфейсами, IP-адресами и таблицей маршрутизации. Учтите, что сделанные с помощью ip настройки исчезнут после перезагрузки. Для задания постоянных настроек используйте сетевой менеджер или автоматизируйте ip-команды с помощью сценариев или юнитов systemd. Также обратите внимание, что многие команды ip имеют сокращённую форму, но в этой статье для ясности они указываются полностью.
Сетевые интерфейсы
udev назначает имена сетевых интерфейсов в соответствии со схемой именования, в которой тип устройства обозначается двухбуквенным префиксом: en (проводной/Ethernet), wl (беспроводной/WLAN) или ww (WWAN). Подробнее см. systemd.net-naming-scheme(7) .
Обнаружение сетевых интерфейсов
Имена как проводных, так и беспроводных интерфейсов можно узнать командами ls /sys/class/net и ip link . Имейте в виду, что префиксом lo обозначается петлевое устройство, которое не используется для сетевых соединений.
Имена беспроводных устройств можно узнать командой iw dev . См. также /Wireless#Определение имени интерфейса.
Если сетевой интерфейс не обнаружен, убедитесь, что его драйвер был загружен (cм. /Ethernet#Драйвер устройства и /Wireless#Драйвер устройства).
Включение и отключение сетевых интерфейсов
Включение и выключение интерфейса производится командой ip link set интерфейс up|down (подробнее см. ip-link(8) ).
Для проверки текущего состояния интерфейса (например, enp2s0 ) выполните:
На состояние интерфейса указывает UP в
, а не state UP .
Статический или динамический адрес?
Если дома вы используете беспроводную точку доступа или маршрутизатор, то скорее всего у вас динамический IP-адрес. Точка доступа или маршрутизатор выдают вашему компьютеру адрес, который тот использует в работе. «Динамичность» адреса подразумевает, что машина может иметь разные адреса при каждом запуске. В рабочем окружении у вас может быть как динамический, так и статический адрес. Дома также можно настроить статическую адресацию, в результате чего компьютер получит постоянный адрес. При динамической адресации для назначения адресов сетевым интерфейсам необходим DHCP, который также возьмёт на себя маршрутизацию и разрешение доменных имён (преобразование имён вида google.com в числовые интернет-адреса).
Статический IP-адрес
Настройка статического IP-адреса производится либо посредством сетевого менеджера, либо с помощью демона dhcpcd.
Чтобы настроить статический IP-адрес вручную, добавьте IP-адрес по рекомендациям в разделе #IP-адреса, настройте таблицу маршрутизации и DNS-сервер.
IP-адреса
Для управления IP-адресами используется команда ip-address(8) .
Показать существующие IP-адреса:
Добавить IP-адрес к сетевому интерфейсу:
Обратите внимание:
- адрес указан в CIDR-нотации с маской подсети;
- спецсимвол + говорит утилите ip вычислить широковещательный адрес на основе IP-адреса и маски подсети.
Удалить IP-адрес устройства:
Удалить все адреса определённого интерфейса:
Таблицы маршрутизации
Таблица маршрутизации необходима для определения возможности связи с удалённым хостом и шлюза, через какой это следует делать. Если подходящего маршрута нет, то используется шлюз по умолчанию.
Настройка таблицы маршрутизации производится командой ip-route(8) .
В примерах ниже значение ПРЕФИКС либо указывается в CIDR-нотации, либо принимает значение default для шлюза по умолчанию.
Показать маршруты IPv4:
Показать маршруты IPv6:
Сервер DHCP предоставляет клиенту динамический IP-адрес, маску подсети, IP-адрес шлюза по умолчанию и опционально — сервер имён DNS.
Для использования DHCP нужен DHCP-сервер в вашей сети и DHCP-клиент на локальной машине:
Клиент | Пакет | Archiso | Примечания | Юниты systemd |
---|---|---|---|---|
dhcpcd | dhcpcd | Да | DHCP, DHCPv6, ZeroConf, статический IP | dhcpcd.service , dhcpcd@интерфейс.service |
ISC dhclient | dhclient | Да | DHCP, DHCPv6, BOOTP, статический IP | dhclient@интерфейс.service |
Сервер
Сервер | Пакет | IPv4 | IPv6 | GUI | Интерфейсы | Хранение данных | Примечания |
---|---|---|---|---|---|---|---|
dhcpd | dhcp | Да | Да | Glass-ISC-DHCP | ? | Файл | |
dnsmasq | dnsmasq | Да | Да | Нет | ? | Файл | Также DNS, PXE и TFTP |
Kea | kea | Да | Да | Kea-Anterius (Experimental) | REST, RADIUS и NETCONF | Файл, MySQL, PostgreSQL и Cassandra | Также DNS |
Сетевые менеджеры
Сетевой менеджер позволяет создавать т.н. «сетевые профили» с настройками подключений, что облегчает переключение между сетями.
Сетевой менеджер | Графический интерфейс | Archiso [3] | Утилиты командной строки | Поддержка PPP (например, 3G-модем) | DHCP-клиент | Юниты systemd |
---|---|---|---|---|---|---|
ConnMan | 8 неофиц. | Нет | connmanctl(1) | Да (с ofono AUR ) | встроенный | connman.service |
netctl | 2 неофиц. | Нет | netctl(1) , wifi-menu | Да | dhcpcd или dhclient | netctl-ifplugd@интерфейс.service , netctl-auto@интерфейс.service |
NetworkManager | Да | Нет | nmcli(1) , nmtui(1) | Да | встроенный, dhcpcd или dhclient | NetworkManager.service |
systemd-networkd | Нет | Да ( base ) | networkctl(1) | Нет [4] | встроенный | systemd-networkd.service , systemd-resolved.service |
Wicd | Да | Нет | wicd-cli(8) , wicd-curses(8) | Нет | dhcpcd или dhclient | wicd.service |
Имя хоста
Имя хоста — уникальное имя-идентификатор машины в сети. Имя хоста хранится в файле /etc/hostname (см. hostname(5) и hostname(7) ). В файле также может храниться доменное имя системы, если таковое имеется. Чтобы задать имя хоста, добавьте в файл /etc/hostname одну строку:
В качестве альтернативы имя хоста можно задать утилитой hostnamectl(1) :
Утилита hostname(1) из пакета inetutils позволяет задать имя хоста временно, до первой перезагрузки:
См. machine-info(5) о том, как настроить «красивое» имя машины и другие метаданные.
Локальное разрешение имён
Модуль nss-myhostname входящей в состав systemd службы Name Service Switch (NSS) позволяет выполнять разрешение имени локально без обращения к файлу /etc/hosts . Этот модуль включён по умолчанию. Однако следует иметь в виду, что некоторые программы всё же полагаются на файл /etc/hosts . [5], [6]
Добавьте следующие строки в /etc/hosts :
В результате система будет использовать оба варианта — и NSS, и файл /etc/hosts :
Если хост использует статический IP-адрес, то его следует указать вместо 127.0.1.1 .
Разрешение имён в локальной сети
Чтобы машина была доступна по локальной сети по имени хоста, следует выбрать один из вариантов:
- отредактировать файл /etc/hosts на каждом устройстве вашей локальной сети, см. hosts(5) ;
- выбрать DNS-сервер для разрешения вашего имени хоста и настроить все машины в локальной сети использовать его (например, посредством #DHCP);
- использовать Zeroconf-сервис, автоматически создающий IP-сети без необходимости выполнения ручных настроек. Можно выбрать одну из двух реализаций:
- NetBIOS. Разработан компанией Microsoft, входит в состав Samba. Всё, что необходимо — запустить nmb.service . Машины с операционными системами Windows, macOS или Linux и работающим nmb смогут найти ваш компьютер в сети;
- mDNS. Возможны два варианта использования: Avahi и systemd-resolved. Компьютеры с macOS или Linux, на которых запущен Avahi или systemd-resolved, смогут обнаружить ваш хост. Windows не имеет встроенного mDNS клиента или демона. Старый Win32 API не поддерживает mDNS, что может помешать старым приложениям Windows получить доступ к вашей системе.
Советы и рекомендации
Смена имени интерфейса
Вы можете изменить имя устройства, установив его вручную при помощи правила udev. Например:
Эти правила будут применяться автоматически при загрузке.
Кое-что на заметку:
- Узнать MAC-адрес интерфейса можно командой cat /sys/class/net/имя_устройства/address
- Убедитесь, что в правиле udev шестнадцатеричные значения указаны строго в нижнем регистре.
Если сетевой интерфейс имеет динамический MAC-адрес, вместо последнего можно использовать DEVPATH :
DEVPATH подключённых устройств можно узнать по символическим ссылкам в каталоге /sys/class/net/ :
Паттерн пути устройства (DEVPATH) должен подходить для обоих названий устройств, и нового, и старого, поскольку одно и то же правило udev может срабатывать несколько раз в процессе загрузки. Например, во втором правиле в примере выше шаблон «/devices/pci*/*1c.0/*/net/enp*» будет ошибочным, поскольку после изменения имени на en он перестанет совпадать, и если после этого сработает системное правило по умолчанию, то имя изменится обратно на что-то вида enp1s0 .
Если вы используете USB-интерфейс (например, подключаясь через Android-смартфон) с динамическим MAC-адресом и хотите иметь возможность использовать разные USB-порты, можно создать правило на основе данных о производителе и ID устройства:
Проверить созданное правило из пространства пользователя можно командой udevadm —debug test /sys/class/net/* . Не забудьте предварительно отключить интерфейс, который собираетесь переименовать (например, выполнив ip link set enp1s0 down ).
Традиционные названия интерфейсов
Если вы предпочитаете традиционные названия интерфейсов вроде eth0 , отключите назначение предсказуемых имён интерфейсов, создав маску для правила udev.
Другой способ — добавить net.ifnames=0 в параметры ядра.
Установка MTU и длины очереди
Вы можете изменить MTU и длину очереди для устройства, определив их вручную в правиле udev. Например:
mtu : Значение выше 1500 (т.н. jumbo-кадры) могут значительно повысить скорость передачи информации. Имейте в виду, что указанное значение MTU должны поддерживать все сетевые интерфейсы, в том числе коммутаторы в локальной сети, иначе передача jumbo-кадров завершится неудачно. Для PPPoE величина MTU не должна превышать 1492. Также значение MTU можно задать посредством systemd.netdev(5) .
tx_queue_len : Малые значения — для медленных устройств с высокой задержкой (ADSL, ISDN). Большие значения рекомендованы для высокоскоростных соединений с серверами, где предполагается передача значительных объёмов данных.
Объединение сетевых интерфейсов (bonding) или LAG
Бондинг — объединение нескольких сетевых интерфейсов в одно логическое устройство. См. статьи netctl, systemd-networkd и Wireless bonding.
Псевдонимы для IP-адресов
Псевдонимы (aliases) необходимы для назначения нескольких IP-адресов одному сетевому интерфейсу. Благодаря этому один узел сети может иметь несколько подключений, каждое из которых будет использоваться для конкретной цели. Типичное применение этой возможности — виртуальный хостинг Web- и FTP-серверов или реорганизация серверов без необходимости обновления каких-либо других машин (особенно полезно для серверов имен).
Пример
Чтобы вручную назначить псевдоним для определенного сетевого интерфейса (например, enp2s0 ) используйте утилиту ip из пакета iproute2 :
Для удаления псевдонима выполните:
По умолчанию для исходящих из определённой подсети пакетов используется основной псевдоним устройства. Если же отправитель находится в подсети вторичного псевдонима, то IP-адрес отправителя в заголовке пакета будет соответствующим. В случае наличия более чем одного сетевого интерфейса маршруты по умолчанию можно узнать командой ip route .
Promiscuous mode
Promiscuous mode («неразборчивый» режим) предполагает, что (беспроводной) сетевой интерфейс перенаправляет весь входящий трафик ядру операционной системы для дальнейшей обработки. Это противоположность «нормальному режиму», при котором интерфейс отбрасывает пакеты, которые не ожидались быть полученными. Чаще всего эта возможность используется для решения сетевых проблем и анализа пакетов.
Чтобы включить «неразборчивый» режим для интерфейса eth0 , выполните:
Получение информации о сокетах
Входящая в состав пакета iproute2 утилита ss используется для вывода информации о сокетах. Обладает схожим функционалом со считающейся устаревшей утилитой netcat.
Показать все TCP-сокеты с названиями сервисов:
Показать все TCP-сокеты с номерами портов:
Показать все UDP-сокеты:
За подробной информацией обращайтесь к справочной странице ss(8) .
Решение проблем
Проблема масштабирования TCP window
Заголовк TCP-пакета содержит поле «Window», которое определяет, какое количество данных может быть прислано в ответ другим хостом. Ширина поля составляет 16 бит, следовательно, размер окна не может превышать 64 Kбайт. С учётом кэширования пакетов, связанного с необходимостью восстановить их исходный порядок, значение окна легко может быть превышено.
В 1992 году ввиду того, что объём памяти, доступной компьютерам, всё увеличивался, был разработан RFC 1323, призванный решить проблему с помощью масштабирования окна (Window Scaling). Содержащееся в заголовке пакета значение «Window» корректировалось коэффициентом масштабирования (Scale Factor), который определялся один раз в начале подключения. Этот 8-битный коэффициент позволяет увеличить исходное окно размером 64 Кбайт в 32 раза.
Некоторые сломанные маршрутизаторы и межсетевые экраны переопределяют это значение на 0, что вызывает недопонимание между хостами. В ядре Linux версии 2.6.17 была введена в действие новая методика вычисления коэффициента масштабирования, в результате чего проблема с неправильно настроенными маршрутизаторами и экранами стала проявляться очень ярко.
В итоге соединение в лучшем случае очень медленное или часто прерывается.
Диагностика
Прежде всего, необходимо пояснить: это довольно странная проблема. В некоторых случаях вы вообще не сможете использовать соединения TCP (HTTP, FTP и т.д.), в других — сможете обращаться к некоторым узлам (лишь нескольким).
Если у вас появилась такая проблема, вывод dmesg будет нормальным, логи — чистыми, а ip addr сообщит о нормальном состоянии. Все будет выглядеть нормально.
Если вы не можете просматривать никакие веб-сайты, но можете отправлять запросы ping на некоторые узлы, высока вероятность, что у вас именно эта проблема: ping использует ICMP, поэтому проблемы TCP на него не влияют.
С помощью Wireshark можно будет увидеть, что UDP- и ICMP-соединения работают, а TCP-соединение с внешними узлами установить не удаётся.
Способы решения проблемы
Плохой
Плохой способ заключается в изменении значения tcp_rmem , на основе которого вычисляется коэффициент масштабирования. Скорее всего, это решит проблему, кроме случая связи с особо удалёнными хостами.
Хороший
Просто отключите масштабирование. Эта функция — довольно приятное дополнение к стандартному TCP, и без неё может быть некомфортно, особенно если вы не имеете возможности перенастроить неправильно работающий маршрутизатор. Есть несколько способов отключения масштабирования, и, кажется, наиболее надёжный из них (работает с большинством ядер) — добавить следующую строку в файл /etc/sysctl.d/99-disable_window_scaling.conf (см. также sysctl):
Лучший
Проблема вызвана неправильно работающим маршрутизатором/межсетевыми экранами, поэтому просто замените его. Некоторые пользователи отмечали, что таким маршрутизатором был их собственный маршрутизатор DSL.
Дополнительная информация
Этот раздел основывается на статье LWN TCP window scaling and broken routers и архивной статье Kernel Trap Window Scaling on the Internet.
На странице LKML есть также несколько ссылок по теме.
Нет подключения к локальной сети через мост
Первый компьютер подключён к двум локальным сетям. Второй — к одной локальной сети и первому компьютеру. Выполните следующие команды, чтобы дать второму компьютеру доступ к сети за мостовым интерфейсом (на первой машине):
Источник