Netcfg (Русский)

From ArchWiki
Revision as of 22:34, 21 November 2012 by Zodiac es (Talk | contribs)

Jump to: navigation, search
Summary help replacing me
Руководство по установке и настройке netcfg – скрипты настройки сети и сетевых профилей
Related
Network
Wireless Setup
Resources
netcfg network scripts repository

По материалам netcfg man page:

netcfg применяется для настройки и управления сетевыми подключениями с использованием профилей (profiles). Существует поддержка плагинов для разных типов подключений: проводных, беспроводных, коммутируемых (ppp). Также существует возможность по управлению соединениями многие-к-одному и управлению несколькими соединениями в пределах одного профиля, в том числе с использованием объединения (bonding).

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

Подготовительные действия

В простейшем случае пользователю достаточно знать лишь имена сетевых интерфейсов в системе (напр. eth0, wlan0 и т.д.). В случае настройки статического IP адреса, также потребуются данные о шлюзе по умолчанию (gateway) и сервере имен (DNS).

Если Вам необходимо настроить подключение к беспроводной сети, убедитесь, что у вас есть вся необходимая информация: метод защиты соединения (WEP/WPA/WPA2); имя или идентификатор беспроводной сети(SSID); пароль доступа или ключи шифрования. Убедитесь, что для беспроводного оборудования корректно установлены драйвера и соответствующие прошивки (firmware), информацию о настройке оборудования можно получить в разделе Wireless Setup.

Установка

Убедитесь, что Вы установили самую последнюю версию netcfg. Более старые версии содержат большое количество ошибок и могут работать некорректно с последними версиями драйверов сетевых устройств. Пакет netcfg доступен в core:

# pacman -S netcfg

Для версий 2.5.x необходимо удовлетворить дополнительные зависимости wpa_actiond – для автоматического подключения/переподключения к беспроводным сетям – и ifplugd – для автоматической настройки проводных подключений.

# pacman -S wpa_actiond ifplugd

Настройка

Профили настроек сетевых подключений (далее "сетевые профили") хранятся в директории /etc/network.d. Во избежание случайных ошибок, создайте копию примера настроек путем копирования /etc/network.d/examples в /etc/network.d/mynetwork. Имя файла соответствует имени сетевого профиля ("mynetwork" используется в качестве примера в этой статье). Это имя не обязательно должно совпадать с именем беспроводной сети (SSID).

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

Тип соединения/безопасность Пример профиля
Беспроводное; WEP hex ключ wireless-wep
Беспроводное; WEP строковый ключ wireless-wep-string-key
Беспроводное; WPA personal (пароль) wireless-wpa
Беспроводное; WPA enterprise wireless-wpa-config (внешняя настройка wpa_supplicant)
wireless-wpa-configsection (настройки wpa_supplicant хранятся в строке)
Проводное; DHCP ethernet-dhcp
Проводное; статический IP ethernet-static
Проводное; iproute конфигурация ethernet-iproute
Проводное; iproute конфигурация VLAN VLAN_(Русский)

Далее откорректируйте Ваш файл конфигурации /etc/network.d/mynetwork:

  • Присвойте корректное имя проводного или беспроводного интерфейса переменной INTERFACE. Имена интерфейсов можно получить с помощью команд ifconfig и iwconfig.
  • В случае беспроводного подключения, убедитесь в правильности заполнения значений ESSID и KEY (пароль). Опечатки в этих полях - распространенный источник проблем.
    • Учтите, что строковые параметры для WEP (но не hex параметры) должны начинаться с модификатора s: (например, KEY="s:parol_na_dostup")
Note: Файлы настроек являются скриптами оболочки Bash. Любые значения настроек, содержащие $ или \ должны быть корректно экранированы. Для избежания интерпретации спец.символов используйте одинарные кавычки. или обратную косую черту
Note: Информация о настройках сети (напр. пароль к беспроводной сети) хранятся в текстовом представлении, вполне вероятно, что Вы захотите изменить права доступа к вновь созданному профилю (напр. chmod 0600 /etc/network.d/mynetwork : доступ для чтения только для root).

Использование

Подключение профиля:

# netcfg mynetwork

Отключение профиля:

# netcfg down <profile-name>

В случае успешного подключения, пользователи могут перейти к настройке автоматического подключения или подключения при загрузке. Если во время подключения произошел сбой, обратитесь к разделу #Troubleshooting для получения информации об устранении неисправностей.

