1NETWORKMANAGER.CONF(5)           Configuration          NETWORKMANAGER.CONF(5)
2
3
4

NAME

6       NetworkManager.conf - NetworkManager configuration file
7

SYNOPSIS

9       /etc/NetworkManager/NetworkManager.conf,
10       /etc/NetworkManager/conf.d/name.conf,
11       /run/NetworkManager/conf.d/name.conf,
12       /usr/lib/NetworkManager/conf.d/name.conf,
13       /var/lib/NetworkManager/NetworkManager-intern.conf
14

DESCRIPTION

16       NetworkManager.conf is the configuration file for NetworkManager. It is
17       used to set up various aspects of NetworkManager's behavior. The
18       location of the main file and configuration directories may be changed
19       through use of the --config, --config-dir, --system-config-dir, and
20       --intern-config argument for NetworkManager, respectively.
21
22       If a default NetworkManager.conf is provided by your distribution's
23       packages, you should not modify it, since your changes may get
24       overwritten by package updates. Instead, you can add additional .conf
25       files to the /etc/NetworkManager/conf.d directory. These will be read
26       in order, with later files overriding earlier ones. Packages might
27       install further configuration snippets to
28       /usr/lib/NetworkManager/conf.d. This directory is parsed first, even
29       before NetworkManager.conf. Scripts can also put per-boot configuration
30       into /run/NetworkManager/conf.d. This directory is parsed second, also
31       before NetworkManager.conf. The loading of a file
32       /run/NetworkManager/conf.d/name.conf can be prevented by adding a file
33       /etc/NetworkManager/conf.d/name.conf. Likewise, a file
34       /usr/lib/NetworkManager/conf.d/name.conf can be shadowed by putting a
35       file of the same name to either /etc/NetworkManager/conf.d or
36       /run/NetworkManager/conf.d.
37
38       NetworkManager can overwrite certain user configuration options via
39       D-Bus or other internal operations. In this case it writes those
40       changes to /var/lib/NetworkManager/NetworkManager-intern.conf. This
41       file is not intended to be modified by the user, but it is read last
42       and can shadow user configuration from NetworkManager.conf.
43
44       Certain settings from the configuration can be reloaded at runtime
45       either by sending SIGHUP signal or via D-Bus' Reload call.
46
47       NetworkManager does not require any configuration in
48       NetworkManager.conf. Depending on your use case, you may remove all
49       files to restore the default configuration (factory reset). But note
50       that your distribution or other packages may drop configuration
51       snippets for NetworkManager, such that they are part of the factory
52       default.
53

FILE FORMAT

55       The configuration file format is so-called key file (sort of ini-style
56       format). It consists of sections (groups) of key-value pairs. Lines
57       beginning with a '#' and blank lines are considered comments. Sections
58       are started by a header line containing the section enclosed in '[' and
59       ']', and ended implicitly by the start of the next section or the end
60       of the file. Each key-value pair must be contained in a section.
61
62       For keys that take a list of devices as their value, you can specify
63       devices by their MAC addresses or interface names, or "*" to specify
64       all devices. See the section called “Device List Format” below.
65
66       A simple configuration file looks like this:
67
68           [main]
69           plugins=keyfile
70
71       As an extension to the normal keyfile format, you can also append a
72       value to a previously-set list-valued key by doing:
73
74           plugins+=another-plugin
75           plugins-=remove-me
76
77

MAIN SECTION

