netctl
zh-CN:Netctl Template:Article summary start Template:Article summary text Template:Article summary end Netctl is a new Arch project that replaces netcfg. Netctl is the future (and present) of CLI-based network management on Arch Linux.
Contents
Installation
The netctl package is available in [core]. Installing netctl will replace netcfg.
Required reading
Considerable effort has gone into the construction of quality man pages. Users should read the following man pages prior to using netctl:
netctl
and netcfg
are conflicting packages. You will be potentially connectionless after installing netctl
, IF your profiles are misconfigured.
Configuration
netctl
may be used to introspect and control the state of the systemd services for the network profile manager. Example configuration files are provided for the user to assist them in configuring their network connection. These example profiles are located in /etc/netctl/examples/
. The common configurations include:
- ethernet-dhcp
- ethernet-static
- wireless-wpa
- wireless-wpa-static
To use an example profile, simply copy one of them from /etc/netctl/examples/
to /etc/netctl/
and configure it to your needs:
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/
Once you have created your profile, make an attempt to establish a connection using the newly created profile by running:
# netctl start <profile>
If issuing the above command results in a failure, then use journalctl -xn
and netctl status <profile>
in order to obtain a more in depth explanation of the failure. Make the needed corrections to the failed configuration and retest.
Automatic Operation
Just One Profile
If you are using only one profile, once that profile is started successfully, it can be enabled
using # netctl enable <profile>
. This will create a systemd
service that will start when the computer boots.
Multiple Profiles
Whereas with netcfg
there was net-auto-wireless.service
and net-auto-wired.service
, netctl
uses netctl-auto@<interface>.service
for wireless profiles, and netctl-ifplugd@<interface>.service
for wired profiles. Once your profiles are set and verified to be working, simply enable these services with # systemctl enable netctl-auto@<interface>.service
and # systemctl netctl-ifplugd@<interface>.service
.
If you have previously enabled a profile through netctl
, run # netctl disable <profile>
to prevent the profile from starting twice at boot, and possibly causing issues with wpa_supplicant.
netctl reenable <profile>
to apply the changes.Migrating from netcfg
netctl
conflicts with netcfg
so disable existing netcfg@<profile>
service before installing netctl
.netctl
uses /etc/netctl
to store its profiles, not /etc/network.d
(netcfg
's profile storage location).
In order to migrate from netcfg, at least the following is needed:
- Move network profile files to the new directory.
- Rename variables therein according to netctl.profile(5) (most have only become UpperCamelCase i.e CONNECTION= becomes Connection=).
- For static IP configuration make sure the Address= variables have a netmask after the IP (e.g. Address=('192.168.1.23/24' '192.168.1.87/24') in the example profile).
- Unquote interface variables and other variables that don't strictly need quoting (this is mainly a style thing).
- Run
netctl enable <profile>
for every profile in the old NETWORKS array. 'last' doesn't work this way, see netctl.special(7). - Use
netctl list
/netctl start <profile>
instead of netcfg-menu. wifi-menu remains available.
Password encryption (256-bit PSK)
Users not wishing to have their passwords stored in plain text have the option of generating a 256-bit Encrypted PSK.
If you have not done so already, install wpa_actiond from the [core] repository using pacman
# pacman -S wpa_actiond
Next, generate your 256-bit Encrypted PSK using wpa_passphrase:
Usage: wpa_passphrase [ssid] [passphrase]
$ wpa_passphrase archlinux freenode
In a second terminal window copy the example file wireless-wpa
from /etc/netctl/examples
to /etc/netctl
.
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa
You will then need to edit /etc/netctl/wireless-wpa
using your favorite text editor and add the Encrypted Pre-shared Key that was generated earlier using wpa_passphrase, to the Key
variable of this profile.
Once completed your network profile wireless-wpa
containing a 256-bit Encrypted PSK should resemble:
/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=
that are explained at the end of netctl.profile(5).Support
Official announcement thread: https://bbs.archlinux.org/viewtopic.php?id=157670
Tips and Tricks
As of April 2013 there is no netctl alternative to netcfg current
. If you relied on it for something, like a status bar for a tiling window manager, you can now use:
# netctl list | sed -n 's/\* //p'