NetworkManager/man/nmcli.xml

2750 lines
117 KiB
XML

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % entities SYSTEM "common.ent" >
%entities;
]>
<!--
nmcli(1) manual page
Copyright 2010 - 2018 Red Hat, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. You may obtain a copy of the GNU Free Documentation License
from the Free Software Foundation by visiting their Web site or by
writing to:
Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<refentry id='nmcli'>
<refentryinfo>
<title>nmcli</title>
<author>NetworkManager developers</author>
</refentryinfo>
<refmeta>
<refentrytitle>nmcli</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">NetworkManager</refmiscinfo>
<refmiscinfo class="manual">General Commands Manual</refmiscinfo>
<refmiscinfo class="version">&NM_VERSION;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>nmcli</refname>
<refpurpose>command-line tool for controlling NetworkManager</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>nmcli</command>
<arg choice="opt" rep="repeat"><replaceable>OPTIONS</replaceable></arg>
<group choice='req'>
<arg choice='plain'><option>help</option></arg>
<arg choice='plain'><option>general</option></arg>
<arg choice='plain'><option>networking</option></arg>
<arg choice='plain'><option>radio</option></arg>
<arg choice='plain'><option>connection</option></arg>
<arg choice='plain'><option>device</option></arg>
<arg choice='plain'><option>agent</option></arg>
<arg choice='plain'><option>monitor</option></arg>
</group>
<arg><replaceable>COMMAND</replaceable></arg>
<arg rep="repeat"><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'><title>Description</title>
<para><command>nmcli</command> is a command-line tool for controlling
NetworkManager and reporting network status. It can be utilized as a
replacement for <command>nm-applet</command> or other graphical clients.
<command>nmcli</command> is used to create, display, edit, delete, activate,
and deactivate network connections, as well as control and display network
device status.</para>
<para>Typical uses include:</para>
<itemizedlist>
<listitem>
<para>Scripts: Utilize NetworkManager via <command>nmcli</command> instead of
managing network connections manually. <command>nmcli</command> supports a
terse output format which is better suited for script processing. Note that
NetworkManager can also execute scripts, called "dispatcher scripts", in
response to network events. See
<link linkend='NetworkManager'><link linkend='NetworkManager'><citerefentry><refentrytitle>NetworkManager</refentrytitle><manvolnum>8</manvolnum></citerefentry></link></link>
for details about these dispatcher scripts.</para>
</listitem>
<listitem>
<para>Servers, headless machines, and terminals: <command>nmcli</command> can
be used to control NetworkManager without a GUI, including creating, editing,
starting and stopping network connections and viewing network status.</para>
</listitem>
</itemizedlist>
</refsect1>
<refsect1 id='options'><title>Options</title>
<variablelist>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-t</option></arg>
<arg choice='plain'><option>--terse</option></arg>
</group></term>
<listitem>
<para>Output is terse. This mode is designed and suitable for computer (script)
processing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-p</option></arg>
<arg choice='plain'><option>--pretty</option></arg>
</group></term>
<listitem>
<para>Output is pretty. This causes <command>nmcli</command> to produce easily
readable outputs for humans, i.e. values are aligned, headers are printed,
etc.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-m</option></arg>
<arg choice='plain'><option>--mode</option></arg>
<group choice='req'>
<arg choice='plain'>tabular</arg>
<arg choice='plain'>multiline</arg>
</group>
</group></term>
<listitem>
<para>Switch between tabular and multiline output:</para>
<variablelist>
<varlistentry>
<term><arg choice='plain'>tabular</arg></term>
<listitem>
<para>Output is a table where each line describes a single entry.
Columns define particular properties of the entry.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><arg choice='plain'>multiline</arg></term>
<listitem>
<para>Each entry comprises multiple lines, each property on its
own line. The values are prefixed with the property name.</para>
</listitem>
</varlistentry>
</variablelist>
<para>If omitted, default is <literal>tabular</literal> for most commands.
For the commands producing more structured information, that cannot be
displayed on a single line, default is <literal>multiline</literal>.
Currently, they are:</para>
<itemizedlist>
<listitem>
<para><literal>nmcli connection show <replaceable>ID</replaceable></literal></para>
</listitem>
<listitem>
<para><literal>nmcli device show</literal></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-c</option></arg>
<arg choice='plain'><option>--colors</option></arg>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
<arg choice='plain'>auto</arg>
</group>
</group></term>
<listitem>
<para>This option controls color output (using terminal escape sequences).
<literal>yes</literal> enables colors, <literal>no</literal> disables them,
<literal>auto</literal> only produces colors when standard output is directed
to a terminal. The default value is <literal>auto</literal>.</para>
<para>The actual colors used are configured as described in
<citerefentry><refentrytitle>terminal-colors.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
Please refer to the <link linkend='colors' endterm='colors.title' /> section for a
list of color names supported by <command>nmcli</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-f</option></arg>
<arg choice='plain'><option>--fields</option></arg>
<group choice='req'>
<arg choice='plain' rep='repeat'><replaceable>field1</replaceable>,<replaceable>field2</replaceable></arg>
<arg choice='plain'>all</arg>
<arg choice='plain'>common</arg>
</group>
</group></term>
<listitem>
<para>This option is used to specify what fields (column names) should be
printed. Valid field names differ for specific commands. List available fields
by providing an invalid value to the <option>--fields</option> option.
<literal>all</literal> is used to print all valid field values of the
command. <literal>common</literal> is used to print common field values of
the command.</para>
<para>If omitted, default is <literal>common</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-g</option></arg>
<arg choice='plain'><option>--get-values</option></arg>
<group choice='req'>
<arg choice='plain' rep='repeat'><replaceable>field1</replaceable>,<replaceable>field2</replaceable></arg>
<arg choice='plain'>all</arg>
<arg choice='plain'>common</arg>
</group>
</group></term>
<listitem>
<para>This option is used to print values from specific fields. It is basically
a shortcut for <literal>--mode tabular --terse --fields</literal> and is a convenient
way to retrieve values for particular fields. The values are printed one per line
without headers.</para>
<para>If a section is specified instead of a field, the section name will be printed
followed by colon separated values of the fields belonging to that section, all on
the same line.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-e</option></arg>
<arg choice='plain'><option>--escape</option></arg>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
</group>
</group></term>
<listitem>
<para>Whether to escape <literal>:</literal> and <literal>\</literal> characters in terse tabular mode. The
escape character is <literal>\</literal>.</para>
<para>If omitted, default is <literal>yes</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-a</option></arg>
<arg choice='plain'><option>--ask</option></arg>
</group></term>
<listitem>
<para>When using this option <command>nmcli</command> will stop and ask for any
missing required arguments, so do not use this option for non-interactive
purposes like scripts. This option controls, for example, whether you will be
prompted for a password if it is required for connecting to a network.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-s</option></arg>
<arg choice='plain'><option>--show-secrets</option></arg>
</group></term>
<listitem>
<para>When using this option <command>nmcli</command> will display passwords
and secrets that might be present in an output of an operation. This option
also influences echoing passwords typed by user as an input.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-w</option></arg>
<arg choice='plain'><option>--wait</option></arg></group>
<arg choice='plain'><replaceable>seconds</replaceable></arg>
</term>
<listitem>
<para>This option sets a timeout period for which <command>nmcli</command> will
wait for NetworkManager to finish operations. It is
especially useful for commands that may take a longer time to complete, e.g.
connection activation.</para>
<para>Specifying a value of <literal>0</literal> instructs
<command>nmcli</command> not to wait but to exit immediately with a status of
success. The default value depends on the executed command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>--complete-args</option></arg>
</group></term>
<listitem>
<para>Instead of conducting the desired action, <command>nmcli</command>
will list possible completions for the last argument. This is useful to implement
argument completion in shell.</para>
<para>The <link linkend='exit_status'>exit status</link> will indicate success
or return a code 65 to indicate the last argument is a file name.</para>
<para>NetworkManager ships with command completion support for GNU Bash.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-v</option></arg>
<arg choice='plain'><option>--version</option></arg>
</group></term>
<listitem>
<para>Show <command>nmcli</command> version.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><group choice='plain'>
<arg choice='plain'><option>-h</option></arg>
<arg choice='plain'><option>--help</option></arg>
</group></term>
<listitem>
<para>Print help information.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='general'><title>General Commands</title>
<cmdsynopsis>
<command>nmcli general</command>
<group choice='req'>
<arg choice='plain'><command>status</command></arg>
<arg choice='plain'><command>hostname</command></arg>
<arg choice='plain'><command>permissions</command></arg>
<arg choice='plain'><command>logging</command></arg>
</group>
<arg rep='repeat'><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
<para>Use this command to show NetworkManager status and permissions. You can also get
and change system hostname, as well as NetworkManager logging level and domains.</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem>
<para>Show overall status of NetworkManager. This is the default action, when
no additional command is provided for <command>nmcli general</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>hostname</command>
<arg><replaceable>hostname</replaceable></arg>
</term>
<listitem>
<para>Get and change system hostname. With no arguments, this prints currently
configured hostname. When you pass a hostname, it will be handed over to
NetworkManager to be set as a new system hostname.</para>
<para>Note that the term "system" hostname may also be referred to as
"persistent" or "static" by other programs or tools. The hostname is stored
in <filename>/etc/hostname</filename> file in most distributions. For example,
systemd-hostnamed service uses the term "static" hostname and it only reads
the <filename>/etc/hostname</filename> file when it starts.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>permissions</command></term>
<listitem>
<para>Show the permissions a caller has for various authenticated operations
that NetworkManager provides, like enable and disable networking, changing
Wi-Fi and WWAN state, modifying connections, etc.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>logging</command>
<arg><option>level</option> <replaceable>level</replaceable></arg>
<arg rep='repeat'><option>domains</option> <replaceable>domains</replaceable></arg>
</term>
<listitem>
<para>Get and change NetworkManager logging level and
domains. Without any argument current logging level and domains are shown. In
order to change logging state, provide <option>level</option> and, or,
<option>domain</option> parameters. See
<link linkend='NetworkManager.conf'><link linkend='NetworkManager.conf'><citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></link></link>
for available level and domain values.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='networking'><title>Networking Control Commands</title>
<cmdsynopsis>
<command>nmcli networking</command>
<group choice='req'>
<arg choice='plain'><command>on</command></arg>
<arg choice='plain'><command>off</command></arg>
<arg choice='plain'><command>connectivity</command></arg>
</group>
<arg rep='repeat'><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
<para>Query NetworkManager networking status, enable and disable networking.
</para>
<variablelist>
<varlistentry>
<term><command>on</command></term>
<term><command>off</command></term>
<listitem>
<para>Enable or disable networking control by NetworkManager.
All interfaces managed by NetworkManager are deactivated when networking
is disabled.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>connectivity</command>
<arg>check</arg>
</term>
<listitem>
<para>Get network connectivity state. The optional <option>check</option>
argument tells NetworkManager to re-check the connectivity, else the most
recent known connectivity state is displayed without re-checking.</para>
<para>Possible states are:</para>
<variablelist>
<varlistentry>
<term><arg choice='plain'>none</arg></term>
<listitem>
<para>the host is not connected to any network.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><arg choice='plain'>portal</arg></term>
<listitem>
<para>the host is behind a captive portal and cannot reach the full Internet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><arg choice='plain'>limited</arg></term>
<listitem>
<para>the host is connected to a network, but it has no access to the Internet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><arg choice='plain'>full</arg></term>
<listitem>
<para>the host is connected to a network and has full access to the Internet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><arg choice='plain'>unknown</arg></term>
<listitem>
<para>the connectivity status cannot be found out.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='radio'><title>Radio Transmission Control Commands</title>
<cmdsynopsis>
<command>nmcli radio</command>
<group choice='req'>
<arg choice='plain'><command>all</command></arg>
<arg choice='plain'><command>wifi</command></arg>
<arg choice='plain'><command>wwan</command></arg>
</group>
<arg rep='repeat'><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
<para>Show radio switches status, or enable and disable the switches.</para>
<variablelist>
<varlistentry>
<term>
<command>wifi</command>
<group>
<arg choice='plain'>on</arg>
<arg choice='plain'>off</arg>
</group>
</term>
<listitem>
<para>Show or set status of Wi-Fi in NetworkManager. If no arguments are
supplied, Wi-Fi status is printed; <option>on</option> enables Wi-Fi;
<option>off</option> disables Wi-Fi.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>wwan</command>
<group>
<arg choice='plain'>on</arg>
<arg choice='plain'>off</arg>
</group>
</term>
<listitem>
<para>Show or set status of WWAN (mobile broadband) in NetworkManager. If no
arguments are supplied, mobile broadband status is printed;
<option>on</option> enables mobile broadband, <option>off</option>
disables it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>all</command>
<group>
<arg choice='plain'>on</arg>
<arg choice='plain'>off</arg>
</group>
</term>
<listitem>
<para>Show or set all previously mentioned radio switches at the same time.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='monitor'><title>Activity Monitor</title>
<cmdsynopsis>
<command>nmcli monitor</command>
</cmdsynopsis>
<para>Observe NetworkManager activity. Watches for changes
in connectivity state, devices or connection profiles.</para>
<para>See also <command>nmcli connection monitor</command>
and <command>nmcli device monitor</command> to watch
for changes in certain devices or connections.</para>
</refsect1>
<refsect1 id='connection'><title>Connection Management Commands</title>
<cmdsynopsis>
<command>nmcli connection</command>
<group choice='req'>
<arg choice='plain'><command>show</command></arg>
<arg choice='plain'><command>up</command></arg>
<arg choice='plain'><command>down</command></arg>
<arg choice='plain'><command>modify</command></arg>
<arg choice='plain'><command>add</command></arg>
<arg choice='plain'><command>edit</command></arg>
<arg choice='plain'><command>clone</command></arg>
<arg choice='plain'><command>delete</command></arg>
<arg choice='plain'><command>monitor</command></arg>
<arg choice='plain'><command>reload</command></arg>
<arg choice='plain'><command>load</command></arg>
<arg choice='plain'><command>import</command></arg>
<arg choice='plain'><command>export</command></arg>
</group>
<arg rep='repeat'><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
<para>NetworkManager stores all network configuration as "connections",
which are collections of data (Layer2 details, IP addressing, etc.) that
describe how to create or connect to a network. A connection is "active"
when a device uses that connection's configuration to create or connect to
a network. There may be multiple connections that apply to a device, but only
one of them can be active on that device at any given time. The additional
connections can be used to allow quick switching between different networks
and configurations.</para>
<para>Consider a machine which is usually connected to a DHCP-enabled network,
but sometimes connected to a testing network which uses static IP addressing.
Instead of manually reconfiguring eth0 each time the network is changed, the
settings can be saved as two connections which both apply to eth0, one for DHCP
(called <literal>default</literal>) and one with the static addressing details (called
<literal>testing</literal>). When connected to the DHCP-enabled network the user would run
<command>nmcli con up default</command> , and when connected to the static network the user
would run <command>nmcli con up testing</command>.</para>
<variablelist>
<varlistentry>
<term>
<command>show</command>
<arg><option>--active</option></arg>
<arg>
<option>--order</option>
<arg choice='plain' rep='repeat'>[+-]<replaceable>category</replaceable>:</arg>
</arg>
</term>
<listitem>
<para>List in-memory and on-disk connection profiles, some of which may also be
active if a device is using that connection profile. Without a parameter, all
profiles are listed. When <option>--active</option> option is specified, only
the active profiles are shown.</para>
<para>The <option>--order</option> option can be used to get custom
ordering of connections. The connections can be ordered by active status
(<literal>active</literal>), name (<literal>name</literal>), type
(<literal>type</literal>) or D-Bus path (<literal>path</literal>). If
connections are equal according to a sort order category, an additional
category can be specified. The default sorting order is equivalent to
<literal>--order active:name:path</literal>. <literal>+</literal> or no
prefix means sorting in ascending order (alphabetically or in numbers),
<literal>-</literal> means reverse (descending) order. The category names
can be abbreviated (e.g. <literal>--order -a:na</literal>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>show</command>
<arg><option>--active</option></arg>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
<arg choice='plain'><option>apath</option></arg>
</group>
<arg rep='repeat' choice='plain'><replaceable>ID</replaceable></arg>
</term>
<listitem>
<para>Show details for specified connections. By default, both static
configuration and active connection data are displayed. When
<option>--active</option> option is specified, only the active profiles are
taken into account. Use global <option>--show-secrets</option> option to
display secrets associated with the profile.</para>
<para><option>id</option>, <option>uuid</option>,
<option>path</option> and <option>apath</option> keywords can be used
if <replaceable>ID</replaceable> is ambiguous. Optional
<replaceable>ID</replaceable>-specifying keywords are:</para>
<variablelist>
<varlistentry>
<term><option>id</option></term>
<listitem>
<para>the <replaceable>ID</replaceable> denotes a connection name.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>uuid</option></term>
<listitem>
<para>the <replaceable>ID</replaceable> denotes a connection UUID.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>path</option></term>
<listitem>
<para>the <replaceable>ID</replaceable> denotes a D-Bus
static connection path in the format of
/org/freedesktop/NetworkManager/Settings/<replaceable>num</replaceable>
or just <replaceable>num</replaceable>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>apath</option></term>
<listitem>
<para>the <replaceable>ID</replaceable> denotes a D-Bus active connection path in the format of
/org/freedesktop/NetworkManager/ActiveConnection/<replaceable>num</replaceable> or just
<replaceable>num</replaceable>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>It is possible to filter the output using the global
<option>--fields</option> option. Use the following values:</para>
<variablelist>
<varlistentry>
<term><option>profile</option></term>
<listitem>
<para>only shows static profile configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>active</option></term>
<listitem>
<para>only shows active connection data (when the profile is active).</para>
</listitem>
</varlistentry>
</variablelist>
<para>You can also specify particular fields. For static configuration, use
setting and property names as described in
<citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> manual page. For active data use GENERAL, IP4, DHCP4, IP6,
DHCP6, VPN.</para>
<para>When no command is given to the <command>nmcli connection</command>,
the default action is <command>nmcli connection show</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>up</command>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain'><replaceable>ID</replaceable></arg>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
<arg><option>ap</option> <replaceable>BSSID</replaceable></arg>
<arg><option>passwd-file</option> <replaceable>file</replaceable></arg>
</term>
<listitem>
<para>Activate a connection. The connection is identified by its name, UUID or
D-Bus path. If <replaceable>ID</replaceable> is ambiguous, a keyword <option>id</option>,
<option>uuid</option> or <option>path</option> can be used. When
requiring a particular device to activate the connection on, the
<option>ifname</option> option with interface name should be given. If the
<replaceable>ID</replaceable> is not given an <option>ifname</option> is required, and
NetworkManager will activate the best available connection for the given
<option>ifname</option>. In case of a VPN connection, the
<option>ifname</option> option specifies the device of the base connection.
The <option>ap</option> option specify what particular AP should be used in
case of a Wi-Fi connection.</para>
<para>If <option>--wait</option> option is not specified, the default timeout will be 90
seconds.</para>
<para>See <command>connection show</command> above for the description of the
<replaceable>ID</replaceable>-specifying keywords.</para>
<para>Available options are:</para>
<variablelist>
<varlistentry>
<term><option>ifname</option></term>
<listitem>
<para>interface that will be used for activation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>ap</option></term>
<listitem>
<para>BSSID of the AP which the command should connect to (for Wi-Fi connections).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>passwd-file</option></term>
<listitem>
<para>some networks may require credentials during activation. You can give
these credentials using this option. Each line of the file should contain one
password in the form:
<programlisting>setting_name.property_name:the password</programlisting>
For example, for WPA Wi-Fi with PSK, the line would be
<programlisting>802-11-wireless-security.psk:secret12345</programlisting>
For 802.1X password, the line would be
<programlisting>802-1x.password:my 1X password</programlisting>
<command>nmcli</command> also accepts <literal>wifi-sec</literal> and <literal>wifi</literal> strings instead of
<literal>802-11-wireless-security</literal>. When NetworkManager requires a password and it is
not given, <command>nmcli</command> will ask for it when run with <option>--ask</option>.
If <option>--ask</option> was not passed, NetworkManager can ask another secret
agent that may be running (typically a GUI secret agent, such as nm-applet or
gnome-shell).</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>down</command>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
<arg choice='plain'><option>apath</option></arg>
</group>
<arg rep='repeat' choice='plain'><replaceable>ID</replaceable></arg>
</term>
<listitem>
<para>Deactivate a connection from a device without preventing the device from
further auto-activation. Multiple connections can be passed to the
command.</para>
<para>Be aware that this command deactivates the specified active connection,
but the device on which the connection was active, is still ready to connect
and will perform auto-activation by looking for a suitable connection that has
the 'autoconnect' flag set. This includes the just deactivated connection. So
if the connection is set to auto-connect, it will be automatically started on
the disconnected device again.</para>
<para>In most cases you may want to use <command>device disconnect</command>
command instead.</para>
<para>The connection is identified by its name, UUID or D-Bus path. If
<replaceable>ID</replaceable> is ambiguous, a keyword <option>id</option>,
<option>uuid</option>, <option>path</option> or
<option>apath</option> can be used.</para>
<para> See <command>connection show</command> above for the description of
the <replaceable>ID</replaceable>-specifying keywords.</para>
<para>If <option>--wait</option> option is not specified, the default timeout
will be 10 seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>modify</command>
<arg><option>--temporary</option></arg>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain'><replaceable>ID</replaceable></arg>
<arg rep='repeat' choice='plain'>
<group choice='req'>
<arg choice='plain'><replaceable>option</replaceable> <replaceable>value</replaceable></arg>
<arg choice='plain'>[+|-]<replaceable>setting</replaceable>.<replaceable>property</replaceable> <replaceable>value</replaceable></arg>
</group>
</arg>
</term>
<listitem>
<para>Add, modify or remove properties in the connection profile.</para>
<para>To set the property just specify the property name followed by the
value. An empty value (<literal>""</literal>) removes the property value.</para>
<para>In addition to the properties, you can also use short names for some of
the properties. Consult the <link linkend='property_aliases' endterm='property_aliases.title' />
section for details.</para>
<para>If you want to append an item to the existing value, use
<literal>+</literal> prefix for the property name. If you want to remove just
one item from container-type property, use <literal>-</literal> prefix for
the property name and specify a value or an zero-based index of the item to
remove (or option name for properties with named options) as
<replaceable>value</replaceable>. The <literal>+</literal> and <literal>-</literal>
modifies only have a real effect for multi-value (container)
properties like <literal>ipv4.dns</literal>, <literal>ipv4.addresses</literal>,
<literal>bond.options</literal>, etc.</para>
<para>See <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> for complete reference of setting and property names, their descriptions
and default values. The <replaceable>setting</replaceable> and
<replaceable>property</replaceable> can be abbreviated provided they are unique.</para>
<para>The connection is identified by its name, UUID or D-Bus path. If
<replaceable>ID</replaceable> is ambiguous, a keyword <option>id</option>,
<option>uuid</option> or <option>path</option> can be used.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>add</command>
<arg><option>save</option><group choice='req'><arg choice='plain'>yes</arg><arg choice='plain'>no</arg></group></arg>
<arg rep='repeat' choice='plain'>
<group choice='req'>
<arg choice='plain'><replaceable>option</replaceable> <replaceable>value</replaceable></arg>
<arg choice='plain'>[+|-]<replaceable>setting</replaceable>.<replaceable>property</replaceable> <replaceable>value</replaceable></arg>
</group>
</arg>
</term>
<listitem>
<para>Create a new connection using specified properties.</para>
<para>You need to describe the newly created connections with the property and value pairs.
See <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> for the complete reference. You can also use the aliases described in
<link linkend='property_aliases' endterm='property_aliases.title' /> section. The syntax is
the same as of the <command>nmcli connection modify</command> command.</para>
<para>To construct a meaningful connection you at the very least need to set the
<option>connection.type</option> property (or use the <option>type</option> alias)
to one of known NetworkManager connection types:</para>
<itemizedlist spacing='compact'>
<listitem><para><literal>ethernet</literal></para></listitem>
<listitem><para><literal>wifi</literal></para></listitem>
<listitem><para><literal>wimax</literal></para></listitem>
<listitem><para><literal>pppoe</literal></para></listitem>
<listitem><para><literal>gsm</literal></para></listitem>
<listitem><para><literal>cdma</literal></para></listitem>
<listitem><para><literal>infiniband</literal></para></listitem>
<listitem><para><literal>bluetooth</literal></para></listitem>
<listitem><para><literal>vlan</literal></para></listitem>
<listitem><para><literal>bond</literal></para></listitem>
<listitem><para><literal>bond-slave</literal></para></listitem>
<listitem><para><literal>team</literal></para></listitem>
<listitem><para><literal>team-slave</literal></para></listitem>
<listitem><para><literal>bridge</literal></para></listitem>
<listitem><para><literal>bridge-slave</literal></para></listitem>
<listitem><para><literal>vpn</literal></para></listitem>
<listitem><para><literal>olpc-mesh</literal></para></listitem>
<listitem><para><literal>adsl</literal></para></listitem>
<listitem><para><literal>tun</literal></para></listitem>
<listitem><para><literal>ip-tunnel</literal></para></listitem>
<listitem><para><literal>macvlan</literal></para></listitem>
<listitem><para><literal>vxlan</literal></para></listitem>
<listitem><para><literal>dummy</literal></para></listitem>
</itemizedlist>
<para>The most typical uses are described in the <link linkend='examples' endterm='examples.title' /> section.</para>
<para>Aside from the properties and values two special options are accepted:</para>
<variablelist>
<varlistentry>
<term><option>save</option></term>
<listitem>
<para>Controls whether the connection should be persistent, i.e. NetworkManager should
store it on disk (default: <literal>yes</literal>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--</option></term>
<listitem>
<para>If a single <option>--</option> argument is encountered it is ignored.
This is for compatibility with older versions on <command>nmcli</command>.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>edit</command>
<group choice='req'>
<arg choice='plain'>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain'><replaceable>ID</replaceable></arg>
</arg>
<arg choice='plain'>
<arg><option>type</option> <replaceable>type</replaceable></arg>
<arg><option>con-name</option> <replaceable>name</replaceable></arg>
</arg>
</group>
</term>
<listitem>
<para>Edit an existing connection or add a new one, using an interactive editor.</para>
<para>The existing connection is identified by its name, UUID or D-Bus path. If
<replaceable>ID</replaceable> is ambiguous, a keyword <option>id</option>,
<option>uuid</option>, or <option>path</option> can be used. See
<command>connection show</command> above for the description of the
<replaceable>ID</replaceable>-specifying keywords. Not providing an
<replaceable>ID</replaceable> means that a new connection will be added.</para>
<para>The interactive editor will guide you through the connection editing and
allow you to change connection parameters according to your needs by means of
a simple menu-driven interface. The editor indicates what settings and
properties can be modified and provides in-line help.</para>
<para>Available options:</para>
<variablelist>
<varlistentry>
<term><option>type</option></term>
<listitem>
<para>type of the new connection; valid types are the same as for
<command>connection add</command> command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>con-name</option></term>
<listitem>
<para>name for the new connection. It can be changed later in the editor.</para>
</listitem>
</varlistentry>
</variablelist>
<para>See also
<citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> for all NetworkManager settings and property names, and their
descriptions; and
<link linkend='nmcli-examples'><citerefentry><refentrytitle>nmcli-examples</refentrytitle><manvolnum>7</manvolnum></citerefentry></link>
for sample editor sessions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>clone</command>
<arg><option>--temporary</option></arg>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain'><replaceable>ID</replaceable></arg>
<arg choice='plain'><replaceable>new_name</replaceable></arg>
</term>
<listitem>
<para>Clone a connection. The connection to be cloned is identified by its
name, UUID or D-Bus path. If <replaceable>ID</replaceable> is ambiguous, a keyword
<option>id</option>, <option>uuid</option> or <option>path</option>
can be used. See <command>connection show</command> above for the description
of the <replaceable>ID</replaceable>-specifying keywords. <replaceable>new_name</replaceable> is
the name of the new cloned connection. The new connection will be the exact
copy except the connection.id (<replaceable>new_name</replaceable>) and
connection.uuid (generated) properties.</para>
<para>The new connection profile will be saved as persistent unless
<option>--temporary</option> option is specified, in which case the new profile
won't exist after NetworkManager restart.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>delete</command>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain' rep='repeat'><replaceable>ID</replaceable></arg>
</term>
<listitem>
<para>Delete a configured connection. The connection to be deleted is
identified by its name, UUID or D-Bus path. If <replaceable>ID</replaceable> is ambiguous, a
keyword <option>id</option>, <option>uuid</option> or <option>path</option> can be used.
See <command>connection show</command> above for the description of
the <replaceable>ID</replaceable>-specifying keywords.</para>
<para>If <option>--wait</option> option is not specified, the default timeout will be 10
seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>monitor</command>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain' rep='repeat'><replaceable>ID</replaceable></arg>
</term>
<listitem>
<para>Monitor connection profile activity. This command prints a line whenever
the specified connection changes. The connection to be monitored is identified
by its name, UUID or D-Bus path. If <replaceable>ID</replaceable> is ambiguous, a keyword
<option>id</option>, <option>uuid</option> or <option>path</option>
can be used. See <command>connection show</command> above for the description of the
<replaceable>ID</replaceable>-specifying keywords.</para>
<para>Monitors all connection profiles in case none is specified. The command
terminates when all monitored connections disappear. If you want to monitor
connection creation consider using the global monitor with <command>nmcli
monitor</command> command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>reload</command>
</term>
<listitem>
<para>Reload all connection files from disk.
NetworkManager does not monitor changes to connection
files by default. So you need to use this command in order to tell
NetworkManager to re-read the connection profiles from
disk when a change was made to them. However, the auto-loading feature can be
enabled and then NetworkManager will reload connection
files any time they change (monitor-connection-files=true in
<link linkend='NetworkManager.conf'><link linkend='NetworkManager.conf'><citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></link></link>).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>load</command>
<arg choice='plain' rep='repeat'><replaceable>filename</replaceable></arg>
</term>
<listitem>
<para>Load/reload one or more connection files from disk. Use this after
manually editing a connection file to ensure that
NetworkManager is aware of its latest state.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>import</command>
<arg><option>--temporary</option></arg>
<arg choice='plain'><option>type</option> <replaceable>type</replaceable></arg>
<arg choice='plain'><option>file</option> <replaceable>file</replaceable></arg>
</term>
<listitem>
<para>Import an external/foreign configuration as a NetworkManager connection
profile. The type of the input file is specified by <option>type</option>
option.</para>
<para>Only VPN configurations are supported at the moment. The configuration is
imported by NetworkManager VPN plugins. <option>type</option> values are
the same as for <option>vpn-type</option> option in <command>nmcli
connection add</command>. VPN configurations are imported by VPN plugins.
Therefore the proper VPN plugin has to be installed so that <command>nmcli</command> could import
the data.</para>
<para>The imported connection profile will be saved as persistent unless
<option>--temporary</option> option is specified, in which case the new profile
won't exist after NetworkManager restart.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>export</command>
<group>
<arg choice='plain'><option>id</option></arg>
<arg choice='plain'><option>uuid</option></arg>
<arg choice='plain'><option>path</option></arg>
</group>
<arg choice='plain'><replaceable>ID</replaceable></arg>
<arg><replaceable>file</replaceable></arg>
</term>
<listitem>
<para>Export a connection.</para>
<para>Only VPN connections are supported at the moment. A proper VPN plugin has
to be installed so that <command>nmcli</command> could export a connection. If no
<replaceable>file</replaceable> is provided, the VPN configuration
data will be printed to standard output.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='device'><title>Device Management Commands</title>
<cmdsynopsis>
<command>nmcli device</command>
<group choice='req'>
<arg choice='plain'><command>status</command></arg>
<arg choice='plain'><command>show</command></arg>
<arg choice='plain'><command>set</command></arg>
<arg choice='plain'><command>connect</command></arg>
<arg choice='plain'><command>reapply</command></arg>
<arg choice='plain'><command>modify</command></arg>
<arg choice='plain'><command>disconnect</command></arg>
<arg choice='plain'><command>delete</command></arg>
<arg choice='plain'><command>monitor</command></arg>
<arg choice='plain'><command>wifi</command></arg>
<arg choice='plain'><command>lldp</command></arg>
</group>
<arg rep='repeat'><replaceable>ARGUMENTS</replaceable></arg>
</cmdsynopsis>
<para>Show and manage network interfaces.</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem>
<para>Print status of devices.</para>
<para>This is the default action if no command is specified to
<command>nmcli device</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>show</command>
<arg><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Show detailed information about devices. Without an argument, all
devices are examined. To get information for a specific device, the interface
name has to be provided.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>set</command>
<arg>ifname</arg>
<arg choice='plain'><replaceable>ifname</replaceable></arg>
<arg>
<option>autoconnect</option>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
</group>
</arg>
<arg>
<option>managed</option>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
</group>
</arg>
</term>
<listitem>
<para>Set device properties.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>connect</command>
<arg choice='plain'><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Connect the device. NetworkManager will try to find a suitable connection
that will be activated. It will also consider connections that are not set to
auto connect.</para>
<para>If <option>--wait</option> option is not specified, the default timeout will be 90
seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>reapply</command>
<arg choice='plain'><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Attempt to update device with changes to the currently active connection
made since it was last applied.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>modify</command>
<arg choice='plain'><replaceable>ifname</replaceable></arg>
<arg rep='repeat' choice='plain'>
<group choice='req'>
<arg choice='plain'><replaceable>option</replaceable> <replaceable>value</replaceable></arg>
<arg choice='plain'>[+|-]<replaceable>setting</replaceable>.<replaceable>property</replaceable> <replaceable>value</replaceable></arg>
</group>
</arg>
</term>
<listitem>
<para>Modify the settings currently active on the device.</para>
<para>This command lets you do temporary changes to a configuration active on
a particular device. The changes are not preserved in the connection profile.</para>
<para>See <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> for the list of available properties. Please note that some
properties can't be changed on an already connected device.</para>
<para>You can also use the aliases described in
<link linkend='property_aliases' endterm='property_aliases.title' /> section. The syntax is
the same as of the <command>nmcli connection modify</command> command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>disconnect</command>
<arg choice='plain' rep='repeat'><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Disconnect a device and prevent the device from automatically activating
further connections without user/manual intervention. Note that disconnecting
software devices may mean that the devices will disappear.</para>
<para>If <option>--wait</option> option is not specified, the default timeout
will be 10 seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>delete</command>
<arg choice='plain' rep='repeat'><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Delete a device. The command removes the interface from the system. Note
that this only works for software devices like bonds, bridges, teams, etc.
Hardware devices (like Ethernet) cannot be deleted by the command.</para>
<para>If <option>--wait</option> option is not specified, the default timeout will be 10
seconds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>monitor</command>
<arg rep='repeat'><replaceable>ifname</replaceable></arg>
</term>
<listitem>
<para>Monitor device activity. This command prints a line whenever the
specified devices change state.</para>
<para>Monitors all devices in case no interface is specified. The monitor
terminates when all specified devices disappear. If you want to monitor device
addition consider using the global monitor with <command>nmcli
monitor</command> command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>wifi</command>
<arg>
<command>list</command>
<group>
<option>--rescan</option>
<arg choice='plain'><option>auto</option></arg>
<arg choice='plain'><option>no</option></arg>
<arg choice='plain'><option>yes</option></arg>
</group>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
<arg><option>bssid</option> <replaceable>BSSID</replaceable></arg>
</arg>
</term>
<listitem>
<para>List available Wi-Fi access points. The <option>ifname</option> and
<option>bssid</option> options can be used to list APs for a particular
interface or with a specific BSSID, respectively.</para>
<para>By default, <command>nmcli</command> ensures that the access point list
is no older than 30 seconds and triggers a network scan if necessary. The
<option>--rescan</option> can be used to either force or disable the scan
regardless of how fresh the access point list is.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>wifi</command>
<command>connect</command>
<arg choice='plain'><replaceable>(B)SSID</replaceable></arg>
<arg><option>password</option> <replaceable>password</replaceable></arg>
<arg>
<option>wep-key-type</option>
<group choice='req'>
<arg choice='plain'>key</arg>
<arg choice='plain'>phrase</arg>
</group>
</arg>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
<arg><option>bssid</option> <replaceable>BSSID</replaceable></arg>
<arg><option>name</option> <replaceable>name</replaceable></arg>
<arg>
<option>private</option>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
</group>
</arg>
<arg>
<option>hidden</option>
<group choice='req'>
<arg choice='plain'>yes</arg>
<arg choice='plain'>no</arg>
</group>
</arg>
</term>
<listitem>
<para>Connect to a Wi-Fi network specified by SSID or BSSID. The command
creates a new connection and then activates it on a device. This is a
command-line counterpart of clicking an SSID in a GUI client. The command
always creates a new connection and thus it is mainly useful for connecting to
new Wi-Fi networks. If a connection for the network already exists, it is
better to bring up (activate) the existing connection as follows:
<command>nmcli con up id <replaceable>name</replaceable></command>. Note that
only open, WEP and WPA-PSK networks are supported at the moment. It is also
supposed that IP configuration is obtained via DHCP.</para>
<para>If <option>--wait</option> option is not specified, the default timeout will be 90
seconds.</para>
<para>Available options are:</para>
<variablelist>
<varlistentry>
<term><option>password</option></term>
<listitem>
<para>password for secured networks (WEP or WPA).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wep-key-type</option></term>
<listitem>
<para>type of WEP secret, either <option>key</option> for ASCII/HEX key or
<option>phrase</option> for passphrase.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>ifname</option></term>
<listitem>
<para>interface that will be used for activation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>bssid</option></term>
<listitem>
<para>if specified, the created connection will be restricted just for the
BSSID.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>name</option></term>
<listitem>
<para>if specified, the connection will use the name (else NM creates a name
itself).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>private</option></term>
<listitem>
<para>if set to <literal>yes</literal>, the connection will only be visible
to the user who created it. Otherwise the connection is system-wide, which is
the default.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>hidden</option></term>
<listitem>
<para>set to <literal>yes</literal> when connecting for the first time to an
AP not broadcasting its SSID. Otherwise the SSID would not be found and the
connection attempt would fail.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>wifi</command>
<command>hotspot</command>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
<arg><option>con-name</option> <replaceable>name</replaceable></arg>
<arg><option>ssid</option> <replaceable>SSID</replaceable></arg>
<arg>
<option>band</option>
<group choice='req'>
<arg choice='plain'>a</arg>
<arg choice='plain'>bg</arg>
</group>
</arg>
<arg><option>channel</option> <replaceable>channel</replaceable></arg>
<arg><option>password</option> <replaceable>password</replaceable></arg>
</term>
<listitem>
<para>Create a Wi-Fi hotspot. The command creates a hotspot connection profile
according to Wi-Fi device capabilities and activates it on the device. The
hotspot is secured with WPA if device/driver supports that, otherwise WEP is
used. Use <command>connection down</command> or <command>device
disconnect</command> to stop the hotspot.</para>
<para>Parameters of the hotspot can be influenced by the optional
parameters:</para>
<variablelist>
<varlistentry>
<term><option>ifname</option></term>
<listitem>
<para>what Wi-Fi device is used.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>con-name</option></term>
<listitem>
<para>name of the created hotspot connection profile.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>ssid</option></term>
<listitem>
<para>SSID of the hotspot.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>band</option></term>
<listitem>
<para>Wi-Fi band to use.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>channel</option></term>
<listitem>
<para>Wi-Fi channel to use.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>password</option></term>
<listitem>
<para>password to use for the created hotspot. If not provided, <command>nmcli</command> will
generate a password. The password is either WPA pre-shared key or WEP
key.</para>
<para>Note that <option>--show-secrets</option> global option can be used to
print the hotspot password. It is useful especially when the password was
generated.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>wifi</command>
<command>rescan</command>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
<arg rep='repeat'><option>ssid</option> <replaceable>SSID</replaceable></arg>
</term>
<listitem>
<para>Request that NetworkManager immediately re-scan for
available access points. NetworkManager scans Wi-Fi networks periodically, but
in some cases it can be useful to start scanning manually (e.g. after resuming
the computer). By using <option>ssid</option>, it is possible to scan for a
specific SSID, which is useful for APs with hidden SSIDs. You can provide
multiple <option>ssid</option> parameters in order to scan more
SSIDs.</para>
<para>This command does not show the APs, use <command>nmcli device wifi list</command>
for that.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>lldp</command>
<arg>
<command>list</command>
<arg><option>ifname</option> <replaceable>ifname</replaceable></arg>
</arg>
</term>
<listitem>
<para>Display information about neighboring devices learned through the Link
Layer Discovery Protocol (LLDP). The <option>ifname</option> option can be
used to list neighbors only for a given interface. The protocol must be enabled
in the connection settings.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='agent'><title>Secret Agent</title>
<cmdsynopsis>
<command>nmcli agent</command>
<group choice='req'>
<arg choice='plain'><command>secret</command></arg>
<arg choice='plain'><command>polkit</command></arg>
<arg choice='plain'><command>all</command></arg>
</group>
</cmdsynopsis>
<para>Run <command>nmcli</command> as a NetworkManager secret agent, or polkit agent.</para>
<variablelist>
<varlistentry>
<term><command>secret</command></term>
<listitem>
<para>Register <command>nmcli</command> as a NetworkManager secret agent and listen for secret
requests. You do usually not need this command, because <command>nmcli</command> can handle
secrets when connecting to networks. However, you may find the command useful
when you use another tool for activating connections and you do not have a
secret agent available (like nm-applet).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>polkit</command>
</term>
<listitem>
<para>Register <command>nmcli</command> as a polkit agent for the user session and listen for
authorization requests. You do not usually need this command, because <command>nmcli</command> can
handle polkit actions related to NetworkManager operations (when run with
<option>--ask</option>). However, you may find the command useful when you want
to run a simple text based polkit agent and you do not have an agent of a desktop
environment. Note that running this command makes <command>nmcli</command> handle all polkit requests,
not only NetworkManager related ones, because only one polkit agent can run for the
session.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>all</command>
</term>
<listitem>
<para>Runs <command>nmcli</command> as both NetworkManager secret and a polkit agent.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='property_aliases'><title id='property_aliases.title'>Property Aliases</title>
<para>Apart from the property-value pairs, <command>connection add</command>,
<command>connection modify</command> and <command>device modify</command> also
accept short forms of some properties. They exist for convenience. Some aliases can
affect multiple connection properties at once.</para>
<para>The overview of the aliases is below. An actual connection type is used to
disambiguate these options from the options of the same name that are valid for
multiple connection types (such as <option>mtu</option>).</para>
<table><title>Options for all connections</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row>
<entry align="left">type</entry>
<entry align="left"><link linkend="nm-settings.property.connection.type">connection.type</link></entry>
<entry align="left" valign="top">This alias also accepts values of <option>bond-slave</option>,
<option>team-slave</option> and <option>bridge-slave</option>. They create
<option>ethernet</option> connection profiles. Their use is discouraged in
favor of using a specific type with <option>master</option> option.</entry>
</row>
<row>
<entry align="left">con-name</entry>
<entry align="left"><link linkend="nm-settings.property.connection.id">connection.id</link></entry>
<entry align="left" valign="top">When not provided a default name is generated: &lt;type&gt;[-&lt;ifname&gt;][-&lt;num&gt;]).</entry>
</row>
<row><entry align="left">autoconnect</entry><entry align="left"><link linkend="nm-settings.property.connection.autoconnect">connection.autoconnect</link></entry><entry align="left" /></row>
<row>
<entry align="left">ifname</entry>
<entry align="left"><link linkend="nm-settings.property.connection.interface-name">connection.interface-name</link></entry>
<entry align="left" valign="top">A value of <literal>*</literal> will be interpreted as
no value, making the connection profile interface-independent.
Note: use quotes around <literal>*</literal> to suppress shell expansion.
For bond, team and bridge connections a default name will be generated if not set.</entry>
</row>
<row>
<entry align="left">master</entry>
<entry align="left"><link linkend="nm-settings.property.connection.master">connection.master</link></entry>
<entry align="left" valign="top">Value specified here will be canonicalized.
It can be prefixed with <literal>ifname/</literal>, <literal>uuid/</literal>
or <literal>id/</literal> to disambiguate it.</entry>
If the master connection can be found this will set <literal>connection.slave-type</literal>
property as well.
</row>
<row><entry align="left">slave-type</entry><entry align="left"><link linkend="nm-settings.property.connection.slave-type">connection.slave-type</link></entry><entry align="left" /></row>
</tbody>
</tgroup></table>
<table><title>PPPoE options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">username</entry><entry align="left"><link linkend="nm-settings.property.pppoe.username">pppoe.username</link></entry></row>
<row><entry align="left">password</entry><entry align="left"><link linkend="nm-settings.property.pppoe.password">pppoe.password</link></entry></row>
<row><entry align="left">service</entry><entry align="left"><link linkend="nm-settings.property.pppoe.service">pppoe.service</link></entry></row>
<row><entry align="left">parent</entry><entry align="left"><link linkend="nm-settings.property.pppoe.parent">pppoe.parent</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Wired Ethernet options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">mtu</entry><entry align="left"><link linkend="nm-settings.property.802-3-ethernet.mtu">wired.mtu</link></entry></row>
<row><entry align="left">mac</entry><entry align="left"><link linkend="nm-settings.property.802-3-ethernet.mac-address">wired.mac-address</link></entry></row>
<row><entry align="left">cloned-mac</entry><entry align="left"><link linkend="nm-settings.property.802-3-ethernet.cloned-mac-address">wired.cloned-mac-address</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Infiniband options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">mtu</entry><entry align="left"><link linkend="nm-settings.property.infiniband.mtu">infiniband.mtu</link></entry></row>
<row><entry align="left">mac</entry><entry align="left"><link linkend="nm-settings.property.infiniband.mac-address">infiniband.mac-address</link></entry></row>
<row><entry align="left">transport-mode</entry><entry align="left"><link linkend="nm-settings.property.infiniband.transport-mode">infiniband.transport-mode</link></entry></row>
<row><entry align="left">parent</entry><entry align="left"><link linkend="nm-settings.property.infiniband.parent">infiniband.parent</link></entry></row>
<row><entry align="left">p-key</entry><entry align="left"><link linkend="nm-settings.property.infiniband.p-key">infiniband.p-key</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Wi-Fi options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">ssid</entry><entry align="left"><link linkend="nm-settings.property.802-11-wireless.ssid">wireless.ssid</link></entry></row>
<row><entry align="left">mode</entry><entry align="left"><link linkend="nm-settings.property.802-11-wireless.mode">wireless.mode</link></entry></row>
<row><entry align="left">mtu</entry><entry align="left"><link linkend="nm-settings.property.802-11-wireless.mtu">wireless.mtu</link></entry></row>
<row><entry align="left">mac</entry><entry align="left"><link linkend="nm-settings.property.802-11-wireless.mac-address">wireless.mac-address</link></entry></row>
<row><entry align="left">cloned-mac</entry><entry align="left"><link linkend="nm-settings.property.802-11-wireless.cloned-mac-address">wireless.cloned-mac-address</link></entry></row>
</tbody>
</tgroup></table>
<table><title>WiMax options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">nsp</entry><entry align="left"><link linkend="nm-settings.property.wimax.network-name">wimax.network-name</link></entry></row>
<row><entry align="left">mac</entry><entry align="left"><link linkend="nm-settings.property.wimax.mac-address">wimax.mac-address</link></entry></row>
</tbody>
</tgroup></table>
<table><title>GSM options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">apn</entry><entry align="left"><link linkend="nm-settings.property.gsm.apn">gsm.apn</link></entry></row>
<row><entry align="left">user</entry><entry align="left"><link linkend="nm-settings.property.gsm.username">gsm.username</link></entry></row>
<row><entry align="left">password</entry><entry align="left"><link linkend="nm-settings.property.gsm.password">gsm.password</link></entry></row>
</tbody>
</tgroup></table>
<table><title>CDMA options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">user</entry><entry align="left"><link linkend="nm-settings.property.cdma.username">cdma.username</link></entry></row>
<row><entry align="left">password</entry><entry align="left"><link linkend="nm-settings.property.cdma.password">cdma.password</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Bluetooth options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row><entry align="left">addr</entry><entry align="left"><link linkend="nm-settings.property.bluetooth.bdaddr">bluetooth.bdaddr</link></entry><entry align="left" /></row>
<row>
<entry align="left">bt-type</entry>
<entry align="left"><link linkend="nm-settings.property.bluetooth.type">bluetooth.type</link></entry>
<entry align="left" valign="top">Apart from the usual <literal>panu</literal>,
<literal>nap</literal> and <literal>dun</literal> options, the values of
<literal>dun-gsm</literal> and <literal>dun-cdma</literal> can be used for compatibility
with older versions. They are equivalent to using <literal>dun</literal> and setting
appropriate <literal>gsm.*</literal> or <literal>cdma.*</literal> properties.</entry>
</row>
</tbody>
</tgroup></table>
<table><title>VLAN options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">dev</entry><entry align="left"><link linkend="nm-settings.property.vlan.parent">vlan.parent</link></entry></row>
<row><entry align="left">id</entry><entry align="left"><link linkend="nm-settings.property.vlan.id">vlan.id</link></entry></row>
<row><entry align="left">flags</entry><entry align="left"><link linkend="nm-settings.property.vlan.flags">vlan.flags</link></entry></row>
<row><entry align="left">ingress</entry><entry align="left"><link linkend="nm-settings.property.vlan.ingress-priority-map">vlan.ingress-priority-map</link></entry></row>
<row><entry align="left">egress</entry><entry align="left"><link linkend="nm-settings.property.vlan.egress-priority-map">vlan.egress-priority-map</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Bonding options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row>
<entry align="left">mode</entry>
<entry align="left" morerows="7">bond.options</entry>
<entry align="left" morerows="7" valign="top">Setting each of these adds the option to <literal>bond.options</literal> property.
It's equivalent to the <literal>+bond.options 'option=value'</literal> syntax.</entry>
</row>
<row><entry align="left">primary</entry></row>
<row><entry align="left">miimon</entry></row>
<row><entry align="left">downdelay</entry></row>
<row><entry align="left">updelay</entry></row>
<row><entry align="left">arp-interval</entry></row>
<row><entry align="left">arp-ip-target</entry></row>
<row><entry align="left">lacp-rate</entry></row>
</tbody>
</tgroup></table>
<table><title>Team options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row><entry align="left">config</entry><entry align="left"><link linkend="nm-settings.property.team.config">team.config</link></entry>
<entry align="left">Either a filename or a team configuration in JSON format. To enforce one or the other, the value can be prefixed with "file://" or "json://".</entry>
</row>
</tbody>
</tgroup></table>
<table><title>Team port options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row><entry align="left">config</entry><entry align="left"><link linkend="nm-settings.property.team-port.config">team-port.config</link></entry>
<entry align="left">Either a filename or a team configuration in JSON format. To enforce one or the other, the value can be prefixed with "file://" or "json://".</entry>
</row>
</tbody>
</tgroup></table>
<table><title>Bridge options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">stp</entry><entry align="left"><link linkend="nm-settings.property.bridge.stp">bridge.stp</link></entry></row>
<row><entry align="left">priority</entry><entry align="left"><link linkend="nm-settings.property.bridge.priority">bridge.priority</link></entry></row>
<row><entry align="left">forward-delay</entry><entry align="left"><link linkend="nm-settings.property.bridge.forward-delay">bridge.forward-delay</link></entry></row>
<row><entry align="left">hello-time</entry><entry align="left"><link linkend="nm-settings.property.bridge.hello-time">bridge.hello-time</link></entry></row>
<row><entry align="left">max-age</entry><entry align="left"><link linkend="nm-settings.property.bridge.max-age">bridge.max-age</link></entry></row>
<row><entry align="left">ageing-time</entry><entry align="left"><link linkend="nm-settings.property.bridge.ageing-time">bridge.ageing-time</link></entry></row>
<row><entry align="left">group-forward-mask</entry><entry align="left"><link linkend="nm-settings.property.bridge.group-forward-mask">bridge.group-forward-mask</link></entry></row>
<row><entry align="left">multicast-snooping</entry><entry align="left"><link linkend="nm-settings.property.bridge.multicast-snooping">bridge.multicast-snooping</link></entry></row>
<row><entry align="left">mac</entry><entry align="left"><link linkend="nm-settings.property.bridge.mac-address">bridge.mac-address</link></entry></row>
<row><entry align="left">priority</entry><entry align="left"><link linkend="nm-settings.property.bridge-port.priority">bridge-port.priority</link></entry></row>
<row><entry align="left">path-cost</entry><entry align="left"><link linkend="nm-settings.property.bridge-port.path-cost">bridge-port.path-cost</link></entry></row>
<row><entry align="left">hairpin</entry><entry align="left"><link linkend="nm-settings.property.bridge-port.hairpin-mode">bridge-port.hairpin-mode</link></entry></row>
</tbody>
</tgroup></table>
<table><title>VPN options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">vpn-type</entry><entry align="left"><link linkend="nm-settings.property.vpn.service-type">vpn.service-type</link></entry></row>
<row><entry align="left">user</entry><entry align="left"><link linkend="nm-settings.property.vpn.user-name">vpn.user-name</link></entry></row>
</tbody>
</tgroup></table>
<table><title>OLPC Mesh options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">ssid</entry><entry align="left"><link linkend="nm-settings.property.802-11-olpc-mesh.ssid">olpc-mesh.ssid</link></entry></row>
<row><entry align="left">channel</entry><entry align="left"><link linkend="nm-settings.property.802-11-olpc-mesh.channel">olpc-mesh.channel</link></entry></row>
<row><entry align="left">dhcp-anycast</entry><entry align="left"><link linkend="nm-settings.property.802-11-olpc-mesh.dhcp-anycast-address">olpc-mesh.dhcp-anycast-address</link></entry></row>
</tbody>
</tgroup></table>
<table><title>ADSL options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">username</entry><entry align="left"><link linkend="nm-settings.property.adsl.username">adsl.username</link></entry></row>
<row><entry align="left">protocol</entry><entry align="left"><link linkend="nm-settings.property.adsl.protocol">adsl.protocol</link></entry></row>
<row><entry align="left">password</entry><entry align="left"><link linkend="nm-settings.property.adsl.password">adsl.password</link></entry></row>
<row><entry align="left">encapsulation</entry><entry align="left"><link linkend="nm-settings.property.adsl.encapsulation">adsl.encapsulation</link></entry></row>
</tbody>
</tgroup></table>
<table><title>MACVLAN options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">dev</entry><entry align="left"><link linkend="nm-settings.property.macvlan.parent">macvlan.parent</link></entry></row>
<row><entry align="left">mode</entry><entry align="left"><link linkend="nm-settings.property.macvlan.mode">macvlan.mode</link></entry></row>
<row><entry align="left">tap</entry><entry align="left"><link linkend="nm-settings.property.macvlan.tap">macvlan.tap</link></entry></row>
</tbody>
</tgroup></table>
<table><title>MACsec options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">dev</entry><entry align="left"><link linkend="nm-settings.property.macsec.parent">macsec.parent</link></entry></row>
<row><entry align="left">mode</entry><entry align="left"><link linkend="nm-settings.property.macsec.mode">macsec.mode</link></entry></row>
<row><entry align="left">encrypt</entry><entry align="left"><link linkend="nm-settings.property.macsec.encrypt">macsec.encrypt</link></entry></row>
<row><entry align="left">cak</entry><entry align="left"><link linkend="nm-settings.property.macsec.cak">macsec.cak</link></entry></row>
<row><entry align="left">ckn</entry><entry align="left"><link linkend="nm-settings.property.macsec.ckn">macsec.ckn</link></entry></row>
<row><entry align="left">port</entry><entry align="left"><link linkend="nm-settings.property.macsec.port">macsec.port</link></entry></row>
</tbody>
</tgroup></table>
<table><title>VxLAN options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">id</entry><entry align="left"><link linkend="nm-settings.property.vxlan.id">vxlan.id</link></entry></row>
<row><entry align="left">remote</entry><entry align="left"><link linkend="nm-settings.property.vxlan.remote">vxlan.remote</link></entry></row>
<row><entry align="left">dev</entry><entry align="left"><link linkend="nm-settings.property.vxlan.parent">vxlan.parent</link></entry></row>
<row><entry align="left">local</entry><entry align="left"><link linkend="nm-settings.property.vxlan.local">vxlan.local</link></entry></row>
<row><entry align="left">source-port-min</entry><entry align="left"><link linkend="nm-settings.property.vxlan.source-port-min">vxlan.source-port-min</link></entry></row>
<row><entry align="left">source-port-max</entry><entry align="left"><link linkend="nm-settings.property.vxlan.source-port-max">vxlan.source-port-max</link></entry></row>
<row><entry align="left">destination-port</entry><entry align="left"><link linkend="nm-settings.property.vxlan.destination-port">vxlan.destination-port</link></entry></row>
</tbody>
</tgroup></table>
<table><title>Tun options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">mode</entry><entry align="left"><link linkend="nm-settings.property.tun.mode">tun.mode</link></entry></row>
<row><entry align="left">owner</entry><entry align="left"><link linkend="nm-settings.property.tun.owner">tun.owner</link></entry></row>
<row><entry align="left">group</entry><entry align="left"><link linkend="nm-settings.property.tun.group">tun.group</link></entry></row>
<row><entry align="left">pi</entry><entry align="left"><link linkend="nm-settings.property.tun.pi">tun.pi</link></entry></row>
<row><entry align="left">vnet-hdr</entry><entry align="left"><link linkend="nm-settings.property.tun.vnet-hdr">tun.vnet-hdr</link></entry></row>
<row><entry align="left">multi-queue</entry><entry align="left"><link linkend="nm-settings.property.tun.multi-queue">tun.multi-queue</link></entry></row>
</tbody>
</tgroup></table>
<table><title>IP tunneling options</title><tgroup cols="2">
<thead>
<row><entry>Alias</entry><entry>Property</entry></row>
</thead>
<tbody>
<row><entry align="left">mode</entry><entry align="left"><link linkend="nm-settings.property.ip-tunnel.mode">ip-tunnel.mode</link></entry></row>
<row><entry align="left">local</entry><entry align="left"><link linkend="nm-settings.property.ip-tunnel.local">ip-tunnel.local</link></entry></row>
<row><entry align="left">remote</entry><entry align="left"><link linkend="nm-settings.property.ip-tunnel.remote">ip-tunnel.remote</link></entry></row>
<row><entry align="left">dev</entry><entry align="left"><link linkend="nm-settings.property.ip-tunnel.parent">ip-tunnel.parent</link></entry></row>
</tbody>
</tgroup></table>
<table><title>IPv4 options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row>
<entry align="left">ip4</entry>
<entry align="left"><link linkend="nm-settings.property.ipv4.addresses">ipv4.addresses</link> <link linkend="nm-settings.property.ipv4.method">ipv4.method</link></entry>
<entry align="left" valign="top">The alias is equivalent to the <literal>+ipv4.addresses</literal> syntax and also sets <literal>ipv4.method</literal> to <literal>manual</literal>. It can be specified multiple times.</entry>
</row>
<row><entry align="left">gw4</entry><entry align="left"><link linkend="nm-settings.property.ipv4.gateway">ipv4.gateway</link></entry><entry align="left" /></row>
</tbody>
</tgroup></table>
<table><title>IPv6 options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row>
<entry align="left">ip6</entry>
<entry align="left"><link linkend="nm-settings.property.ipv6.addresses">ipv6.addresses</link> <link linkend="nm-settings.property.ipv6.method">ipv6.method</link></entry>
<entry align="left" valign="top">The alias is equivalent to the <literal>+ipv6.addresses</literal> syntax and also sets <literal>ipv6.method</literal> to <literal>manual</literal>. It can be specified multiple times.</entry>
</row>
<row><entry align="left">gw6</entry><entry align="left"><link linkend="nm-settings.property.ipv6.gateway">ipv6.gateway</link></entry><entry align="left" /></row>
</tbody>
</tgroup></table>
<table><title>Proxy options</title><tgroup cols="3">
<thead>
<row><entry>Alias</entry><entry>Property</entry><entry>Note</entry></row>
</thead>
<tbody>
<row><entry align="left">method</entry><entry align="left"><link linkend="nm-settings.property.proxy.method">proxy.method</link></entry><entry align="left" /></row>
<row><entry align="left">browser-only</entry><entry align="left"><link linkend="nm-settings.property.proxy.browser-only">proxy.browser-only</link></entry><entry align="left" /></row>
<row><entry align="left">pac-url</entry><entry align="left"><link linkend="nm-settings.property.proxy.pac-url">proxy.pac-url</link></entry><entry align="left" /></row>
<row>
<entry align="left">pac-script</entry>
<entry align="left"><link linkend="nm-settings.property.proxy.pac-script">proxy.pac-script</link></entry>
<entry align="left" valign="top">Read the JavaScript PAC (proxy auto-config) script from file or pass it directly on the command line. Prefix the value with "file://" or "js://" to force one or the other.</entry>
</row>
</tbody>
</tgroup></table>
</refsect1>
<refsect1 id='colors'><title id='colors.title'>Colors</title>
<para>Implicit coloring can be disabled by an empty file
<filename>/etc/terminal-colors.d/nmcli.disable</filename>.</para>
<para>See <citerefentry><refentrytitle>terminal-colors.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more details about colorization configuration.
The logical color names supported by <command>nmcli</command> are:</para>
<variablelist>
<varlistentry>
<term><option>connection-activated</option></term>
<listitem>
<para>A connection that is active.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connection-activating</option></term>
<listitem>
<para>Connection that is being activated.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connection-disconnecting</option></term>
<listitem>
<para>Connection that is being disconnected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connection-invisible</option></term>
<listitem>
<para>Connection whose details is the user not permitted to see.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connectivity-full</option></term>
<listitem>
<para>Conectivity state when Internet is reachable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connectivity-limited</option></term>
<listitem>
<para>Conectivity state when only a local network reachable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connectivity-none</option></term>
<listitem>
<para>Conectivity state when the network is disconnected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connectivity-portal</option></term>
<listitem>
<para>Conectivity state when a captive portal hijacked the connection.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>connectivity-unknown</option></term>
<listitem>
<para>Conectivity state when a connectivity check didn't run.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-activated</option></term>
<listitem>
<para>Device that is connected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-activating</option></term>
<listitem>
<para>Device that is being configured.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-disconnected</option></term>
<listitem>
<para>Device that is not connected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-firmware-missing</option></term>
<listitem>
<para>Warning of a missing device firmware.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-plugin-missing</option></term>
<listitem>
<para>Warning of a missing device plugin.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>device-unavailable</option></term>
<listitem>
<para>Device that is not available for activation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>manager-running</option></term>
<listitem>
<para>Notice that the NetworkManager daemon is available.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>manager-starting</option></term>
<listitem>
<para>Notice that the NetworkManager daemon is being initially connected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>manager-stopped</option></term>
<listitem>
<para>Notice that the NetworkManager daemon is not available.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>permission-auth</option></term>
<listitem>
<para>An action that requires user authentication to get permission.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>permission-no</option></term>
<listitem>
<para>An action that is not permitted.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>permission-yes</option></term>
<listitem>
<para>An action that is permitted.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>prompt</option></term>
<listitem>
<para>Prompt in interactive mode.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-asleep</option></term>
<listitem>
<para>Indication that NetworkManager in suspended state.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-connected-global</option></term>
<listitem>
<para>Indication that NetworkManager in connected to Internet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-connected-local</option></term>
<listitem>
<para>Indication that NetworkManager in local network.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-connected-site</option></term>
<listitem>
<para>Indication that NetworkManager in connected to networks other than Internet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-connecting</option></term>
<listitem>
<para>Indication that NetworkManager is establishing a network connection.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-disconnected</option></term>
<listitem>
<para>Indication that NetworkManager is disconnected from a network.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>state-disconnecting</option></term>
<listitem>
<para>Indication that NetworkManager is being disconnected from a network.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wifi-signal-excellent</option></term>
<listitem>
<para>Wi-Fi network with an excellent signal level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wifi-signal-fair</option></term>
<listitem>
<para>Wi-Fi network with a fair signal level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wifi-signal-good</option></term>
<listitem>
<para>Wi-Fi network with a good signal level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wifi-signal-poor</option></term>
<listitem>
<para>Wi-Fi network with a poor signal level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>wifi-signal-unknown</option></term>
<listitem>
<para>Wi-Fi network that hasn't been actually seen (a hidden AP).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>disabled</option></term>
<listitem>
<para>A property that is turned off.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>enabled</option></term>
<listitem>
<para>A property that is turned on.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='environment_variables'><title>Environment Variables</title>
<para><command>nmcli</command>'s behavior is affected by the following
environment variables.</para>
<variablelist>
<varlistentry>
<term><envar>LC_ALL</envar></term>
<listitem>
<para>If set to a non-empty string value, it overrides the values of all the
other internationalization variables.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><envar>LC_MESSAGES</envar></term>
<listitem>
<para>Determines the locale to be used for internationalized messages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><envar>LANG</envar></term>
<listitem>
<para>Provides a default value for the internationalization variables that are
unset or null.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='internationalization_notes'><title>Internationalization notes</title>
<para>Be aware that <command>nmcli</command> is localized and that is why the
output depends on your environment. This is important to realize especially
when you parse the output.</para>
<para>Call <command>nmcli</command> as <command>LC_ALL=C nmcli</command> to
be sure the locale is set to <literal>C</literal> while executing in a script.</para>
<para><envar>LC_ALL</envar>, <envar>LC_MESSAGES</envar>, <envar>LANG</envar>
variables specify the <envar>LC_MESSAGES</envar> locale category (in that
order), which determines the language that <command>nmcli</command> uses for
messages. The <literal>C</literal> locale is used if none of these variables are set, and this
locale uses English messages.</para>
</refsect1>
<refsect1 id='exit_status'><title>Exit Status</title>
<para><command>nmcli</command> exits with status 0 if it succeeds, a value
greater than 0 is returned if an error occurs.</para>
<variablelist spacing='compact' termlength='3'>
<varlistentry>
<term><errorcode>0</errorcode></term>
<listitem>
<para>Success &ndash; indicates the operation succeeded.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>1</errorcode></term>
<listitem>
<para>Unknown or unspecified error.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>2</errorcode></term>
<listitem>
<para>Invalid user input, wrong <command>nmcli</command>
invocation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>3</errorcode></term>
<listitem>
<para>Timeout expired (see <option>--wait</option> option).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>4</errorcode></term>
<listitem>
<para>Connection activation failed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>5</errorcode></term>
<listitem>
<para>Connection deactivation failed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>6</errorcode></term>
<listitem>
<para>Disconnecting device failed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>7</errorcode></term>
<listitem>
<para>Connection deletion failed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>8</errorcode></term>
<listitem>
<para>NetworkManager is not running.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>10</errorcode></term>
<listitem>
<para>Connection, device, or access point does not exist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>65</errorcode></term>
<listitem>
<para>When used with <option>--complete-args</option> option, a file name is expected to follow.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='examples'><title id='examples.title'>Examples</title>
<para>This section presents various examples of <command>nmcli</command> usage. If you want even
more, please refer to
<link linkend='nmcli-examples'><citerefentry><refentrytitle>nmcli-examples</refentrytitle><manvolnum>7</manvolnum></citerefentry></link>
manual page.</para>
<variablelist>
<varlistentry>
<term><userinput>nmcli -t -f RUNNING general</userinput></term>
<listitem>
<para>tells you whether NetworkManager is running or not.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -t -f STATE general</userinput></term>
<listitem>
<para>shows the overall status of NetworkManager.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli radio wifi off</userinput></term>
<listitem>
<para>switches Wi-Fi off.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli connection show</userinput></term>
<listitem>
<para>lists all connections NetworkManager has.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -p -m multiline -f all con show</userinput></term>
<listitem>
<para>shows all configured connections in multi-line mode.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli connection show --active</userinput></term>
<listitem>
<para>lists all currently active connections.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -f name,autoconnect c s</userinput></term>
<listitem>
<para>shows all connection profile names and their auto-connect property.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -p connection show "My default em1"</userinput></term>
<listitem>
<para>shows details for "My default em1" connection profile.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli --show-secrets connection show "My Home WiFi"</userinput></term>
<listitem>
<para>shows details for "My Home WiFi" connection profile with all passwords.
Without <option>--show-secrets</option> option, secrets would not be
displayed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -f active connection show "My default em1"</userinput></term>
<listitem>
<para>shows details for "My default em1" active connection, like IP, DHCP
information, etc.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -f profile con s "My wired connection"</userinput></term>
<listitem>
<para>shows static configuration details of the connection profile with "My
wired connection" name.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -p con up "My wired connection" ifname eth0</userinput></term>
<listitem>
<para>activates the connection profile with name "My wired connection" on
interface eth0. The -p option makes <command>nmcli</command> show progress of the
activation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con up 6b028a27-6dc9-4411-9886-e9ad1dd43761 ap 00:3A:98:7C:42:D3</userinput></term>
<listitem>
<para>connects the Wi-Fi connection with UUID
6b028a27-6dc9-4411-9886-e9ad1dd43761 to the AP with BSSID
00:3A:98:7C:42:D3.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli device status</userinput></term>
<listitem>
<para>shows the status for all devices.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli dev disconnect em2</userinput></term>
<listitem>
<para>disconnects a connection on interface em2 and marks the device as
unavailable for auto-connecting. As a result, no connection will automatically
be activated on the device until the device's 'autoconnect' is set to TRUE or
the user manually activates a connection.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -f GENERAL,WIFI-PROPERTIES dev show wlan0</userinput></term>
<listitem>
<para>shows details for wlan0 interface; only GENERAL and WIFI-PROPERTIES
sections will be shown.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -f CONNECTIONS device show wlp3s0</userinput></term>
<listitem>
<para>shows all available connection profiles for your Wi-Fi interface
wlp3s0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli dev wifi</userinput></term>
<listitem>
<para>lists available Wi-Fi access points known to NetworkManager.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"</userinput></term>
<listitem>
<para>creates a new connection named "My cafe" and then connects it to "Cafe
Hotspot 1" SSID using password "caffeine". This is mainly useful when
connecting to "Cafe Hotspot 1" for the first time. Next time, it is better to
use <command>nmcli con up id "My cafe"</command> so that the
existing connection profile can be used and no additional is created.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli -s dev wifi hotspot con-name QuickHotspot</userinput></term>
<listitem>
<para>creates a hotspot profile and connects it. Prints the hotspot password
the user should use to connect to the hotspot from other devices.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli dev modify em1 ipv4.method shared</userinput></term>
<listitem>
<para>starts IPv4 connection sharing using em1 device. The sharing will be active
until the device is disconnected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli dev modify em1 ipv6.address 2001:db8::a:bad:c0de</userinput></term>
<listitem>
<para>temporarily adds an IP address to a device. The address will be removed
when the same connection is activated again.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli connection add type ethernet autoconnect no ifname eth0</userinput></term>
<listitem>
<para>non-interactively adds an Ethernet connection tied to eth0 interface with
automatic IP configuration (DHCP), and disables the connection's <literal>autoconnect</literal>
flag.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli c a ifname Maxipes-fik type vlan dev eth0 id 55</userinput></term>
<listitem>
<para>non-interactively adds a VLAN connection with ID 55. The connection will
use eth0 and the VLAN interface will be named Maxipes-fik.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli c a ifname eth0 type ethernet ipv4.method disabled ipv6.method link-local</userinput></term>
<listitem>
<para>non-interactively adds a connection that will use eth0 Ethernet interface
and only have an IPv6 link-local address configured.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli connection edit ethernet-em1-2</userinput></term>
<listitem>
<para>edits existing "ethernet-em1-2" connection in the interactive
editor.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli connection edit type ethernet con-name "yet another Ethernet connection"</userinput></term>
<listitem>
<para>adds a new Ethernet connection in the interactive editor.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con mod ethernet-2 connection.autoconnect no</userinput></term>
<listitem>
<para>modifies 'autoconnect' property in the 'connection' setting of
'ethernet-2' connection.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con mod "Home Wi-Fi" wifi.mtu 1350</userinput></term>
<listitem>
<para>modifies 'mtu' property in the 'wifi' setting of 'Home Wi-Fi'
connection.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.23/24 192.168.1.1, 10.10.1.5/8, 10.0.0.11"</userinput></term>
<listitem>
<para>sets manual addressing and the addresses in em1-1 profile.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con modify ABC +ipv4.dns 8.8.8.8</userinput></term>
<listitem>
<para>appends a Google public DNS server to DNS servers in ABC profile.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con modify ABC -ipv4.addresses "192.168.100.25/24 192.168.1.1"</userinput></term>
<listitem>
<para>removes the specified IP address from (static) profile ABC.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con import type openvpn file ~/Downloads/frootvpn.ovpn</userinput></term>
<listitem>
<para>imports an OpenVPN configuration to NetworkManager.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>nmcli con export corp-vpnc /home/joe/corpvpn.conf</userinput></term>
<listitem>
<para>exports NetworkManager VPN profile corp-vpnc as standard Cisco (vpnc)
configuration.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='notes'><title>Notes</title>
<para><command>nmcli</command> accepts abbreviations, as long as they are a unique prefix in the set
of possible options. As new options get added, these abbreviations are not guaranteed
to stay unique. For scripting and long term compatibility it is therefore strongly
advised to spell out the full option names.</para>
</refsect1>
<refsect1 id='bugs'><title>Bugs</title>
<para>There are probably some bugs. If you find a bug, please report it to
https://bugzilla.gnome.org/ &mdash; product <literal>NetworkManager</literal>.</para>
</refsect1>
<refsect1 id='see_also'><title>See Also</title>
<para><link linkend='nmcli-examples'><citerefentry><refentrytitle>nmcli-examples</refentrytitle><manvolnum>7</manvolnum></citerefentry></link>,
<link linkend='nm-online'><citerefentry><refentrytitle>nm-online</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
<link linkend='NetworkManager'><citerefentry><refentrytitle>NetworkManager</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
<link linkend='NetworkManager.conf'><citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
<link linkend='nm-settings'><citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
<citerefentry><refentrytitle>nm-applet</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nm-connection-editor</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>terminal-colors.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
</refsect1>
</refentry>