79       plugins
80           Lists system settings plugin names separated by ','. These plugins
81           are used to read and write system-wide connection profiles. When
82           multiple plugins are specified, the connections are read from all
83           listed plugins. When writing connections, the plugins will be asked
84           to save the connection in the order listed here; if the first
85           plugin cannot write out that connection type (or can't write out
86           any connections) the next plugin is tried, etc. If none of the
87           plugins can save the connection, an error is returned to the user.
88
89           The default value and the number of available plugins is
90           distro-specific. See the section called “PLUGINS” below for the
91           available plugins. Note that NetworkManager's native keyfile plugin
92           is always appended to the end of this list (if it doesn't already
93           appear earlier in the list).
94
95       monitor-connection-files
96           This setting is deprecated and has no effect. Profiles from disk
97           are never automatically reloaded. Use for example nmcli connection
98           (re)load for that.
99
100       auth-polkit
101           Whether the system uses PolicyKit for authorization. If true,
102           non-root requests are authorized using PolicyKit. Requests from
103           root (user ID zero) are always granted without asking PolicyKit. If
104           false, all requests will be allowed and PolicyKit is not used. If
105           set to root-only PolicyKit is not used and all requests except root
106           are denied. The default value is true.
107
108       dhcp
109           This key sets up what DHCP client NetworkManager will use. Allowed
110           values are dhclient, dhcpcd, and internal. The dhclient and dhcpcd
111           options require the indicated clients to be installed. The internal
112           option uses a built-in DHCP client which is not currently as
113           featureful as the external clients.
114
115           If this key is missing, it defaults to internal. If the chosen
116           plugin is not available, clients are looked for in this order:
117           dhclient, dhcpcd, internal.
118
119       no-auto-default
120           Specify devices for which NetworkManager shouldn't create default
121           wired connection (Auto eth0). By default, NetworkManager creates a
122           temporary wired connection for any Ethernet device that is managed
123           and doesn't have a connection configured. List a device in this
124           option to inhibit creating the default connection for the device.
125           May have the special value * to apply to all devices.
126
127           When the default wired connection is deleted or saved to a new
128           persistent connection by a plugin, the device is added to a list in
129           the file /var/lib/NetworkManager/no-auto-default.state to prevent
130           creating the default connection for that device again.
131
132           See the section called “Device List Format” for the syntax how to
133           specify a device.
134
135           Example:
136
137               no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee
138               no-auto-default=eth0,eth1
139               no-auto-default=*
140
141
142       ignore-carrier
143           This setting is deprecated for the per-device setting
144           ignore-carrier which overwrites this setting if specified (See
145           ignore-carrier). Otherwise, it is a list of matches to specify for
146           which device carrier should be ignored. See the section called
147           “Device List Format” for the syntax how to specify a device. Note
148           that master types like bond, bridge, and team ignore carrier by
149           default. You can however revert that default using the "except:"
150           specifier (or better, use the per-device setting instead of the
151           deprecated setting).
152
153       assume-ipv6ll-only
154           Specify devices for which NetworkManager will try to generate a
155           connection based on initial configuration when the device only has
156           an IPv6 link-local address.
157
158           See the section called “Device List Format” for the syntax how to
159           specify a device.
160
161       configure-and-quit
162           This option is no longer useful to configure in NetworkManager.conf
163           file. It can however also be configured on the command line with
164           the same values, where it has some use.
165
166           When set to 'initrd', NetworkManager does not connect to D-Bus and
167           quits after configuring the network. This is an implementation
168           detail how the NetworkManager module of dracut can run
169           NetworkManager. An alternative to this is having NetworkManager as
170           a systemd service with D-Bus in initrd.
171
172           The value 'true' is unsupported since version 1.36. Previously this
173           was a mode where NetworkManager would quit after configuring the
174           network and run helper processes for DHCP and SLAAC.
175
176           Otherwise, NetworkManager runs a system service with D-Bus and does
177           not quit during normal operation.
178
179       hostname-mode
180           Set the management mode of the hostname. This parameter will affect
181           only the transient hostname. If a valid static hostname is set,
182           NetworkManager will skip the update of the hostname despite the
183           value of this option. An hostname empty or equal to 'localhost',
184           'localhost6', 'localhost.localdomain' or 'localhost6.localdomain'
185           is considered invalid.
186
187           default: NetworkManager will update the hostname with the one
188           provided via DHCP or reverse DNS lookup of the IP address on the
189           connection with the default route or on any connection with the
190           property hostname.only-from-default set to 'false'. Connections are
191           considered in order of increasing value of the hostname.priority
192           property. In case multiple connections have the same priority,
193           connections activated earlier are considered first. If no hostname
194           can be determined in such way, the hostname will be updated to the
195           last one set outside NetworkManager or to 'localhost.localdomain'.
196
197           dhcp: this is similar to 'default', with the difference that after
198           trying to get the DHCP hostname, reverse DNS lookup is not done.
199           Note that selecting this option is equivalent to setting the
200           property 'hostname.from-dns-lookup' to 'false' globally for all
201           connections in NetworkManager.conf.
202
203           none: NetworkManager will not manage the transient hostname and
204           will never set it.
205
206       dns
207           Set the DNS processing mode.
208
209           If the key is unspecified, default is used, unless /etc/resolv.conf
210           is a symlink to /run/systemd/resolve/stub-resolv.conf,
211           /run/systemd/resolve/resolv.conf, /lib/systemd/resolv.conf or
212           /usr/lib/systemd/resolv.conf. In that case, systemd-resolved is
213           chosen automatically.
214
215           default: NetworkManager will update /etc/resolv.conf to reflect the
216           nameservers provided by currently active connections. The
217           rc-manager setting (below) controls how this is done.
218
219           dnsmasq: NetworkManager will run dnsmasq as a local caching
220           nameserver, using "Conditional Forwarding" if you are connected to
221           a VPN, and then update resolv.conf to point to the local
222           nameserver. It is possible to pass custom options to the dnsmasq
223           instance by adding them to files in the
224           "/etc/NetworkManager/dnsmasq.d/" directory. Note that when multiple
225           upstream servers are available, dnsmasq will initially contact them
226           in parallel and then use the fastest to respond, probing again
227           other servers after some time. This behavior can be modified
228           passing the 'all-servers' or 'strict-order' options to dnsmasq (see
229           the manual page for more details).
230
231           systemd-resolved: NetworkManager will push the DNS configuration to
232           systemd-resolved
233
234           unbound: NetworkManager will talk to unbound and dnssec-triggerd,
235           using "Conditional Forwarding" with DNSSEC support.
236           /etc/resolv.conf will be managed by dnssec-trigger daemon. This
237           option is deprecated. Note that dnssec-trigger ships a
238           NetworkManager dispatcher script so this DNS plugin is not
239           necessary.
240
241           none: NetworkManager will not modify resolv.conf. This implies
242           rc-manager unmanaged
243
244           Note that the plugins dnsmasq, systemd-resolved and unbound are
245           caching local nameservers. Hence, when NetworkManager writes
246           /run/NetworkManager/resolv.conf and /etc/resolv.conf (according to
247           rc-manager setting below), the name server there will be localhost
248           only. NetworkManager also writes a file
249           /run/NetworkManager/no-stub-resolv.conf that contains the original
250           name servers pushed to the DNS plugin.
251
252           When using dnsmasq and systemd-resolved per-connection added dns
253           servers will always be queried using the device the connection has
254           been activated on.
255
256       rc-manager
257           Set the resolv.conf management mode. This option is about how
258           NetworkManager writes to /etc/resolv.conf, if at all. The default
259           value depends on NetworkManager build options, and this version of
260           NetworkManager was build with a default of "auto". Regardless of
261           this setting, NetworkManager will always write its version of
262           resolv.conf to its runtime state directory as
263           /run/NetworkManager/resolv.conf.
264
265           If you configure dns=none or make /etc/resolv.conf immutable with
266           chattr +i, NetworkManager will ignore this setting and always
267           choose unmanaged (below).
268
269           auto: if systemd-resolved plugin is configured via the dns setting
270           or if it gets detected as main DNS plugin, NetworkManager will
271           update systemd-resolved without touching /etc/resolv.conf.
272           Alternatively, if resolvconf or netconfig are enabled at compile
273           time and the respective binary is found, NetworkManager will
274           automatically use it. Note that if you install or uninstall these
275           binaries, you need to reload the rc-manager setting with SIGHUP or
276           systemctl reload NetworkManager. As last fallback it uses the
277           symlink option (see next).
278
279           symlink: If /etc/resolv.conf is a regular file or does not exist,
280           NetworkManager will write the file directly. If /etc/resolv.conf is
281           instead a symlink, NetworkManager will leave it alone. Unless the
282           symlink points to the internal file
283           /run/NetworkManager/resolv.conf, in which case the symlink will be
284           updated to emit an inotify notification. This allows the user to
285           conveniently instruct NetworkManager not to manage /etc/resolv.conf
286           by replacing it with a symlink.
287
288           file: NetworkManager will write /etc/resolv.conf as regular file.
289           If it finds a symlink to an existing target, it will follow the
290           symlink and update the target instead. In no case will an existing
291           symlink be replaced by a file. Note that older versions of
292           NetworkManager behaved differently and would replace dangling
293           symlinks with a plain file.
294
295           resolvconf: NetworkManager will run resolvconf to update the DNS
296           configuration.
297
298           netconfig: NetworkManager will run netconfig to update the DNS
299           configuration.
300
301           unmanaged: don't touch /etc/resolv.conf.
302
303           none: deprecated alias for symlink.
304
305       systemd-resolved
306           Send the connection DNS configuration to systemd-resolved. Defaults
307           to "true".
308
309           Note that this setting is complementary to the dns setting. You can
310           keep this enabled while using dns set to another DNS plugin
311           alongside systemd-resolved, or dns set to systemd-resolved to
312           configure the system resolver to use systemd-resolved.
313
314           If systemd-resolved is enabled, the connectivity check resolves the
315           hostname per-device.
316
317       debug
318           Comma separated list of options to aid debugging. This value will
319           be combined with the environment variable NM_DEBUG. Currently, the
320           following values are supported:
321
322           RLIMIT_CORE: set ulimit -c unlimited to write out core dumps.
323           Beware, that a core dump can contain sensitive information such as
324           passwords or configuration settings.
325
326           fatal-warnings: set g_log_set_always_fatal() to core dump on
327           warning messages from glib. This is equivalent to the
328           --g-fatal-warnings command line option.
329
330       autoconnect-retries-default
331           The number of times a connection activation should be automatically
332           tried before switching to another one. This value applies only to
333           connections that can auto-connect and have a
334           connection.autoconnect-retries property set to -1. If not
335           specified, connections will be tried 4 times. Setting this value to
336           1 means to try activation once, without retry.
337
338       slaves-order
339           This key specifies in which order slave connections are
340           auto-activated on boot or when the master activates them. Allowed
341           values are name (order connection by interface name, the default),
342           or index (order slaves by their kernel index).
343
344       firewall-backend
345           The firewall backend for configuring masquerading with shared mode.
346           Set to either iptables, nftables or none.  iptables and nftables
347           require iptables and nft application, respectively.  none means to
348           skip firewall configuration if the users wish to manage firewall
349           themselves. If unspecified, it will be auto detected.
350
351       iwd-config-path
352           If the value is "auto" (the default), IWD is queried for its
353           current state directory when it appears on D-Bus -- the directory
354           where IWD keeps its network configuration files -- usually
355           /var/lib/iwd. NetworkManager will then attempt to write copies of
356           new or modified Wi-Fi connection profiles, converted into the IWD
357           format, into this directory thus making IWD connection properties
358           editable. NM will overwrite existing files without preserving their
359           contents.
360
361           The path can also be overriden by pointing to a specific existing
362           and writable directory. On the other hand setting this to an empty
363           string or any other value disables the profile conversion
364           mechanism.
365
366           This mechanism allows editing connection profile settings such as
367           the 802.1x configuration using NetworkManager clients. Without it
368           such changes have no effect in IWD.
369

