Difference between revisions of "Netctl (Русский)"
(→Шифрование пароля (256-битный Pre-Shared Key)) |
(→Шифрование пароля (256-битный Pre-Shared Key)) |
||
Line 121: | Line 121: | ||
* Для генерации нужных настроек в {{ic|/etc/netctl/}} использовать {{ic|wifi-menu -o}}. | * Для генерации нужных настроек в {{ic|/etc/netctl/}} использовать {{ic|wifi-menu -o}}. | ||
* Ручная настройка, описанная ниже. | * Ручная настройка, описанная ниже. | ||
+ | |||
+ | Какой бы метод вы не выбрали, для доступа пользователя к паролю следует установить нужные права на файл профиля: | ||
+ | |||
+ | # chmod 600 /etc/netctl/<config_file> | ||
Если это еще не сделано, [[pacman|установите]] {{pkg|wpa_actiond}} из [[Official Repositories]]. | Если это еще не сделано, [[pacman|установите]] {{pkg|wpa_actiond}} из [[Official Repositories]]. |
Revision as of 01:49, 19 August 2013
zh-CN:Netctl Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end netctl - это инструмент командной строки, используемый для настройки и управления сетевыми подключениями через профили. Это нативный проект, призванный заменить устаревшую утилиту netcfg.
Contents
Установка
Пакет netctl доступен в официальном репозитории. Установка netctl заменит netcfg.
netctl и netcfg - конфликтующие пакеты. Есть вероятность потери соединения после установки netctl, если ваши профили некорректно настроены.
systemctl --type=service
. Различные сетевые сервисы будут конфликтоватьОбязательно к прочтению
Перед началом использования netctl желательно прочитать следующие страницы:
Настройка
Для управления сетевыми соединениями netctl
использует профили, которые расположены в /etc/netctl/
. Примеры профилей расположены в /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/
/etc/netctl/
можно выполнить wifi-menu -o
.Как только вы создали профиль, попробуйте установить соединение:
# netctl start profile
Если результат выполнения команды говорит о неудаче, выполните journalctl -xn
и netctl status profile
для выяснения причин. Выполните необходимую корректировку конфигурации и повторите попытку.
Автоматизация
Если используется только один профиль на один интерфес или вы хотите переключать профили вручную, то подойдет Основной метод - пользователям серверов, рабочих станций, роутеров и прочего.
Если требуется часто переключаться между многими профилями, используйте Автоматическое переключение профилей - будет полезно пользователям ноутбуков.
Основной метод
Этим методом можно запустить только один профиль на интерфейс. Сначала проверьте, может ли профиль быть запущен:
# netctl enable profile
Эта команда создаст и активирует systemd-сервис, который будет автоматически запускать профиль при загрузке.
SkipNoCarrier=yes
в файл профиляАвтоматическое переключение профилей
Для автоматического переключения профилей netcl предоставляет два специальных systemd-сервиса:
- Для проводных соединений:
netctl-ifplugd@interface.service
. Профиль измненятся при отключении и подключении кабеля. - Для беспроводных соединений:
netctl-auto@interface.service
. Порфиль изменятся при переходе из диапазона одной сети в диапазон другой.
Сначала установите необходимые пакеты:
- Пакет wpa_actiond требуется сервисом
netctl-auto@interface.service
- Пакет ifplugd требуется сервисом
netctl-ifplugd@interface.service
net-auto-wireless.service
и {{|net-auto-wired.service}} для этих целей.Теперь отредактируйте все профили, которые netctl-auto@interface.service
и netctl-ifplugd@interface.service
должны будут запускать.
Если вы хотите, чтобы какой-то из беспрводных профилей не запускался автоматически сервисом netctl-auto@interface.service
, то это можно явно указать в файле профиля, добавив в него ExcludeAuto=yes
.
Приоритет запуска профиля можно установить с помощью Priority=
. netctl-ifplugd@interface.service
первым предпочтет профиль, который использует DHCP. Для того, чтобы сначала был запущен профиль, использующий статический IP, можно использовать AutoWired=yes
. Подробную информацию смотрите в netctl.profile(5)
.
Security=wpa-config
невозможно автоматическое подключение к WPA профилю средствами netctl-auto. Вместо этого используйте Security=wpa-configsection
После того, как все профили настроены, активируйте сервисы с помощью systemctl:
# systemctl enable netctl-auto@interface.service # systemctl enable netctl-ifplugd@interface.service
- Юнит не запустится при загрузке системы, если один из профилей содержит ошибки, например пустую переменную
Key=
. - Этот метод несовместим с Основным методом. Если вы ранее активировали профиль через netctl, запустите
netctl disable profile
, чтобы предотвратить запуск профиля дважды при загрузке.
Переход с Netcfg
netctl хранит профили в /etc/netctl/
, а не в /etc/network.d/
, как это делал 'netcfg.
Чтобы перейти с netcfg, необходимо выполнить по крайней мере следующие шаги:
- Отключите сервисы ntcfg:
systemctl disable netcfg.service
. - Удалите netcfg и установите netctl.
- Переместите файлы сетевых профилей в новую директорию.
- Переименуйте переменныей в соответствии с
netctl.profile(5)
(в основном надо привести переменные кUpperCamelCase
, напримерCONNECTION
переименовать вConnection
) - Убедитесь, что в переменной
Address
профиля со статическим IP прописана маска подсети после IP адреса (из образца файла профиля:Address=('192.168.1.23/24' '192.168.1.87/24')
) - Если вы настраиваете беспроводное соединение по образцу
wireless-wpa-configsection
, обратите внимание, что это перезапишет опцииwpa_supplicant
, определенные выше в скобках. Для подключения к скрытой беспроводной сети добавьтеscan_ssid=1
к опциям вwireless-wpa-configsection
;Hidden=yes
здесь не действует. - На ваше усмотрение можно удалить кавычки у переменных, для которых кавычки не обязательны.
- Выполните
netctl enable profile
для каждого профиля в старом массивеNETWORKS
. Если не сработало, смотритеnetctl.special(7)
. - Вместо netcfg-menu используйте
netctl list
и/илиnetctl start profile
. wifi-menu остался доступным. - В отличие от netcfg по умолчанию netctl не поднимает сетевую плату, не подключеную к другой работающей сетевой плате. Чтобы обойти этот недостаток, добавьте
SkipNoCarrier=yes
в конец вашего/etc/netctl/profile
. Тогда, даже если, например, кабель ethernet не подключен, сервис будет запущен.
У пользователей, не желающих, чтобы их пароль хранился в простом тексте, есть возможность использовать 256-bit Encrypted PSK, вычисляемый на основе пароля и SSID сети стандартными алгоритмами. Реализовать шифрование можно двумя способами:
- Для генерации нужных настроек в
/etc/netctl/
использоватьwifi-menu -o
. - Ручная настройка, описанная ниже.
Какой бы метод вы не выбрали, для доступа пользователя к паролю следует установить нужные права на файл профиля:
# chmod 600 /etc/netctl/<config_file>
Если это еще не сделано, установите 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
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'