1NETWORKMANAGER.CONF(5) Configuration NETWORKMANAGER.CONF(5)
2
3
4
6 NetworkManager.conf - NetworkManager configuration file
7
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)