KEYFILE SECTION

371       This section contains keyfile-plugin-specific options, and is normally
372       only used when you are not using any other distro-specific plugin.
373
374       hostname
375           This key is deprecated and has no effect since the hostname is now
376           stored in /etc/hostname or other system configuration files
377           according to build options.
378
379       path
380           The location where keyfiles are read and stored. This defaults to
381           "/etc/NetworkManager/system-connections".
382
383       unmanaged-devices
384           Set devices that should be ignored by NetworkManager.
385
386           A device unmanaged due to this option is strictly unmanaged and
387           cannot be overruled by using the API like nmcli device set $IFNAME
388           managed yes. Also, a device that is unmanaged for other reasons,
389           like an udev rule, cannot be made managed with this option (e.g. by
390           using an except: specifier). These two points make it different
391           from the device*.managed option which for that reason may be a
392           better choice.
393
394           See the section called “Device List Format” for the syntax on how
395           to specify a device.
396
397           Example:
398
399               unmanaged-devices=interface-name:em4
400               unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2
401
402

IFUPDOWN SECTION

404       This section contains ifupdown-specific options and thus only has
405       effect when using the ifupdown plugin.
406
407       managed
408           If set to true, then interfaces listed in /etc/network/interfaces
409           are managed by NetworkManager. If set to false, then any interface
410           listed in /etc/network/interfaces will be ignored by
411           NetworkManager. Remember that NetworkManager controls the default
412           route, so because the interface is ignored, NetworkManager may
413           assign the default route to some other interface.
414
415           The default value is false.
416

LOGGING SECTION

