netctl (Русский)

From ArchWiki
Revision as of 20:42, 9 May 2013 by Rmuratov (Talk | contribs) (Переход с Netcfg)

Jump to: navigation, search

Summary help replacing me
Руководство по настройке сети с помощью netctl и скриптам сетевых профилей.

Netctl это новый Arch проект, который заменяет netcfg. Netctl это будущее (и настоящее) управления сетями из командной строки Arch Linux.

Установка

Пакет netctl доступен в Official Repositories. Установка netctl заменит netcfg.

Обязательно к прочтению

Для netctl доступны качественные man-страницы. Пользователям следует прочитать следующие man-страницы, прежде чем начать использовать netctl:

netctl и netcfg - конфликтующие пакеты. Есть вероятность потери соединения после установки netctl, ЕСЛИ ваши профили некорректно настроены.

Настройка

netctl можно использовать для анализа и контроля за состоянием сервисов Systemd для менеджера сетевого профиля. Пользователи могут обратиться к примерам файлов конфигурации сетевых подключений. Примеры профилей расположены в /etc/netctl/examples/. В общую конфигурацию включены:

  • ethernet-dhcp
  • ethernet-static
  • wireless-wpa
  • wireless-wpa-static

Чтобы использовать пример конфигурации просто скопируйте один из них из /etc/netctl/examples/ в /etc/netctl/ и отредактируйте необходимым образом:

# cp /etc/netctl/examples/wireless-wpa /etc/netctl/

Как только вы создали профиль, сделайте попытку установить соединение используя вновь созданный профиль, выполнив:

# netctl start <profile>

Если результат выполнения команды говорит о неудаче, выполните journalctl -xn и netctl status <profile> для более глубокого анализа причин неудачи. Выполните необходимую корректировку конфигурации и повторите попытку.

Автоматические операции

Один профиль

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

# netctl enable <profile> 

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

Несколько профилей

В то время как netcfg использовал net-auto-wireless.service и net-auto-wired.service, netctl использует netctl-auto@<interface>.service для беспроводных соединений и netctl-ifplugd@<interface>.service для проводных соединений. Для того, чтобы netctl-auto@<interface>.service работал с беспроводными соединениями необходимо установить пакет wpa_actiond. Для того, чтобы netctl-ifplugd@<interface>.service работал с проводными соединениями необходимо установить пакет ifplugd. Настройте /etc/ifplugd/ifplugd.conf соответствующим образом.

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

# systemctl enable netctl-auto@<interface>.service 
# systemctl enable netctl-ifplugd@<interface>.service  

Если у вас уже есть профиль, активированный через netctl, выполните

# netctl disable <profile>

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

Note: Если необходимо изменить уже существующий профиль, выполните netctl reenable <profile>, чтобы применить изменения.

Переход с Netcfg

Warning: netctl конфликтует с netcfg, поэтому отключите существующие netcfg@<profile> сервисы перед установкой netctl.

Профили netctl находятся в /etc/netctl, а не в каталоге /etc/network.d (который использовал netcfg)

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

  • Переместите файлы профилей сетевых подключений в новую директорию.
  • Переименуйте переменные в них в соответствии с netctl.profile(5) (Большинство имен переменных всего лишь изменят стиль на UpperCamelCase, например CONNECTION= становится Connection=)
  • Для соединений со статическим IP удостоверьтесь в том, что переменная Address= имеет маску подсети после IP (например Address=('192.168.1.23/24' '192.168.1.87/24') в примере профиля)
  • Если вы установили беспроводное соединение в соответствии с примером wireless-wpa-configsection, учтите, что это перепишет wpa_supplicant options defined above the brackets. Для подключение к скрытой беспроводной сети добавьте scan_ssid=1 к параметрам в wireless-wpa-configsection; Hidden=yes не работает здесь.
  • Удалите кавычки у значений переменных, для которых они не обязательны (в основном это дело вкуса).
  • Выполните netctl enable <profile> для каждого профиля в старом массиве NETWORK. Он не работает в этом случае, смотрите netctl.special(7).
  • Используйте netctl list / netctl start <profile> вместо netcfg-menu. wifi-menu остается доступным.

Шифрование пароля (256-битный Pre-Shared Key)

У пользователей, не желающих, чтобы их пароль хранился в простом тексте, есть возможность использовать 256-bit Encrypted PSK.

Если это еще не сделано, установите wpa_actiond из Official Repositories.

Далее, сгенерируйте ваш 256-bit Encrypted PSK используя wpa_passphrase:

Usage: wpa_passphrase [ssid] [passphrase]
$ wpa_passphrase archlinux freenode

Во втором окне терминала скопируйте файл примера wireless-wpa из /etc/netctl/examples в /etc/netctl.

# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa

Далее вам будет необходимо отредактировать /etc/netctl/wireless-wpa, используя ваш любимый текстовый редактор, и добавить Encrypted Pre-shared Key, который был сгенерирован ранее с использованием wpa_passphrase, в переменную Key этого профиля.

Профиль wireless-wpa, включающий 256-bit Encrypted PSK будет выглядеть примерно так:

/etc/netctl/wireless-wpa
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Interface=wlp2s2
Connection=wireless
Security=wpa
IP=dhcp
ESSID=archlinux
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
Note: Убедитесь, что использованы special non-quoted rules для Key=, которые описаны в конце netctl.profile(5).

Поддержка

Официальная страница обсуждения: https://bbs.archlinux.org/viewtopic.php?id=157670

Советы

По состоянию на апрель 2013 в netctl нет альтернативы netcfg current. Если вы использовали эту возможность для чего-то, вроде статус-бара тайлового оконного менеджера, теперь вы можете использовать следующее:

# netctl list | sed -n 's/^\* //p'

или, если для подключения использовался netctl-auto:

# wpa_cli -i <interface> status | sed -n 's/^id_str=//p'