Network configuration (Русский)/Ethernet (Русский) - ArchWiki

Jump to content
< Network configuration (Русский)
Состояние перевода: На этой странице представлен перевод статьи Network configuration/Ethernet. Дата последней синхронизации: 12 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

В статье описана настройка Ethernet; общие вопросы по настройке подключения к сети можно найти в статье Настройка сети.

## Драйвер устройства

### Проверка состояния

udev должен автоматически определить контроллер сетевого интерфейса и загрузить необходимый модуль ядра во время загрузки системы. Найдите пункт "Ethernet controller" (или похожий) в выводе команды `lspci -v`. В нём содержится информация о модуле ядра с драйвером интерфейса:

    $ lspci -v

    02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
     	...
     	Kernel driver in use: atl1
     	Kernel modules: atl1

Выполните `dmesg | grep имя-модуля` чтобы проверить, был ли драйвер загружен:

    # dmesg | grep atl1

    ...
    atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex

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

### Загрузка модуля

Найдите в интернете необходимый для вашего чипсета модуль/драйвер. Некоторые распространённые модули — `8139too` для чипсетов Realtek, `sis900` для чипсетов SiS. Выяснив название модуля, попробуйте загрузить его вручную. Появление сообщения об ошибке "модуль не найден" означает, что данный драйвер не был включён в ядро. Попробуйте найти модуль в AUR.

Если udev не определяет и не загружает нужный модуль автоматически во время запуска системы, изучите к раздел Модули ядра#Автоматическая загрузка модулей с помощью systemd.

## Советы и рекомендации

### ifplugd для ноутбуков

Совет: dhcpcd предоставляет ту же функциональность "из коробки".

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

По умолчанию ifplugd настроен на работу с устройством `eth0`. Эту и другие настройки, такие как время задержки, можно изменить в файле `/etc/ifplugd/ifplugd.conf`.

Примечание: Пакет netctl предоставляет службу `netctl-ifplugd@.service`; также можно воспользоваться службой `ifplugd@.service` из пакета ifplugd. Например, включите `ifplugd@eth0.service`.

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

### Смена компьютера при использовании кабельного модема

Некоторые провайдеры кабельных интернет-услуг (например, videotron) настраивают кабельный модем на работу только с одним клиентом-компьютером по MAC-адресу его сетевого интерфейса. Как только модем запомнит MAC-адрес первого подключенного компьютера или оборудования, он ни при каких обстоятельствах не будет отвечать на запросы, идущие с других MAC-адресов. Таким образом, если вы поменяете один компьютер на другой (или поставите маршрутизатор), новый компьютер (или маршрутизатор) не будет работать с кабельным модемом из-за другого MAC-адреса. Выключите питание кабельного модема и включите его снова, чтобы сбросить настройки. Как только модем загрузится и подключится к сети, перезагрузите новый компьютер, чтобы он выполнил DHCP-запрос, или отправьте запрос DHCP-аренды вручную.

Если это не поможет, попробуйте скопировать MAC-адрес предыдущей машины (см. Подмена MAC-адреса).

### Явное уведомление о перегруженности

Явное уведомление о перегруженности (Explicit Congestion Notification, ECN) может стать причиной проблем с передачей информации на старых/плохих маршрутизаторах. Для systemd 239 это касается как входящего, так и исходящего трафика.

Чтобы включать ECN только по требованию входящих соединений (безопасно, настройка ядра по-умолчанию), выполните:

    # sysctl net.ipv4.tcp_ecn=2

Для полного отключения ECN (например, чтобы проверить, действительно ли причина возникших проблем в ECN) выполните:

    # sysctl net.ipv4.tcp_ecn=0

Подробнее см. документации ядра.

### Realtek: нет соединения / проблема WOL

Пользователи с сетевыми интерфейсами на основе Realtek 8168 8169 8101 8111(C) (отдельными/встроенными) могут заметить, что карта отключена во время загрузки системы и лампочка-индикатор не горит. Такое часто встречается на машинах с двумя операционными системами, одна из которых — Windows. Похоже, что причиной являются официальные драйверы Realtek (датированные маем 2007 г. и позднее) для Windows. Эти новые драйверы отключают функцию Wake-On-LAN, выключая интерфейс при завершении работы Windows, в результате чего между загрузками Windows он не работает. Пока Windows не загрузится, индикатор соединения не горит; во время завершения её работы индикатор выключается. В нормальном состоянии лампочка должна гореть всё время работы системы, даже во время POST. Проблема затрагивает и другие операционные системы, не имеющие новейших драйверов (например, Live CD). Есть несколько способов решения.

#### Включение сетевого интерфейса в Linux

Включите сетевой интерфейс в соотстветсвии с Настройка сети#Включение и отключение сетевых интерфейсов.

#### Откат/замена драйвера для Windows

Вы можете откатить ваш драйвер сетевой платы в Windows на тот, который предоставляет Microsoft (если это возможно), или откатить/установить официальный драйвер Realtek, имеющий дату выпуска ранее мая 2007 г. (может найтись на компакт-диске, идущем в комплекте с вашим аппаратным обеспечением).

#### Включение WOL в драйвере для Windows

Наверное, самое лучшее и быстрое решение — изменить эту настройку в драйвере Windows. Тогда это затронет всю систему, в том числе Arch (а также live CD и другие операционные системы). В менеджере устройств Windows найдите ваш сетевой адаптер Realtek и сделайте на нем двойной щелчок мыши. Во вкладке "Дополнительно" измените значение "Wake-on-LAN после завершения работы" (Wake-on-LAN after shutdown) на "Включено".