418       This section controls NetworkManager's logging. Logging is very
419       important to understand what NetworkManager is doing. When you report a
420       bug, do not unnecessarily filter or limit the log file. Just enable
421       level=TRACE and domains=ALL to collect everything.
422
423       Any settings here are overridden by the --log-level and --log-domains
424       command-line options. Logging can also be reconfigured at runtime with
425       nmcli general logging level "$LEVEL" domains "$DOMAINS". However, often
426       it is interesting to get a complete log from the start. Especially,
427       when debugging an issue, enable debug logging in NetworkManager.conf
428       and restart the service to enable verbose logging early on.
429
430       NetworkManager's logging aims not to contain private sensitive data and
431       you should be fine sharing the debug logs. Still, there will be IP
432       addresses and your network setup, if you consider that private then
433       review the log before sharing. Do not mangle the logfile in a way that
434       distorts the meaning too much.
435
436       NetworkManager uses syslog or systemd-journald, depending on
437       configuration. In any case, debug logs are verbose and might be rate
438       limited or filtered by the logging daemon. For systemd-journald, see
439       RateLimitIntervalSec and RateLimitBurst in journald.conf manual for how
440       to disable that.
441
442       level
443           The default logging verbosity level. One of OFF, ERR, WARN, INFO,
444           DEBUG, TRACE, in order of verbosity.
445
446           OFF disables all logging.  INFO is the default verbosity for
447           regular operation.  TRACE is for debugging.
448
449           The other levels are in most cases not useful. For example, DEBUG
450           is between TRACE and INFO, but it's too verbose for regular
451           operation and lacks possibly interesting messages for debugging.
452           Almost always, when debugging an issue or reporting a bug, collect
453           full level TRACE logs to get the full picture.
454
455       domains
456           Filter the messages by their topic. When debugging an issue, it's
457           better to collect all logs (ALL domain) upfront. The unnecessary
458           parts can always be ignored later.
459
460           In the uncommon case to tune out certain topics, the following log
461           domains are available: PLATFORM, RFKILL, ETHER, WIFI, BT, MB,
462           DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING,
463           SUPPLICANT, AGENTS, SETTINGS, SUSPEND, CORE, DEVICE, OLPC, WIMAX,
464           INFINIBAND, FIREWALL, ADSL, BOND, VLAN, BRIDGE, DBUS_PROPS, TEAM,
465           CONCHECK, DCB, DISPATCH, AUDIT, SYSTEMD, VPN_PLUGIN, PROXY.
466
467           In addition, these special domains can be used: NONE, ALL, DEFAULT,
468           DHCP, IP.
469
470           You can specify per-domain log level overrides by adding a colon
471           and a log level to any domain. E.g., "WIFI:DEBUG,WIFI_SCAN:OFF".
472           Another example is ALL,VPN_PLUGIN:TRACE to enable all the logging
473           there is (see about VPN_PLUGIN below).
474
475           Domain descriptions:
476               PLATFORM    : OS (platform) operations
477               RFKILL      : RFKill subsystem operations
478               ETHER       : Ethernet device operations
479               WIFI        : Wi-Fi device operations
480               BT          : Bluetooth operations
481               MB          : Mobile broadband operations
482               DHCP4       : DHCP for IPv4
483               DHCP6       : DHCP for IPv6
484               PPP         : Point-to-point protocol operations
485               WIFI_SCAN   : Wi-Fi scanning operations
486               IP4         : IPv4-related operations
487               IP6         : IPv6-related operations
488               AUTOIP4     : AutoIP operations
489               DNS         : Domain Name System related operations
490               VPN         : Virtual Private Network connections and
491               operations
492               SHARING     : Connection sharing. With TRACE level log queries
493               for dnsmasq instance
494               SUPPLICANT  : WPA supplicant related operations
495               AGENTS      : Secret agents operations and communication
496               SETTINGS    : Settings/config service operations
497               SUSPEND     : Suspend/resume
498               CORE        : Core daemon and policy operations
499               DEVICE      : Activation and general interface operations
500               OLPC        : OLPC Mesh device operations
501               WIMAX       : WiMAX device operations
502               INFINIBAND  : InfiniBand device operations
503               FIREWALL    : FirewallD related operations
504               ADSL        : ADSL device operations
505               BOND        : Bonding operations
506               VLAN        : VLAN operations
507               BRIDGE      : Bridging operations
508               DBUS_PROPS  : D-Bus property changes
509               TEAM        : Teaming operations
510               CONCHECK    : Connectivity check
511               DCB         : Data Center Bridging (DCB) operations
512               DISPATCH    : Dispatcher scripts
513               AUDIT       : Audit records
514               SYSTEMD     : Messages from internal libsystemd
515               VPN_PLUGIN  : logging messages from VPN plugins
516               PROXY       : logging messages for proxy handling
517
518               NONE        : when given by itself logging is disabled
519               ALL         : all log domains
520               DEFAULT     : default log domains
521               DHCP        : shortcut for "DHCP4,DHCP6"
522               IP          : shortcut for "IP4,IP6"
523
524               HW          : deprecated alias for "PLATFORM"
525
526           In general, the logfile should not contain passwords or private
527           data. However, you are always advised to check the file before
528           posting it online or attaching to a bug report.  VPN_PLUGIN is
529           special as it might reveal private information of the VPN plugins
530           with verbose levels. Therefore this domain will be excluded when
531           setting ALL or DEFAULT to more verbose levels then INFO.
532
533       backend
534           The logging backend. Supported values are "syslog" and "journal".
535           When NetworkManager is started with "--debug" in addition all
536           messages will be printed to stderr. If unspecified, the default is
537           "journal".
538
539       audit
540           Whether the audit records are delivered to auditd, the audit
541           daemon. If false, audit records will be sent only to the
542           NetworkManager logging system. If set to true, they will be also
543           sent to auditd. The default value is false.
544

CONNECTION SECTION

