Difference between revisions of "Netctl"
|Line 149:||Line 149:|
Revision as of 19:15, 16 June 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 is a new Arch project that replaces netcfg. Netctl is the future (and present) of CLI-based network management on Arch Linux.
The Official Repositories. Installing netctl will replace .package is available in the
Considerable effort has gone into the construction of quality man pages. Users should read the following man pages prior to using netctl:
and are conflicting packages. You will be potentially connectionless after installing if your profiles are misconfigured.
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:
For wireless settings, use wifi-menu -o will generate the config file in /etc/netctl.
To use an example profile, simply copy one of them from
/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.
Just One Profile
If you are using only one profile, once that profile is started successfully, it can be
# netctl enable <profile>
This will create and enable a systemd service that will start when the computer boots.
netcfg there was
netctl-auto@<interface>.service for wireless profiles, and
netctl-ifplugd@<interface>.service for wired profiles. In order to make the
netctl-auto@<interface>.service work for wireless interfaces, the package is required to be installed. In order to make the
netctl-ifplugd@<interface>.service work for wired interfaces, the package is required to be installed. Configure
/etc/ifplugd/ifplugd.conf accordingly. Automatic selection of a WPA-enabled profile by netctl-auto is not possible with option
Security=wpa-config, please use
To set preferred wired profile for auto-connecting specify
AutoWired=yes in that profile. By default on failure will pass to other DHCP wired profiles, then to static ones. If you don't want it to do so, set
Once your profiles are set and verified to be working, simply enable these services with
# systemctl enable netctl-auto@<interface>.service # systemctl enable netctl-ifplugd@<interface>.service
Key=variable, the unit will fail to load at boot.
If you have previously enabled a profile through
# 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
netcfgso disable existing
netcfg@<profile>service before installing
/etc/netctl to store its profiles, not
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 variable names have only 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).
- If you setup a wireless profile according in the
wireless-wpa-configsectionexample, note that this overrides
wpa_supplicantoptions defined above the brackets. For a connection to a hidden wireless network, add
scan_ssid=1to the options in the
Hidden=yesdoes not work there.
- Unquote interface variables and other variables that don't strictly need quoting (this is mainly a style thing).
netctl enable <profile>for every profile in the old NETWORKS array. 'last' doesn't work this way, see netctl.special(7).
netctl start <profile>instead of netcfg-menu. wifi-menu remains available.
- It may be a good idea to use
systemctl --type=serviceto ensure that no other service is running that may want to configure the network. Multiple networking services will conflict.
Passphrase obfuscation (256-bit PSK)
Users not wishing to have the passphrase to their wireless network stored in plain text have the option of storing the corresponding 256-bit pre-shared key (PSK) instead, which is calculated from the passphrase and the SSID using standard algorithms.
- Method 1: Use
wifi-menu -oto generate a config file in
- Method 2: Manual settings as follows. If the passphrase fails, try removing the \" in Key= (see note below)
For both methods it is suggested to
chmod 600 /etc/netctl/<config_file> to prevent user access to the password.
Calculate your 256-bit PSK using wpa_passphrase:
Usage: wpa_passphrase [ssid] [passphrase]
$ wpa_passphrase archlinux freenode
In a second terminal window, copy the example file
# 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 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 PSK should resemble:
Description='A simple WPA encrypted wireless connection using 256-bit PSK' Interface=wlp2s2 Connection=wireless Security=wpa IP=dhcp ESSID=archlinux Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
Key=that are explained at the end of netctl.profile(5).
Official announcement thread: https://bbs.archlinux.org/viewtopic.php?id=157670
Tips and Tricks
Replace 'netcfg current'
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'
netctl-auto was used to connect:
# wpa_cli -i <interface> status | sed -n 's/^id_str=//p'
To connect ta a wireless network at university it is very likely you need a profile looking like this (tested in Freiburg, Germany):
Description='Eduroam-profile for <user>' Interface=wlan0 Connection=wireless Security=wpa-configsection IP=dhcp WPAConfigSection=( 'ssid="eduroam"' 'proto=RSN' 'key_mgmt=WPA-EAP' 'pairwise=CCMP' 'auth_alg=OPEN' 'eap=PEAP' 'identity="<user>"' 'password="<password>"' )