В Windows XP (пример):

    Кликните правой кнопкой мыши на "Мой компьютер" и зайдите в "Свойства"
    --> Вкладка "Аппаратное обеспечение" (Hardware)
      --> Менеджер устройств
        --> Сетевые адаптеры
          --> "двойной клик" на Realtek ...
            --> Вкладка "Дополнительно"
              --> Wake-On-Lan после завершения работы
                --> Включено

Примечание: В новых драйверах Realtek для Windows (протестировано на Realtek 8111/8169 LAN Driver v5.708.1030.2008, датированном 2009/01/22, от GIGABYTE) доступ к этой опции может быть немного иным, например, Shutdown Wake-On-LAN --> Включено. Похоже, что ее переключение в значение `Отключено` не дает эффекта (вы увидите, что индикатор соединения по-прежнему выключается при завершении работы Windows). Довольно грязный обходной путь — загрузиться в Windows и просто перезагрузить (reset) систему (плохой restart/shutdown), что не даст драйверу Windows никаких шансов отключить LAN. Лампочка будет по-прежнему гореть, а адаптер LAN останется доступен после POST до тех пор, пока вы опять не запустите Windows и правильно завершите его работу.

#### Включение LAN Boot ROM в BIOS/CMOS

Похоже, что установка Интегрированная периферия (Integrated Peripherals) --> Встроенный (Onboard) LAN Boot ROM --> Включено в BIOS/CMOS возобновляет работу чипа Realtek LAN при загрузке системы, несмотря на то, что драйвер Windows отключает его при завершении работы ОС.

Примечание: Этот способ был несколько раз протестирован на материнской плате GIGABYTE GA-G31M-ES2L с BIOS версии F8, выпущенным 2009/02/05

### Для чипсетов Atheros отсутствует интерфейс

Пользователи некоторых чипов Atheros ethernet сообщают, что они не работают "из коробки" (с установочного носителя февраля 2014 г.). Помогает установка пакета backports-patchedAUR[ссылка недействительна: package not found] из AUR.

### Broadcom BCM57780

Этот чипсет Broadcom иногда работает плохо, если не указать порядок загрузки модулей. Необходимые модули — `broadcom` и `tg3`, и загружаться они должны именно в таком порядке.

Если в вашем компьютере используется этот чипсет, сделайте следующее:

- Найдите вашу сетевой интерфейс в выводе lspci:

    $ lspci | grep Ethernet

    02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)

- Если Ethernet-соединение не функционирует, выдерните кабель и выполните команды:

    # modprobe -r tg3
    # modprobe broadcom
    # modprobe tg3

- Подключите обратно сетевой кабель и проверьте работу модуля:

    # dmesg | grep tg3

- Если это решило проблему, сделайте изменения постоянными, добавив модули `broadcom` и `tg3` (в этом порядке) в массив `MODULES`:

    /etc/mkinitcpio.conf

    MODULES=(.. broadcom tg3 ..)

- Пересоберите initramfs:

    # mkinitcpio -p linux

- В качестве альтернативы можно создать файл `/etc/modprobe.d/broadcom.conf` со следующим содержимым:

    softdep tg3 pre: broadcom

Примечание: Этот способ может помочь и для других чипсетов, например, BCM57760.

### Realtek RTL8111/8168B

    # lspci | grep Ethernet

    03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

За распознавание и работу этого сетевого интерфейса отвечает модуль `r8169`, однако некоторые ревизии данного драйвера работают с ошибками — происходит постоянное включение/выключение устройства. Для решения проблемы можно установить модуль r8168. Если r8168 не загружается автоматически менеджером udev, то нужно запретить загрузку модуля `r8169`. Подробнее загрузка модулей описана в статье Модули ядра#Автоматическая загрузка модулей с помощью systemd.

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

### Материнская плата Gigabyte с интерфейсом Realtek 8111/8168/8411

При загрузке с выключенным (настройка по умолчанию) IOMMU могут возникнуть проблемы с сетевым интерфейсом на материнских платах Gigabyte (например, Gigabyte GA-990FXA-UD3). Сетевое подключение будет неустойчивым, с малой пропускной способностью или отсутствовать вовсе. Сказанное в равной мере касается как встроенных интерфейсов, так и внешних сетевых плат на шине PCI, поскольку настройки IOMMU влияют на все сетевые интерфейсы материнской платы. Если включить IOMMU и загрузиться с установочного устройства, то на секунду появится сообщение об ошибке AMD I-10/xhci, после чего загрузка продолжится обычным образом. В результате сетевой интерфейс будет функционировать нормально (даже с модулем `r8169`).

Если добавить параметр ядра `iommu=soft`, то при загрузке сообщение об ошибке будет подавляться.

### Материнская плата MicroStar с интерфейсом Realtek 8111/8168/8411

В случае некоторых материнских плат вроде "MicroStar B450M MORTAR TITANIUM" отключение/подключение Ethernet-кабеля или перезапуск DHCP-сервера на маршрутизаторе может привести к переходу `r8169` в состояние "downshifted", в результате чего гигабитное соединение сократится до 100-мегабитного. В логах ядра появятся следующие записи:

    # dmesg | grep r8169

    Generic FE-GE Realtek PHY r8169-2200:00: Downshift occurred from negotiated speed 1Gbps to actual speed 100Mbps, check cabling!
    r8169 0000:22:00.0 enp34s0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx

В этом случае необходимо перезапустить интерфейс (выключить и включить снова):

    # ip link set dev enp34s0 down
    # ip link set dev enp34s0 up

Category:

- Network configuration (Русский)

Hidden category:

- Pages with broken package links