546       Specify default values for connections.
547
548       Such default values are only consulted if the corresponding
549       per-connection property explicitly allows for that. That means, all
550       these properties correspond to a property of the connection profile
551       (for example connection.mud-url). Only if the per-profile property is
552       set to a special value that indicates to use the default, the default
553       value from NetworkManager.conf is consulted. It depends on the
554       property, which is the special value that indicates fallback to the
555       default, but it usually is something like empty, unset values or
556       special numeric values like 0 or -1. That means the effectively used
557       value can first always be configured for each profile, and these
558       default values only matter if the per-profile values explicitly
559       indicates to use the default from NetworkManager.conf.
560
561       Example:
562
563           [connection]
564           ipv6.ip6-privacy=0
565
566
567   Supported Properties
568       Not all properties can be overwritten, only the following properties
569       are supported to have their default values configured (see nm-
570       settings(5) for details).
571
572       802-1x.auth-timeout
573
574       cdma.mtu
575
576       connection.auth-retries
577           If left unspecified, the default value is 3 tries before failing
578           the connection.
579
580       connection.autoconnect-slaves
581
582       connection.mud-url
583           If unspecified, MUD URL defaults to "none".
584
585       connection.lldp
586
587       connection.llmnr
588           If unspecified, the ultimate default values depends on the DNS
589           plugin. With systemd-resolved the default currently is "yes" (2)
590           and for all other plugins "no" (0).
591
592       connection.mdns
593           If unspecified, the ultimate default values depends on the DNS
594           plugin. With systemd-resolved the default currently is "no" (0) and
595           for all other plugins also "no" (0).
596
597       connection.dns-over-tls
598           If unspecified, the ultimate default values depends on the DNS
599           plugin. With systemd-resolved the default currently is global
600           setting and for all other plugins "no" (0).
601
602       connection.stable-id
603
604       ethernet.cloned-mac-address
605           If left unspecified, it defaults to "preserve".
606
607       ethernet.generate-mac-address-mask
608
609       ethernet.mtu
610           If configured explicitly to 0, the MTU is not reconfigured during
611           device activation unless it is required due to IPv6 constraints. If
612           left unspecified, a DHCP/IPv6 SLAAC provided value is used or the
613           MTU is not reconfigured during activation.
614
615       ethernet.wake-on-lan
616
617       gsm.mtu
618
619       hostname.from-dhcp
620
621       hostname.from-dns-lookup
622
623       hostname.only-from-default
624
625       hostname.priority
626
627       infiniband.mtu
628           If configured explicitly to 0, the MTU is not reconfigured during
629           device activation unless it is required due to IPv6 constraints. If
630           left unspecified, a DHCP/IPv6 SLAAC provided value is used or the
631           MTU is left unspecified on activation.
632
633       ip-tunnel.mtu
634           If configured explicitly to 0, the MTU is not reconfigured during
635           device activation unless it is required due to IPv6 constraints. If
636           left unspecified, a DHCP/IPv6 SLAAC provided value is used or a
637           default of 1500.
638
639       ipv4.dad-timeout
640
641       ipv4.dhcp-client-id
642
643       ipv4.dhcp-iaid
644           If left unspecified, it defaults to "ifname".
645
646       ipv4.dhcp-hostname-flags
647           If left unspecified, the value 3 (fqdn-encoded,fqdn-serv-update) is
648           used.
649
650       ipv4.dhcp-timeout
651           If left unspecified, the default value for the interface type is
652           used.
653
654       ipv4.dhcp-vendor-class-identifier
655           If left unspecified, the default is to not send the DHCP option to
656           the server.
657
658       ipv4.dns-priority
659           If unspecified or zero, use 50 for VPN profiles and 100 for other
660           profiles.
661
662       ipv4.required-timeout
663
664       ipv4.route-metric
665
666       ipv4.route-table
667           If left unspecified, routes are only added to the main table. Note
668           that this is different from explicitly selecting the main table
669           254, because of how NetworkManager removes extraneous routes from
670           the tables.
671
672       ipv6.ra-timeout
673           If left unspecified, the default value depends on the sysctl
674           solicitation settings.
675
676       ipv6.dhcp-duid
677           If left unspecified, it defaults to "lease".
678
679       ipv6.dhcp-iaid
680           If left unspecified, it defaults to "ifname".
681
682       ipv6.dhcp-hostname-flags
683           If left unspecified, the value 1 (fqdn-serv-update) is used.
684
685       ipv6.dhcp-timeout
686           If left unspecified, the default value for the interface type is
687           used.
688
689       ipv6.dns-priority
690           If unspecified or zero, use 50 for VPN profiles and 100 for other
691           profiles.
692
693       ipv6.ip6-privacy
694           If ipv6.ip6-privacy is unset, use the content of
695           "/proc/sys/net/ipv6/conf/default/use_tempaddr" as last fallback.
696
697       ipv6.required-timeout
698
699       ipv6.route-metric
700
701       ipv6.route-table
702           If left unspecified, routes are only added to the main table. Note
703           that this is different from explicitly selecting the main table
704           254, because of how NetworkManager removes extraneous routes from
705           the tables.
706
707       sriov.autoprobe-drivers
708           If left unspecified, drivers are autoprobed when the SR-IOV VF gets
709           created.
710
711       vpn.timeout
712           If left unspecified, default value of 60 seconds is used.
713
714       wifi.ap-isolation
715           If left unspecified, AP isolation is disabled.
716
717       wifi.cloned-mac-address
718           If left unspecified, it defaults to "preserve".
719
720       wifi.generate-mac-address-mask
721
722       wifi.mac-address-randomization
723           If left unspecified, MAC address randomization is disabled. This
724           setting is deprecated for wifi.cloned-mac-address.
725
726       wifi.mtu
727           If configured explicitly to 0, the MTU is not reconfigured during
728           device activation unless it is required due to IPv6 constraints. If
729           left unspecified, a DHCP/IPv6 SLAAC provided value is used or a
730           default of 1500.
731
732       wifi.powersave
733           If left unspecified, the default value "ignore" will be used.
734
735       wifi-sec.pmf
736           If left unspecified, the default value "optional" will be used.
737
738       wifi-sec.fils
739           If left unspecified, the default value "optional" will be used.
740
741       wifi.wake-on-wlan
742
743       wireguard.mtu
744
745
746   Sections
747       You can configure multiple connection sections, by having different
748       sections with a name that all start with "connection". Example:
749
750           [connection]
751           ipv6.ip6-privacy=0
752           connection.autoconnect-slaves=1
753           vpn.timeout=120
754
755           [connection-wifi-wlan0]
756           match-device=interface-name:wlan0
757           ipv4.route-metric=50
758
759           [connection-wifi-other]
760           match-device=type:wifi
761           ipv4.route-metric=55
762           ipv6.ip6-privacy=1
763
764       The sections within one file are considered in order of appearance,
765       with the exception that the [connection] section is always considered
766       last. In the example above, this order is [connection-wifi-wlan0],
767       [connection-wlan-other], and [connection]. When checking for a default
768       configuration value, the sections are searched until the requested
769       value is found. In the example above, "ipv4.route-metric" for wlan0
770       interface is set to 50, and for all other Wi-Fi typed interfaces to 55.
771       Also, Wi-Fi devices would have IPv6 private addresses enabled by
772       default, but other devices would have it disabled. Note that also
773       "wlan0" gets "ipv6.ip6-privacy=1", because although the section
774       "[connection-wifi-wlan0]" matches the device, it does not contain that
775       property and the search continues.
776
777       When having different sections in multiple files, sections from files
778       that are read later have higher priority. So within one file the
779       priority of the sections is top-to-bottom. Across multiple files later
780       definitions take precedence.
781
782       The following properties further control how a connection section
783       applies.
784
785       match-device
786           An optional device spec that restricts when the section applies.
787           See the section called “Device List Format” for the possible
788           values.
789
790       stop-match
791           An optional boolean value which defaults to no. If the section
792           matches (based on match-device), further sections will not be
793           considered even if the property in question is not present. In the
794           example above, if [connection-wifi-wlan0] would have stop-match set
795           to yes, the device wlan0 would have ipv6.ip6-privacy property
796           unspecified. That is, the search for the property would not
797           continue in the connection sections [connection-wifi-other] or
798           [connection].
799

DEVICE SECTION