Для информации о дополнительных функциях выполните:

$ netcfg help

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

Существует несколько методов для автоматического подключения профилей (например, при загрузке, или роуминга для беспроводной сети). Однако необходмо предварительно настроить сетевые профили в директории /etc/network.d (см.[#Настройка]).

Tip: В случае, если Вы включаете одну из нижеперечиленных служб, и указываете пустое значение для INTERFACES в файле rc.conf, тогда Вы можете исключить службу network из массива DAEMONS. Если вы используете общие ресурсы NFS, убедитесь, что служба netfs присутствует в DAEMONS, в противном случае при завершении работы системы произойдет отключение сети раньше, чем будут отмонтированы NFS-ресурсы.

net-profiles

net-profiles позволяет подключать профили в процессе загрузки.

Для использования этой опции, пользователь должен добавить net-profiles к массиву DAEMONS в файле rc.conf и указать профиль в NETWORKS:

/etc/rc.conf
NETWORKS=(mynetwork yournetwork)

...

DAEMONS=(... net-profiles ...)

Также net-profiles может быть настроен на вывод меню выбора профиля, которое позволит пользователю выбрать желаемый профиль на этапе загрузки системы. Для этого необходимо установить NETWORKS равное значению menu:

/etc/rc.conf
NETWORKS=(menu)

...

DAEMONS=(... net-profiles ...)

Для использования данной возможности необходимо дополнительно установить пакет dialog.

Tip: Меню выбора профиля также доступно и после загрузки, достаточно выполнить команду в терминале netcfg-menu.

net-auto-wireless

net-auto-wireless позволяет пользователям автоматически подключаться к беспроводным сетям и обеспечивает возможности роуминга.

Для использования этой опции, пользователь должен добавить net-auto-wireless к массиву DAEMONS в файле rc.conf и указать желаемый беспроводной интерфейс в переменнойWIRELESS_INTERFACE:

/etc/rc.conf
WIRELESS_INTERFACE="wlan0"

...

DAEMONS=(... net-auto-wireless ...)

Для использования данной возможности необходимо дополнительно установить пакет wpa_actiond.

net-auto-wired

net-auto-wired позволяет пользователям автоматически подключаться к проводным сетям.

Для использования этой опции, пользователь должен добавить net-auto-wired к массиву DAEMONS в файле rc.conf и указать желаемый проводной интерфейс в переменной WIRED_INTERFACE:

/etc/rc.conf
WIRED_INTERFACE="eth0"

...

DAEMONS=(... net-auto-wired ...)

Для использования данной возможности необходимо дополнительно установить пакет ifplugd.

Советы и трюки

Передача параметров в iwconfig перед соединением

Достаточно добавить следующую строку в файл профиля:

IWCONFIG="<arguments>"

Где <arguments> любой допустимый аргумент для iwconfig. Будет выполнен скрипт iwconfig $INTERFACE $IWCONFIG.

Например: указать драйверу сетевой карте, что необходимо подключиться к точке доступа с определенным MAC адресом:

IWCONFIG="ap 12:34:56:78:90:12"

Данная опция замещает собой устаревшие и не до конца реализованные опции IWOPTS и WEP_OPTS.

rfkill (вкл./выкл. радио-модуль)

netcfg может включить/выключить радио-модуль беспроводных карт, имеющих возможность программного управления. Для беспроводных карт с аппаратным выключателем, netcfg может определить факт отключения радио-модуля, и корректно завершить работу скрипта подключения.

To enable rfkill support, you need to specify what sort of switch the wireless interface has; hardware or software. This can be set within a profile or at the interface level (/etc/network.d/interfaces/$INTERFACE; see #Per-interface configuration). Для включения поддержки rfkill, Вы должны указать тип выключателя радио-модуля: аппаратный (hard) или программный (soft). Эта опция может быть указана как для профиля, так и на уровне интерфейса (/etc/network.d/interfaces/$INTERFACE; см.#Per-interface configuration).

RFKILL=soft # может принимать значения 'hard' или 'soft'

Для некоторых опций, записи rfkill в /sys не привязаны к конкретному интерфейсу, таким образом переменная RFKILL_NAME должна содержать значение соответствующее /sys/class/rfkill/rfkill#/name.

Например, для Eee PC:

RFKILL=soft
RFKILL_NAME='eeepc-wlan'

Выполнение команд перед/после активации/отключения интерфейса

If your interface requires special actions prior/after the establishment/closure of a connection, you may use the PRE_UP, POST_UP, PRE_DOWN, and POST_DOWN variables. Если Ваш интерфейс требует выполнения специальных действий перед/после установления/деактивации соединения, Вы можете использовать опции {Codeline|PRE_UP}}, POST_UP, PRE_DOWN, и POST_DOWN

Например, если Вам необходимо переключить беспроводную карту в режим ad-hoc, но изменение режима нужно сделать пока интерфейс неактивен (down), Вы можете использовать значения команд подобные следующим:

PRE_UP="ifconfig wlan0 down; iwconfig wlan0 mode ad-hoc"

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

POST_UP="sleep 5; mount /mnt/shares/nexus/utorrent 2>/dev/null"
Note: Если указанная команда возвратит значение отличное от 0 (ошибка), netcfg прекратит выполнение текущей операции. Таким образом, если Вы собираетесь монтировать сетевой ресурс, который может быть не доступен на момент установления сетевого подключения (т.е. возвращающий ошибки), вы должны создать отдельный Bash скрипт с командой монтирования, и добавить в конце этого скрипта exit 0. Как вариант вы можете добавить || true после команды, которая может вернуть значение с ошибкой.

Глобальные настройки для интерфейса

Параметры настроек, которые должны быть применены к интерфейсу во всех профилях, задаются в файле /etc/network.d/interfaces/$INTERFACE. Например:

/etc/network.d/interfaces/wlan0

Данную возможность удобно использовать для указания опций wpa_supplicant, контроля радио-модуля посредством rfkill, скриптов пре/пост инициализации и параметров net-auto-wireless. Указанные параметры загружаются перед исполнением сетевого профиля, т.о. аналогичные опции, указанные в профиле имеют более высокий приоритет.

/etc/network.d/interfaces/$INTERFACE может содержать те же самые опции, что и обычный сетевой профиль. Вполне возможно, Вам захочется задействовать опции PRE_UP/DOWN and POST_UP/DOWN (описаны в предыдущем разделе), или одну из опций описанных ниже. Запомните, что эти опции будут применены ко всем профилям, в которых фигурирует данный интерфейс; наверняка, Вам не нужно пытаться подключаться к офисной VPN при установке соединения с любой беспроводной сетью.

WPA_GROUP   - указание группы для интерфейса wpa_ctrl
WPA_COUNTRY - позволяет снять ограничения по количеству задействованных радио-каналов (специфика законодательства в некоторых странах)
WPA_DRIVER  - по умолчанию wext, может потребоваться nl80211 для устройств mac80211
Note: Для опций POST_UP/POST_DOWN необходимо установить пакет wpa_actiond

Перехватчики вывода (Output hooks)

netcfg имеет ограниченную поддержку загрузки перехватчиков, которые отслеживают вывод результатов. По умолчанию загружается перехватчик arch, который обеспечивает привычный Вам вывод в консоль. Перехватчик вывода в журнал событий sysylog также загружается по умолчанию. Оба перехватчика можно найти в /usr/lib/network/hooks.

ArchAssitant (GUI)

Для управления netcfg существует графический интерфейс ArchAssistant (основан на библиотеке Qt). Он предоставляет возможность управления профилями, подключения/отключения профилей с использованием значка в области уведомлений. Также доступно автоматическое обнаружение беспроводных сетей. Этот GUI инструмент предназначен, в основном, для пользователей портативных компьютеров.

Links:

Также существует относительно новый GUI интерфейс для netcfg2 на qt-apps.org, который выполняет только настройку сети.[1].

wifi-select

Существует консольная программа wifi-select для выбора беспроводных сетей "на лету" (в стиле NetworkManager). Эту программу удобно использовать в Интернет-кафе или других местах, которые Вы посещаете в первый (и, может быть, в последний) раз. Используя эту программу Вам не нужно предварительно создавать сетевой профиль, просто наберите в терминале sudo wifi-select wlan0 и выберите ту сеть, которая Вам нужна в данный момент.

Программа доступна в пакетах репозитария [community]. Для установки наберите команду:

# pacman -S wifi-select

wifi-select работает по следующему алгоритму:

  • используя dialog выдает результат iwlist scan в виде списка сетей и их настроек безопасноти (WPA/WEP/none)
  • если пользователь выбрал сеть, для которой уже существует профиль - профиль загружается посредством netcfg
  • если пользователь выбрал новую сеть (например точку доступа WiFi), wifi-select автоматически генерирует новый профиль с соответствующий настройкой безопасности $SECURITY и запрашивает у пользователя пароль/ключ (если требуется). По умолчанию для заполнения $IP используется механизм DHCP
  • если подключение к сети выполнено успешно, профиль сохраняется для дальнейшего использования
  • если подключение не удалось, у пользователя запрашивается информация о том, хотел бы он сохранить сгенерированный профиль для дальнейшего использования (например для смены $IP на статический, или указания других необходимых опций)

Links:

Поиск и устранение неисправностей

Отладочная информация

Для включения режима вывода отладочной информации установите переменную окружения NETCFG_DEBUG в значение "yes", например:

# NETCFG_DEBUG="yes" netcfg <arguments>

Отладочная информация для wpa_supplicant может быть получена при помощи указания в профиле опции WPA_OPTS, например:

WPA_OPTS="-f/path/to/log"

Любые значения, указанные здесь, будут переданы как опции к команде wpa_supplicant.

Network unavailable

Основные причины данной ошибки:

  • Слабый сигнал/вне зоны
  • Проблемы с драйвером
  • Попытка подключиться к скрытой сети

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

SCAN=no 

Wireless association failed

Основные причины данной ошибки:

  • Слабый сигнал/вне зоны
  • Некорректные настройки
  • Неправильный ключ/пароль
  • Проблемы с драйвером

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

Unable to get IP address with DHCP

Основные причины данной ошибки:

  • Слабый сигнал/вне зоны

Попытайтесь увеличить значениеDHCP_TIMEOUT.

Not a valid connection, check spelling or look at examples

You must set CONNECTION to one of the connection types listed in the /usr/lib/network/connections directory. Alternatively, use one of the provided configuration examples in /etc/network.d/examples.

Специфические настройки драйвера(quirks)

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

Some drivers behave oddly and need workarounds to connect. Quirks must be enabled manually. They are best determined by reading the forums, seeing what others have used, and, if that fails, trial and error. Quirks can be combined. Некоторые драйверы ведут себя странно, и нуждаются в дополнительных опциях. Наилучший способ определить какие спец.настройки Вам нужны - просмотреть соответствующие форумы и определить, кто какими опциями пользуется, а какие из них приводят к ошибкам и сбоям. Спец.опции можно комбинировать.

prescan
выполнить iwlist $INTERFACE scan перед попыткой подключения (broadcom)
preessid
выполнить iwconfig $INTERFACE essid $ESSID перед попыткой подключения (ipw3945 and Intel PRO/Wireless 4965AGN)
wpaessid
То же самое, но выполнить перед стартом wpa_supplicant. В настоящее время не актуально, нужно использовать
IWCONFIG="essid $ESSID"
(ath9k)
predown
выключить интерфейс перед ассоциацией с сетью и включить после неё (madwifi)
postsleep
задержка на 1 сек. перед проверкой успешности ассоциации
postscan
запуск iwlist scan после ассоциации.

Например:

QUIRKS=(prescan preessid)

Если после указания вышеприведенных параметров Вы получили сообщение об ошибке "Wireless network not found" или "Association failed", попробуйте указать :

SCAN=no

Если используется точка доступа со скрытым SSID, укажите:

IWCONFIG="essid $ESSID"

Драйверы Ralink legacy rt2500, rt2400, использующие iwpriv

Поддержка WPA в данных драйверах не планируется; однако драйвер rt2x00 поддерживает WPA и должен использоваться вместо них.

Если всё-таки вам приходится использовать данные драйверы, создайте shell скрипт, который запустит необходимые команды iwpriv, и укажите путь к этому скрипту в PRE_UP.

По прежнему ничего не работает, что мне делать?

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

Для того, чтобы определить в чем Ваша проблема, необходимо предоставить следующую информацию.

  • сообщения netcfg
  • ВСЕ сообщения netcfg
  • АБСОЛЮТНО ВСЕ сообщения netcfg
    • Без полной информации абсолютно не возможно определить что пошло не так. Сообщение может быть совсем коротким, или его вообще может не быть, но эта информация играет очень важную роль.
  • сетевые профили из /etc/network.d
    • Это тоже ключевой момент, т.к. большинство проблем связано с ошибками в настройках. Не забудьте затереть значения Ваших паролей и ключей.
  • версия netcfg
  • lsmod
  • iwconfig

FAQ

Template:FAQ

Template:FAQ

Template:FAQ