801       Contains per-device persistent configuration.
802
803       Example:
804
805           [device]
806           match-device=interface-name:eth3
807           managed=1
808
809
810   Supported Properties
811       The following properties can be configured per-device.
812
813       managed
814           Whether the device is managed or not. A device can be marked as
815           managed via udev rules (ENV{NM_UNMANAGED}), or via setting plugins
816           (keyfile.unmanaged-devices). This is yet another way. Note that
817           this configuration can be overruled at runtime via D-Bus. Also, it
818           has higher priority then udev rules.
819
820       carrier-wait-timeout
821           Specify the timeout for waiting for carrier in milliseconds. The
822           default is 5000 milliseconds. This setting exists because certain
823           drivers/hardware can take a long time to detect whether the cable
824           is plugged in.
825
826           When the device loses carrier, NetworkManager does not react
827           immediately. Instead, it waits for this timeout before considering
828           the link lost.
829
830           Also, on startup, NetworkManager considers the device as busy for
831           this time, as long as the device has no carrier. This delays
832           startup-complete signal and NetworkManager-wait-online. Configuring
833           this too high means to block NetworkManager-wait-online longer than
834           necessary when booting with cable unplugged. Configuring it too
835           low, means that NetworkManager will declare startup-complete too
836           soon, although carrier is about to come and auto-activation to kick
837           in. Note that if a profile only has static IP configuration or
838           Layer 3 configuration disabled, then it can already autoconnect
839           without carrier on the device. Once such a profile reaches full
840           activated state, startup-complete is considered as reached even if
841           the device has no carrier yet.
842
843       ignore-carrier
844           Specify devices for which NetworkManager will (partially) ignore
845           the carrier state. Normally, for device types that support
846           carrier-detect, such as Ethernet and InfiniBand, NetworkManager
847           will only allow a connection to be activated on the device if
848           carrier is present (ie, a cable is plugged in), and it will
849           deactivate the device if carrier drops for more than a few seconds.
850
851           A device with carrier ignored will allow activating connections on
852           that device even when it does not have carrier, provided that the
853           connection uses only statically-configured IP addresses.
854           Additionally, it will allow any active connection (whether static
855           or dynamic) to remain active on the device when carrier is lost.
856
857           Note that the "carrier" property of NMDevices and device D-Bus
858           interfaces will still reflect the actual device state; it's just
859           that NetworkManager will not make use of that information.
860
861           Master types like bond, bridge and team ignore carrier by default,
862           while other device types react on carrier changes by default.
863
864           This setting overwrites the deprecated main.ignore-carrier setting
865           above.
866
867       keep-configuration
868           On startup, NetworkManager tries to not interfere with interfaces
869           that are already configured. It does so by generating a in-memory
870           connection based on the interface current configuration.
871
872           If this generated connection matches one of the existing persistent
873           connections, the persistent connection gets activated. If there is
874           no match, the generated connection gets activated as "external",
875           which means that the connection is considered as active, but
876           NetworkManager doesn't actually touch the interface.
877
878           It is possible to disable this behavior by setting
879           keep-configuration to no. In this way, on startup NetworkManager
880           always tries to activate the most suitable persistent connection
881           (the one with highest autoconnect-priority or, in case of a tie,
882           the one activated most recently).
883
884           Note that when NetworkManager gets restarted, it stores the
885           previous state in /run/NetworkManager; in particular it saves the
886           UUID of the connection that was previously active so that it can be
887           activated again after the restart. Therefore, keep-configuration
888           does not have any effect on service restart.
889
890       allowed-connections
891           A list of connections that can be activated on the device. See the
892           section called “Connection List Format” for the syntax to specify a
893           connection. If this option is not specified, all connections can be
894           potentially activated on the device, provided that the connection
895           type and other settings match.
896
897           A notable use case for this is to filter which connections can be
898           activated based on how they were created; see the origin keyword in
899           the section called “Connection List Format”.
900
901       wifi.scan-rand-mac-address
902           Configures MAC address randomization of a Wi-Fi device during
903           scanning. This defaults to yes in which case a random,
904           locally-administered MAC address will be used. The setting
905           wifi.scan-generate-mac-address-mask allows to influence the
906           generated MAC address to use certain vendor OUIs. If disabled, the
907           MAC address during scanning is left unchanged to whatever is
908           configured. For the configured MAC address while the device is
909           associated, see instead the per-connection setting
910           wifi.cloned-mac-address.
911
912       wifi.backend
913           Specify the Wi-Fi backend used for the device. Currently, supported
914           are wpa_supplicant and iwd (experimental). If unspecified, the
915           default is "wpa_supplicant".
916
917       wifi.scan-generate-mac-address-mask
918           Like the per-connection settings ethernet.generate-mac-address-mask
919           and wifi.generate-mac-address-mask, this allows to configure the
920           generated MAC addresses during scanning. See nm-settings(5) for
921           details.
922
923       wifi.iwd.autoconnect
924           If wifi.backend is iwd, setting this to false forces IWD's
925           autoconnect mechanism to be disabled for this device and
926           connections will only be initiated by NetworkManager whether
927           commanded by a client or automatically. Leaving it true (default)
928           stops NetworkManager from automatically initiating connections and
929           allows IWD to use its network ranking and scanning logic to decide
930           the best networks to autoconnect to next. Connections'
931           autoconnect-priority, autoconnect-retries settings will be ignored.
932           Other settings like permissions or multi-connect may interfere with
933           IWD connection attempts.
934
935       sriov-num-vfs
936           Specify the number of virtual functions (VF) to enable for a PCI
937           physical device that supports single-root I/O virtualization
938           (SR-IOV).
939
940   Sections
941       The [device] section works the same as the [connection] section. That
942       is, multiple sections that all start with the prefix "device" can be
943       specified. The settings "match-device" and "stop-match" are available
944       to match a device section on a device. The order of multiple sections
945       is also top-down within the file and later files overwrite previous
946       settings. See “Sections” under the section called “CONNECTION SECTION”
947       for details.
948

CONNECTIVITY SECTION

950       This section controls NetworkManager's optional connectivity checking
951       functionality. This allows NetworkManager to detect whether or not the
952       system can actually access the internet or whether it is behind a
953       captive portal.
954
955       Connectivity checking serves two purposes. For one, it exposes a
956       connectivity state on D-Bus, which other applications may use. For
957       example, Gnome's portal helper uses this as signal to show a captive
958       portal login page. The other use is that default-route of devices
959       without global connectivity get a penalty of +20000 to the
960       route-metric. This has the purpose to give a better default-route to
961       devices that have global connectivity. For example, when being
962       connected to WWAN and to a Wi-Fi network which is behind a captive
963       portal, WWAN still gets preferred until login.
964
965       Note that your distribution might set
966       /proc/sys/net/ipv4/conf/*/rp_filter to strict filtering. That works
967       badly with per-device connectivity checking, which uses SO_BINDDEVICE
968       to send requests on all devices. A strict rp_filter setting will reject
969       any response and the connectivity check on all but the best route will
970       fail.
971
972       enabled
973           Whether connectivity check is enabled. Note that to enable
974           connectivity check, a valid uri must also be configured. The value
975           defaults to true, but since the uri is unset by default,
976           connectivity check may be disabled. The main purpose of this option
977           is to have a single flag to disable connectivity check. Note that
978           this setting can also be set via D-Bus API at runtime. In that
979           case, the value gets stored in
980           /var/lib/NetworkManager/NetworkManager-intern.conf file.
981
982       uri
983           The URI of a web page to periodically request when connectivity is
984           being checked. This page should return the header
985           "X-NetworkManager-Status" with a value of "online". Alternatively,
986           its body content should be set to "NetworkManager is online". The
987           body content check can be controlled by the response option. If
988           this option is blank or missing, connectivity checking is disabled.
989
990       interval
991           Specified in seconds; controls how often connectivity is checked
992           when a network connection exists. If set to 0 connectivity checking
993           is disabled. If missing, the default is 300 seconds.
994
995       response
996           If set, controls what body content NetworkManager checks for when
997           requesting the URI for connectivity checking. Note that this only
998           compares that the HTTP response starts with the specifid text, it
999           does not compare the exact string. This behavior might change in
1000           the future, so avoid relying on it. If missing, the response
1001           defaults to "NetworkManager is online". If set to empty, the HTTP
1002           server is expected to answer with status code 204 or send no data.
1003

GLOBAL-DNS SECTION

1005       This section specifies global DNS settings that override
1006       connection-specific configuration.
1007
1008       searches
1009           A list of search domains to be used during hostname lookup.
1010
1011       options
1012           A list of options to be passed to the hostname resolver.
1013

GLOBAL-DNS-DOMAIN SECTIONS

1015       Sections with a name starting with the "global-dns-domain-" prefix
1016       allow to define global DNS configuration for specific domains. The part
1017       of section name after "global-dns-domain-" specifies the domain name a
1018       section applies to. More specific domains have the precedence over less
1019       specific ones and the default domain is represented by the wildcard
1020       "*". A default domain section is mandatory.
1021
1022       servers
1023           A list of addresses of DNS servers to be used for the given domain.
1024
1025       options
1026           A list of domain-specific DNS options. Not used at the moment.
1027

.CONFIG SECTIONS

1029       This is a special section that contains options which apply to the
1030       configuration file that contains the option.
1031
1032       enable
1033           Defaults to "true". If "false", the configuration file will be
1034           skipped during loading. Note that the main configuration file
1035           NetworkManager.conf cannot be disabled.
1036
1037               # always skip loading the config file
1038               [.config]
1039               enable=false
1040
1041           You can also match against the version of NetworkManager. For
1042           example the following are valid configurations:
1043
1044               # only load on version 1.0.6
1045               [.config]
1046               enable=nm-version:1.0.6
1047
1048               # load on all versions 1.0.x, but not 1.2.x
1049               [.config]
1050               enable=nm-version:1.0
1051
1052               # only load on versions >= 1.1.6. This does not match
1053               # with version 1.2.0 or 1.4.4. Only the last digit is considered.
1054               [.config]
1055               enable=nm-version-min:1.1.6
1056
1057               # only load on versions >= 1.2. Contrary to the previous
1058               # example, this also matches with 1.2.0, 1.2.10, 1.4.4, etc.
1059               [.config]
1060               enable=nm-version-min:1.2
1061
1062               # Match against the maximum allowed version. The example matches
1063               # versions 1.2.0, 1.2.2, 1.2.4. Again, only the last version digit
1064               # is allowed to be smaller. So this would not match on 1.1.10.
1065               [.config]
1066               enable=nm-version-max:1.2.6
1067
1068           You can also match against the value of the environment variable
1069           NM_CONFIG_ENABLE_TAG, like:
1070
1071               # always skip loading the file when running NetworkManager with
1072               # environment variable "NM_CONFIG_ENABLE_TAG=TAG1"
1073               [.config]
1074               enable=env:TAG1
1075
1076           More then one match can be specified. The configuration will be
1077           enabled if one of the predicates matches ("or"). The special prefix
1078           "except:" can be used to negate the match. Note that if one
1079           except-predicate matches, the entire configuration will be
1080           disabled. In other words, a except predicate always wins over other
1081           predicates. If the setting only consists of "except:" matches and
1082           none of the negative conditions are satisfied, the configuration is
1083           still enabled.
1084
1085               # enable the configuration either when the environment variable
1086               # is present or the version is at least 1.2.0.
1087               [.config]
1088               enable=env:TAG2,nm-version-min:1.2
1089
1090               # enable the configuration for version >= 1.2.0, but disable
1091               # it when the environment variable is set to "TAG3"
1092               [.config]
1093               enable=except:env:TAG3,nm-version-min:1.2
1094
1095               # enable the configuration on >= 1.3, >= 1.2.6, and >= 1.0.16.
1096               # Useful if a certain feature is only present since those releases.
1097               [.config]
1098               enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
1099
1100

PLUGINS

1102       Settings plugins for reading and writing connection profiles. The
1103       number of available plugins is distribution specific.
1104
1105       keyfile
1106           The keyfile plugin is the generic plugin that supports all the
1107           connection types and capabilities that NetworkManager has. It
1108           writes files out in an .ini-style format in
1109           /etc/NetworkManager/system-connections. See nm-settings-keyfile(5)
1110           for details about the file format.
1111
1112           The stored connection file may contain passwords, secrets and
1113           private keys in plain text, so it will be made readable only to
1114           root, and the plugin will ignore files that are readable or
1115           writable by any user or group other than root. See "Secret flag
1116           types" in nm-settings(5) for how to avoid storing passwords in
1117           plain text.
1118
1119           This plugin is always active, and will automatically be used to
1120           store any connections that aren't supported by any other active
1121           plugin.
1122
1123       ifcfg-rh
1124           This plugin is used on the Fedora and Red Hat Enterprise Linux
1125           distributions to read and write configuration from the standard
1126           /etc/sysconfig/network-scripts/ifcfg-* files. It currently supports
1127           reading Ethernet, Wi-Fi, InfiniBand, VLAN, Bond, Bridge, and Team
1128           connections. Enabling ifcfg-rh implicitly enables ibft plugin, if
1129           it is available. This can be disabled by adding no-ibft. See
1130           /usr/share/doc/initscripts/sysconfig.txt and nm-settings-ifcfg-
1131           rh(5) for more information about the ifcfg file format.
1132
1133       ifupdown
1134           This plugin is used on the Debian and Ubuntu distributions, and
1135           reads Ethernet and Wi-Fi connections from /etc/network/interfaces.
1136
1137           This plugin is read-only; any connections (of any type) added from
1138           within NetworkManager when you are using this plugin will be saved
1139           using the keyfile plugin instead.
1140
1141       ibft, no-ibft
1142           These plugins are deprecated and their selection has no effect.
1143           This is now handled by nm-initrd-generator.
1144
1145       ifcfg-suse, ifnet
1146           These plugins are deprecated and their selection has no effect. The
1147           keyfile plugin should be used instead.
1148

APPENDIX

1150   Device List Format
1151       The configuration options main.no-auto-default, main.ignore-carrier,
1152       keyfile.unmanaged-devices, connection*.match-device and
1153       device*.match-device select devices based on a list of matchings.
1154       Devices can be specified using the following format:
1155
1156       *
1157           Matches every device.
1158
1159       IFNAME
1160           Case sensitive match of interface name of the device. Globbing is
1161           not supported.
1162
1163       HWADDR
1164           Match the permanent MAC address of the device. Globbing is not
1165           supported
1166
1167       interface-name:IFNAME, interface-name:~IFNAME
1168           Case sensitive match of interface name of the device. Simple
1169           globbing is supported with * and ?. Ranges and escaping is not
1170           supported.
1171
1172       interface-name:=IFNAME
1173           Case sensitive match of interface name of the device. Globbing is
1174           disabled and IFNAME is taken literally.
1175
1176       mac:HWADDR
1177           Match the permanent MAC address of the device. Globbing is not
1178           supported
1179
1180       s390-subchannels:HWADDR
1181           Match the device based on the subchannel address. Globbing is not
1182           supported
1183
1184       type:TYPE
1185           Match the device type. Valid type names are as reported by "nmcli
1186           -f GENERAL.TYPE device show". Globbing is not supported.
1187
1188       driver:DRIVER
1189           Match the device driver as reported by "nmcli -f
1190           GENERAL.DRIVER,GENERAL.DRIVER-VERSION device show". "DRIVER" must
1191           match the driver name exactly and does not support globbing.
1192           Optionally, a driver version may be specified separated by '/'.
1193           Globbing is supported for the version.
1194
1195       dhcp-plugin:DHCP
1196           Match the configured DHCP plugin "main.dhcp".
1197
1198       except:SPEC
1199           Negative match of a device.  SPEC must be explicitly qualified with
1200           a prefix such as interface-name:. A negative match has higher
1201           priority then the positive matches above.
1202
1203           If there is a list consisting only of negative matches, the
1204           behavior is the same as if there is also match-all. That means, if
1205           none of all the negative matches is satisfied, the overall result
1206           is still a positive match. That means, "except:interface-name:eth0"
1207           is the same as "*,except:interface-name:eth0".
1208
1209       SPEC[,;]SPEC
1210           Multiple specs can be concatenated with commas or semicolons. The
1211           order does not matter as matches are either inclusive or negative
1212           (except:), with negative matches having higher priority.
1213
1214           Backslash is supported to escape the separators ';' and ',', and to
1215           express special characters such as newline ('\n'), tabulator
1216           ('\t'), whitespace ('\s') and backslash ('\\'). The globbing of
1217           interface names cannot be escaped. Whitespace is not a separator
1218           but will be trimmed between two specs (unless escaped as '\s').
1219
1220       Example:
1221
1222           interface-name:em4
1223           mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2
1224           interface-name:vboxnet*,except:interface-name:vboxnet2
1225           *,except:mac:00:22:68:1c:59:b1
1226
1227
1228   Connection List Format
1229       Connections can be specified using the following format:
1230
1231       *
1232           Matches every connection.
1233
1234       uuid:UUID
1235           Match the connection by UUID, for example
1236           "uuid:83037490-1d17-4986-a397-01f1db3a7fc2"
1237
1238       id=ID
1239           Match the connection by name.
1240
1241       origin:ORIGIN
1242           Match the connection by origin, stored in the
1243           org.freedesktop.NetworkManager.origin tag of the user setting. For
1244           example, use "except:origin:nm-initrd-generator" to forbid
1245           activation of connections created by the initrd generator.
1246
1247       except:SPEC
1248           Negative match of a connection. A negative match has higher
1249           priority then the positive matches above.
1250
1251           If there is a list consisting only of negative matches, the
1252           behavior is the same as if there is also match-all. That means, if
1253           none of all the negative matches is satisfied, the overall result
1254           is still a positive match.
1255
1256       SPEC[,;]SPEC
1257           Multiple specs can be concatenated with commas or semicolons. The
1258           order does not matter as matches are either inclusive or negative
1259           (except:), with negative matches having higher priority.
1260
1261           Backslash is supported to escape the separators ';' and ',', and to
1262           express special characters such as newline ('\n'), tabulator
1263           ('\t'), whitespace ('\s') and backslash ('\\'). Whitespace is not a
1264           separator but will be trimmed between two specs (unless escaped as
1265           '\s').
1266

SEE ALSO

1268       NetworkManager(8), nmcli(1), nmcli-examples(7), nm-online(1), nm-
1269       settings(5), nm-applet(1), nm-connection-editor(1)
1270
1271
1272
1273NetworkManager 1.38.0                                   NETWORKMANAGER.CONF(5)
Impressum