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
48 The configuration file format is so-called key file (sort of ini-style
49 format). It consists of sections (groups) of key-value pairs. Lines
50 beginning with a '#' and blank lines are considered comments. Sections
51 are started by a header line containing the section enclosed in '[' and
52 ']', and ended implicitly by the start of the next section or the end
53 of the file. Each key-value pair must be contained in a section.
54
55 For keys that take a list of devices as their value, you can specify
56 devices by their MAC addresses or interface names, or "*" to specify
57 all devices. See the section called “Device List Format” below.
58
59 Minimal system settings configuration file looks like this:
60
61 [main]
62 plugins=keyfile
63
64 As an extension to the normal keyfile format, you can also append a
65 value to a previously-set list-valued key by doing:
66
67 plugins+=another-plugin
68 plugins-=remove-me
69
70
72 plugins
73 Lists system settings plugin names separated by ','. These plugins
74 are used to read and write system-wide connection profiles. When
75 multiple plugins are specified, the connections are read from all
76 listed plugins. When writing connections, the plugins will be asked
77 to save the connection in the order listed here; if the first
78 plugin cannot write out that connection type (or can't write out
79 any connections) the next plugin is tried, etc. If none of the
80 plugins can save the connection, an error is returned to the user.
81
82 The default value and the number of available plugins is
83 distro-specific. See the section called “PLUGINS” below for the
84 available plugins. Note that NetworkManager's native keyfile plugin
85 is always appended to the end of this list (if it doesn't already
86 appear earlier in the list).
87
88 monitor-connection-files
89 This setting is deprecated and has no effect.
90
91 auth-polkit
92 Whether the system uses PolicyKit for authorization. If true,
93 non-root requests are authorized using PolicyKit. Requests from
94 root (user ID zero) are always granted without asking PolicyKit. If
95 false, all requests will be allowed and PolicyKit is not used. If
96 set to root-only PolicyKit is not used and all requests except root
97 are denied. The default value is true.
98
99 dhcp
100 This key sets up what DHCP client NetworkManager will use. Allowed
101 values are dhclient, dhcpcd, and internal. The dhclient and dhcpcd
102 options require the indicated clients to be installed. The internal
103 option uses a built-in DHCP client which is not currently as
104 featureful as the external clients.
105
106 If this key is missing, it defaults to internal. It the chosen
107 plugin is not available, clients are looked for in this order:
108 dhclient, dhcpcd, internal.
109
110 no-auto-default
111 Specify devices for which NetworkManager shouldn't create default
112 wired connection (Auto eth0). By default, NetworkManager creates a
113 temporary wired connection for any Ethernet device that is managed
114 and doesn't have a connection configured. List a device in this
115 option to inhibit creating the default connection for the device.
116 May have the special value * to apply to all devices.
117
118 When the default wired connection is deleted or saved to a new
119 persistent connection by a plugin, the device is added to a list in
120 the file /var/lib/NetworkManager/no-auto-default.state to prevent
121 creating the default connection for that device again.
122
123 See the section called “Device List Format” for the syntax how to
124 specify a device.
125
126 Example:
127
128 no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee
129 no-auto-default=eth0,eth1
130 no-auto-default=*
131
132
133 ignore-carrier
134 This setting is deprecated for the per-device setting
135 ignore-carrier which overwrites this setting if specified (See
136 ignore-carrier). Otherwise, it is a list of matches to specify for
137 which device carrier should be ignored. See the section called
138 “Device List Format” for the syntax how to specify a device. Note
139 that master types like bond, bridge, and team ignore carrier by
140 default. You can however revert that default using the "except:"
141 specifier (or better, use the per-device setting instead of the
142 deprecated setting).
143
144 assume-ipv6ll-only
145 Specify devices for which NetworkManager will try to generate a
146 connection based on initial configuration when the device only has
147 an IPv6 link-local address.
148
149 See the section called “Device List Format” for the syntax how to
150 specify a device.
151
152 configure-and-quit
153 When set to 'true', NetworkManager quits after performing initial
154 network configuration but spawns small helpers to preserve DHCP
155 leases and IPv6 addresses. This is useful in environments where
156 network setup is more or less static or it is desirable to save
157 process time but still handle some dynamic configurations. When
158 this option is true, network configuration for Wi-Fi, WWAN,
159 Bluetooth, ADSL, and PPPoE interfaces cannot be preserved due to
160 their use of external services, and these devices will be
161 deconfigured when NetworkManager quits even though other
162 interface's configuration may be preserved. Also, to preserve DHCP
163 addresses the 'dhcp' option must be set to 'internal'. The default
164 value of the 'configure-and-quit' option is 'false', meaning that
165 NetworkManager will continue running after initial network
166 configuration and continue responding to system and hardware
167 events, D-Bus requests, and user commands.
168
169 hostname-mode
170 Set the management mode of the hostname. This parameter will affect
171 only the transient hostname. If a valid static hostname is set,
172 NetworkManager will skip the update of the hostname despite the
173 value of this option. An hostname empty or equal to 'localhost',
174 'localhost6', 'localhost.localdomain' or 'localhost6.localdomain'
175 is considered invalid.
176
177 default: NetworkManager will update the hostname with the one
178 provided via DHCP on the main connection (the one with a default
179 route). If not present, the hostname will be updated to the last
180 one set outside NetworkManager. If it is not valid, NetworkManager
181 will try to recover the hostname from the reverse lookup of the IP
182 address of the main connection. If this fails too, the hostname
183 will be set to 'localhost.localdomain'.
184
185 dhcp: NetworkManager will update the transient hostname only with
186 information coming from DHCP. No fallback nor reverse lookup will
187 be performed, but when the dhcp connection providing the hostname
188 is deactivated, the hostname is reset to the last hostname set
189 outside NetworkManager or 'localhost' if none valid is there.
190
191 none: NetworkManager will not manage the transient hostname and
192 will never set it.
193
194 dns
195 Set the DNS processing mode.
196
197 If the key is unspecified, default is used, unless /etc/resolv.conf
198 is a symlink to /run/systemd/resolve/stub-resolv.conf,
199 /run/systemd/resolve/resolv.conf, /lib/systemd/resolv.conf or
200 /usr/lib/systemd/resolv.conf. In that case, systemd-resolved is
201 chosen automatically.
202
203 default: NetworkManager will update /etc/resolv.conf to reflect the
204 nameservers provided by currently active connections.
205
206 dnsmasq: NetworkManager will run dnsmasq as a local caching
207 nameserver, using "Conditional Forwarding" if you are connected to
208 a VPN, and then update resolv.conf to point to the local
209 nameserver. It is possible to pass custom options to the dnsmasq
210 instance by adding them to files in the
211 "/etc/NetworkManager/dnsmasq.d/" directory. Note that when multiple
212 upstream servers are available, dnsmasq will initially contact them
213 in parallel and then use the fastest to respond, probing again
214 other servers after some time. This behavior can be modified
215 passing the 'all-servers' or 'strict-order' options to dnsmasq (see
216 the manual page for more details).
217
218 systemd-resolved: NetworkManager will push the DNS configuration to
219 systemd-resolved
220
221 unbound: NetworkManager will talk to unbound and dnssec-triggerd,
222 using "Conditional Forwarding" with DNSSEC support.
223 /etc/resolv.conf will be managed by dnssec-trigger daemon.
224
225 none: NetworkManager will not modify resolv.conf. This implies
226 rc-manager unmanaged
227
228 Note that the plugins dnsmasq, systemd-resolved and unbound are
229 caching local nameservers. Hence, when NetworkManager writes
230 /run/NetworkManager/resolv.conf and /etc/resolv.conf (according to
231 rc-manager setting below), the name server there will be localhost
232 only. NetworkManager also writes a file
233 /run/NetworkManager/no-stub-resolv.conf that contains the original
234 name servers pushed to the DNS plugin.
235
236 When using dnsmasq and systemd-resolved per-connection added dns
237 servers will always be queried using the device the connection has
238 been activated on.
239
240 rc-manager
241 Set the resolv.conf management mode. The default value depends on
242 NetworkManager build options, and this version of NetworkManager
243 was build with a default of "symlink". Regardless of this setting,
244 NetworkManager will always write resolv.conf to its runtime state
245 directory /run/NetworkManager/resolv.conf.
246
247 symlink: If /etc/resolv.conf is a regular file, NetworkManager will
248 replace the file on update. If /etc/resolv.conf is instead a
249 symlink, NetworkManager will leave it alone. Unless the symlink
250 points to the internal file /run/NetworkManager/resolv.conf, in
251 which case the symlink will be updated to emit an inotify
252 notification. This allows the user to conveniently instruct
253 NetworkManager not to manage /etc/resolv.conf by replacing it with
254 a symlink.
255
256 file: NetworkManager will write /etc/resolv.conf as file. If it
257 finds a symlink to an existing target, it will follow the symlink
258 and update the target instead. In no case will an existing symlink
259 be replaced by a file. Note that older versions of NetworkManager
260 behaved differently and would replace dangling symlinks with a
261 plain file.
262
263 resolvconf: NetworkManager will run resolvconf to update the DNS
264 configuration.
265
266 netconfig: NetworkManager will run netconfig to update the DNS
267 configuration.
268
269 unmanaged: don't touch /etc/resolv.conf.
270
271 none: deprecated alias for symlink.
272
273 systemd-resolved
274 Send the connection DNS configuration to systemd-resolved. Defaults
275 to "true".
276
277 Note that this setting is complementary to the dns setting. You can
278 keep this enabled while using dns set to another DNS plugin
279 alongside systemd-resolved, or dns set to systemd-resolved to
280 configure the system resolver to use systemd-resolved.
281
282 If systemd-resolved is enabled, the connectivity check resolves the
283 hostname per-device.
284
285 debug
286 Comma separated list of options to aid debugging. This value will
287 be combined with the environment variable NM_DEBUG. Currently the
288 following values are supported:
289
290 RLIMIT_CORE: set ulimit -c unlimited to write out core dumps.
291 Beware, that a core dump can contain sensitive information such as
292 passwords or configuration settings.
293
294 fatal-warnings: set g_log_set_always_fatal() to core dump on
295 warning messages from glib. This is equivalent to the
296 --g-fatal-warnings command line option.
297
298 autoconnect-retries-default
299 The number of times a connection activation should be automatically
300 tried before switching to another one. This value applies only to
301 connections that can auto-connect and have a
302 connection.autoconnect-retries property set to -1. If not
303 specified, connections will be tried 4 times. Setting this value to
304 1 means to try activation once, without retry.
305
306 slaves-order
307 This key specifies in which order slave connections are
308 auto-activated on boot or when the master activates them. Allowed
309 values are name (order connection by interface name, the default),
310 or index (order slaves by their kernel index).
311
313 This section contains keyfile-plugin-specific options, and is normally
314 only used when you are not using any other distro-specific plugin.
315
316 hostname
317 This key is deprecated and has no effect since the hostname is now
318 stored in /etc/hostname or other system configuration files
319 according to build options.
320
321 path
322 The location where keyfiles are read and stored. This defaults to
323 "/etc/NetworkManager/system-connections".
324
325 unmanaged-devices
326 Set devices that should be ignored by NetworkManager.
327
328 See the section called “Device List Format” for the syntax how to
329 specify a device.
330
331 Example:
332
333 unmanaged-devices=interface-name:em4
334 unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2
335
336
338 This section contains ifupdown-specific options and thus only has
339 effect when using the ifupdown plugin.
340
341 managed
342 If set to true, then interfaces listed in /etc/network/interfaces
343 are managed by NetworkManager. If set to false, then any interface
344 listed in /etc/network/interfaces will be ignored by
345 NetworkManager. Remember that NetworkManager controls the default
346 route, so because the interface is ignored, NetworkManager may
347 assign the default route to some other interface.
348
349 The default value is false.
350
352 This section controls NetworkManager's logging. Any settings here are
353 overridden by the --log-level and --log-domains command-line options.
354
355 level
356 The default logging verbosity level. One of OFF, ERR, WARN, INFO,
357 DEBUG, TRACE. The ERR level logs only critical errors. WARN logs
358 warnings that may reflect operation. INFO logs various
359 informational messages that are useful for tracking state and
360 operations. DEBUG enables verbose logging for debugging purposes.
361 TRACE enables even more verbose logging then DEBUG level.
362 Subsequent levels also log all messages from earlier levels; thus
363 setting the log level to INFO also logs error and warning messages.
364
365 domains
366 The following log domains are available: PLATFORM, RFKILL, ETHER,
367 WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS,
368 VPN, SHARING, SUPPLICANT, AGENTS, SETTINGS, SUSPEND, CORE, DEVICE,
369 OLPC, WIMAX, INFINIBAND, FIREWALL, ADSL, BOND, VLAN, BRIDGE,
370 DBUS_PROPS, TEAM, CONCHECK, DCB, DISPATCH, AUDIT, SYSTEMD,
371 VPN_PLUGIN, PROXY.
372
373 In addition, these special domains can be used: NONE, ALL, DEFAULT,
374 DHCP, IP.
375
376 You can specify per-domain log level overrides by adding a colon
377 and a log level to any domain. E.g., "WIFI:DEBUG,WIFI_SCAN:OFF".
378
379 Domain descriptions:
380 PLATFORM : OS (platform) operations
381 RFKILL : RFKill subsystem operations
382 ETHER : Ethernet device operations
383 WIFI : Wi-Fi device operations
384 BT : Bluetooth operations
385 MB : Mobile broadband operations
386 DHCP4 : DHCP for IPv4
387 DHCP6 : DHCP for IPv6
388 PPP : Point-to-point protocol operations
389 WIFI_SCAN : Wi-Fi scanning operations
390 IP4 : IPv4-related operations
391 IP6 : IPv6-related operations
392 AUTOIP4 : AutoIP operations
393 DNS : Domain Name System related operations
394 VPN : Virtual Private Network connections and
395 operations
396 SHARING : Connection sharing. With TRACE level log queries
397 for dnsmasq instance
398 SUPPLICANT : WPA supplicant related operations
399 AGENTS : Secret agents operations and communication
400 SETTINGS : Settings/config service operations
401 SUSPEND : Suspend/resume
402 CORE : Core daemon and policy operations
403 DEVICE : Activation and general interface operations
404 OLPC : OLPC Mesh device operations
405 WIMAX : WiMAX device operations
406 INFINIBAND : InfiniBand device operations
407 FIREWALL : FirewallD related operations
408 ADSL : ADSL device operations
409 BOND : Bonding operations
410 VLAN : VLAN operations
411 BRIDGE : Bridging operations
412 DBUS_PROPS : D-Bus property changes
413 TEAM : Teaming operations
414 CONCHECK : Connectivity check
415 DCB : Data Center Bridging (DCB) operations
416 DISPATCH : Dispatcher scripts
417 AUDIT : Audit records
418 SYSTEMD : Messages from internal libsystemd
419 VPN_PLUGIN : logging messages from VPN plugins
420 PROXY : logging messages for proxy handling
421
422 NONE : when given by itself logging is disabled
423 ALL : all log domains
424 DEFAULT : default log domains
425 DHCP : shortcut for "DHCP4,DHCP6"
426 IP : shortcut for "IP4,IP6"
427
428 HW : deprecated alias for "PLATFORM"
429
430 In general, the logfile should not contain passwords or private
431 data. However, you are always advised to check the file before
432 posting it online or attaching to a bug report. VPN_PLUGIN is
433 special as it might reveal private information of the VPN plugins
434 with verbose levels. Therefore this domain will be excluded when
435 setting ALL or DEFAULT to more verbose levels then INFO.
436
437 backend
438 The logging backend. Supported values are "syslog" and "journal".
439 When NetworkManager is started with "--debug" in addition all
440 messages will be printed to stderr. If unspecified, the default is
441 "journal".
442
443 audit
444 Whether the audit records are delivered to auditd, the audit
445 daemon. If false, audit records will be sent only to the
446 NetworkManager logging system. If set to true, they will be also
447 sent to auditd. The default value is false.
448
450 Specify default values for connections.
451
452 Example:
453
454 [connection]
455 ipv6.ip6-privacy=0
456
457
458 Supported Properties
459 Not all properties can be overwritten, only the following properties
460 are supported to have their default values configured (see nm-
461 settings(5) for details). A default value is only consulted if the
462 corresponding per-connection value explicitly allows for that.
463
464
465
466 802-1x.auth-timeout
467
468 cdma.mtu
469
470 connection.auth-retries
471 If left unspecified, the default value is 3 tries before failing
472 the connection.
473
474 connection.autoconnect-slaves
475
476 connection.lldp
477
478 connection.llmnr
479 If unspecified, the ultimate default values depends on the DNS
480 plugin. With systemd-resolved the default currently is "yes" (2)
481 and for all other plugins "no" (0).
482
483 connection.mdns
484 If unspecified, the ultimate default values depends on the DNS
485 plugin. With systemd-resolved the default currently is "no" (0) and
486 for all other plugins also "no" (0).
487
488 connection.stable-id
489
490 ethernet.cloned-mac-address
491 If left unspecified, it defaults to "preserve".
492
493 ethernet.generate-mac-address-mask
494
495 ethernet.mtu
496 If configured explicitly to 0, the MTU is not reconfigured during
497 device activation unless it is required due to IPv6 constraints. If
498 left unspecified, a DHCP/IPv6 SLAAC provided value is used or the
499 MTU is not reconfigured during activation.
500
501 ethernet.wake-on-lan
502
503 gsm.mtu
504
505 infiniband.mtu
506 If configured explicitly to 0, the MTU is not reconfigured during
507 device activation unless it is required due to IPv6 constraints. If
508 left unspecified, a DHCP/IPv6 SLAAC provided value is used or the
509 MTU is left unspecified on activation.
510
511 ip-tunnel.mtu
512 If configured explicitly to 0, the MTU is not reconfigured during
513 device activation unless it is required due to IPv6 constraints. If
514 left unspecified, a DHCP/IPv6 SLAAC provided value is used or a
515 default of 1500.
516
517 ipv4.dad-timeout
518
519 ipv4.dhcp-client-id
520
521 ipv4.dhcp-iaid
522 If left unspecified, it defaults to "ifname".
523
524 ipv4.dhcp-hostname-flags
525 If left unspecified, the value 3 (fqdn-encoded,fqdn-serv-update) is
526 used.
527
528 ipv4.dhcp-timeout
529 If left unspecified, the default value for the interface type is
530 used.
531
532 ipv4.dns-priority
533 If unspecified or zero, use 50 for VPN profiles and 100 for other
534 profiles.
535
536 ipv4.route-metric
537
538 ipv4.route-table
539 If left unspecified, routes are only added to the main table. Note
540 that this is different from explicitly selecting the main table
541 254, because of how NetworkManager removes extraneous routes from
542 the tables.
543
544 ipv6.ra-timeout
545 If left unspecified, the default value depends on the sysctl
546 solicitation settings.
547
548 ipv6.dhcp-duid
549 If left unspecified, it defaults to "lease".
550
551 ipv6.dhcp-iaid
552 If left unspecified, it defaults to "ifname".
553
554 ipv6.dhcp-hostname-flags
555 If left unspecified, the value 1 (fqdn-serv-update) is used.
556
557 ipv6.dhcp-timeout
558 If left unspecified, the default value for the interface type is
559 used.
560
561 ipv6.dns-priority
562 If unspecified or zero, use 50 for VPN profiles and 100 for other
563 profiles.
564
565 ipv6.ip6-privacy
566 If ipv6.ip6-privacy is unset, use the content of
567 "/proc/sys/net/ipv6/conf/default/use_tempaddr" as last fallback.
568
569 ipv6.route-metric
570
571 ipv6.route-table
572 If left unspecified, routes are only added to the main table. Note
573 that this is different from explicitly selecting the main table
574 254, because of how NetworkManager removes extraneous routes from
575 the tables.
576
577 sriov.autoprobe-drivers
578 If left unspecified, drivers are autoprobed when the SR-IOV VF gets
579 created.
580
581 vpn.timeout
582 If left unspecified, default value of 60 seconds is used.
583
584 wifi.cloned-mac-address
585 If left unspecified, it defaults to "preserve".
586
587 wifi.generate-mac-address-mask
588
589 wifi.mac-address-randomization
590 If left unspecified, MAC address randomization is disabled. This
591 setting is deprecated for wifi.cloned-mac-address.
592
593 wifi.mtu
594 If configured explicitly to 0, the MTU is not reconfigured during
595 device activation unless it is required due to IPv6 constraints. If
596 left unspecified, a DHCP/IPv6 SLAAC provided value is used or a
597 default of 1500.
598
599 wifi.powersave
600 If left unspecified, the default value "ignore" will be used.
601
602 wifi-sec.pmf
603 If left unspecified, the default value "optional" will be used.
604
605 wifi-sec.fils
606 If left unspecified, the default value "optional" will be used.
607
608 wifi.wake-on-wlan
609
610 wireguard.mtu
611
612
613 Sections
614 You can configure multiple connection sections, by having different
615 sections with a name that all start with "connection". Example:
616
617 [connection]
618 ipv6.ip6-privacy=0
619 connection.autoconnect-slaves=1
620 vpn.timeout=120
621
622 [connection-wifi-wlan0]
623 match-device=interface-name:wlan0
624 ipv4.route-metric=50
625
626 [connection-wifi-other]
627 match-device=type:wifi
628 ipv4.route-metric=55
629 ipv6.ip6-privacy=1
630
631 The sections within one file are considered in order of appearance,
632 with the exception that the [connection] section is always considered
633 last. In the example above, this order is [connection-wifi-wlan0],
634 [connection-wlan-other], and [connection]. When checking for a default
635 configuration value, the sections are searched until the requested
636 value is found. In the example above, "ipv4.route-metric" for wlan0
637 interface is set to 50, and for all other Wi-Fi typed interfaces to 55.
638 Also, Wi-Fi devices would have IPv6 private addresses enabled by
639 default, but other devices would have it disabled. Note that also
640 "wlan0" gets "ipv6.ip6-privacy=1", because although the section
641 "[connection-wifi-wlan0]" matches the device, it does not contain that
642 property and the search continues.
643
644 When having different sections in multiple files, sections from files
645 that are read later have higher priority. So within one file the
646 priority of the sections is top-to-bottom. Across multiple files later
647 definitions take precedence.
648
649 The following properties further control how a connection section
650 applies.
651
652 match-device
653 An optional device spec that restricts when the section applies.
654 See the section called “Device List Format” for the possible
655 values.
656
657 stop-match
658 An optional boolean value which defaults to no. If the section
659 matches (based on match-device), further sections will not be
660 considered even if the property in question is not present. In the
661 example above, if [connection-wifi-wlan0] would have stop-match set
662 to yes, the device wlan0 would have ipv6.ip6-privacy property
663 unspecified. That is, the search for the property would not
664 continue in the connection sections [connection-wifi-other] or
665 [connection].
666
668 Contains per-device persistent configuration.
669
670 Example:
671
672 [device]
673 match-device=interface-name:eth3
674 managed=1
675
676
677 Supported Properties
678 The following properties can be configured per-device.
679
680 managed
681 Whether the device is managed or not. A device can be marked as
682 managed via udev rules (ENV{NM_UNMANAGED}), or via setting plugins
683 (keyfile.unmanaged-devices). This is yet another way. Note that
684 this configuration can be overruled at runtime via D-Bus. Also, it
685 has higher priority then udev rules.
686
687 carrier-wait-timeout
688 Specify the timeout for waiting for carrier in milliseconds. When
689 the device loses carrier, NetworkManager does not react
690 immediately. Instead, it waits for this timeout before considering
691 the link lost. Also, on startup, NetworkManager considers the
692 device as busy for this time, as long as the device has no carrier.
693 This delays startup-complete signal and NetworkManager-wait-online.
694 Configuring this too high means to block NetworkManager-wait-online
695 longer then necessary. Configuring it too low, means that
696 NetworkManager will declare startup-complete, although carrier is
697 about to come and auto-activation to kick in. The default is 5000
698 milliseconds.
699
700 ignore-carrier
701 Specify devices for which NetworkManager will (partially) ignore
702 the carrier state. Normally, for device types that support
703 carrier-detect, such as Ethernet and InfiniBand, NetworkManager
704 will only allow a connection to be activated on the device if
705 carrier is present (ie, a cable is plugged in), and it will
706 deactivate the device if carrier drops for more than a few seconds.
707
708 A device with carrier ignored will allow activating connections on
709 that device even when it does not have carrier, provided that the
710 connection uses only statically-configured IP addresses.
711 Additionally, it will allow any active connection (whether static
712 or dynamic) to remain active on the device when carrier is lost.
713
714 Note that the "carrier" property of NMDevices and device D-Bus
715 interfaces will still reflect the actual device state; it's just
716 that NetworkManager will not make use of that information.
717
718 Master types like bond, bridge and team ignore carrier by default,
719 while other device types react on carrier changes by default.
720
721 This setting overwrites the deprecated main.ignore-carrier setting
722 above.
723
724 wifi.scan-rand-mac-address
725 Configures MAC address randomization of a Wi-Fi device during
726 scanning. This defaults to yes in which case a random,
727 locally-administered MAC address will be used. The setting
728 wifi.scan-generate-mac-address-mask allows to influence the
729 generated MAC address to use certain vendor OUIs. If disabled, the
730 MAC address during scanning is left unchanged to whatever is
731 configured. For the configured MAC address while the device is
732 associated, see instead the per-connection setting
733 wifi.cloned-mac-address.
734
735 wifi.backend
736 Specify the Wi-Fi backend used for the device. Currently supported
737 are wpa_supplicant and iwd (experimental).
738
739 wifi.scan-generate-mac-address-mask
740 Like the per-connection settings ethernet.generate-mac-address-mask
741 and wifi.generate-mac-address-mask, this allows to configure the
742 generated MAC addresses during scanning. See nm-settings(5) for
743 details.
744
745 sriov-num-vfs
746 Specify the number of virtual functions (VF) to enable for a PCI
747 physical device that supports single-root I/O virtualization
748 (SR-IOV).
749
750 Sections
751 The [device] section works the same as the [connection] section. That
752 is, multiple sections that all start with the prefix "device" can be
753 specified. The settings "match-device" and "stop-match" are available
754 to match a device section on a device. The order of multiple sections
755 is also top-down within the file and later files overwrite previous
756 settings. See “Sections” under the section called “CONNECTION SECTION”
757 for details.
758
760 This section controls NetworkManager's optional connectivity checking
761 functionality. This allows NetworkManager to detect whether or not the
762 system can actually access the internet or whether it is behind a
763 captive portal.
764
765 Connectivity checking serves two purposes. For one, it exposes a
766 connectivity state on D-Bus, which other applications may use. For
767 example, Gnome's portal helper uses this as signal to show a captive
768 portal login page. The other use is that default-route of devices
769 without global connectivity get a penalty of +20000 to the
770 route-metric. This has the purpose to give a better default-route to
771 devices that have global connectivity. For example, when being
772 connected to WWAN and to a Wi-Fi network which is behind a captive
773 portal, WWAN still gets preferred until login.
774
775 Note that your distribution might set
776 /proc/sys/net/ipv4/conf/*/rp_filter to strict filtering. That works
777 badly with per-device connectivity checking, which uses SO_BINDDEVICE
778 to send requests on all devices. A strict rp_filter setting will reject
779 any response and the connectivity check on all but the best route will
780 fail.
781
782 enabled
783 Whether connectivity check is enabled. Note that to enable
784 connectivity check, a valid uri must also be configured. The value
785 defaults to true, but since the uri is unset by default,
786 connectivity check may be disabled. The main purpose of this option
787 is to have a single flag to disable connectivity check. Note that
788 this setting can also be set via D-Bus API at runtime. In that
789 case, the value gets stored in
790 /var/lib/NetworkManager/NetworkManager-intern.conf file.
791
792 uri
793 The URI of a web page to periodically request when connectivity is
794 being checked. This page should return the header
795 "X-NetworkManager-Status" with a value of "online". Alternatively,
796 its body content should be set to "NetworkManager is online". The
797 body content check can be controlled by the response option. If
798 this option is blank or missing, connectivity checking is disabled.
799
800 interval
801 Specified in seconds; controls how often connectivity is checked
802 when a network connection exists. If set to 0 connectivity checking
803 is disabled. If missing, the default is 300 seconds.
804
805 response
806 If set, controls what body content NetworkManager checks for when
807 requesting the URI for connectivity checking. Note that this only
808 compares that the HTTP response starts with the specifid text, it
809 does not compare the exact string. This behavior might change in
810 the future, so avoid relying on it. If missing, the response
811 defaults to "NetworkManager is online". If set to empty, the HTTP
812 server is expected to answer with status code 204 or send no data.
813
815 This section specifies global DNS settings that override
816 connection-specific configuration.
817
818 searches
819 A list of search domains to be used during hostname lookup.
820
821 options
822 A list of options to be passed to the hostname resolver.
823
825 Sections with a name starting with the "global-dns-domain-" prefix
826 allow to define global DNS configuration for specific domains. The part
827 of section name after "global-dns-domain-" specifies the domain name a
828 section applies to. More specific domains have the precedence over less
829 specific ones and the default domain is represented by the wildcard
830 "*". A default domain section is mandatory.
831
832 servers
833 A list of addresses of DNS servers to be used for the given domain.
834
835 options
836 A list of domain-specific DNS options. Not used at the moment.
837
839 This is a special section that contains options which apply to the
840 configuration file that contains the option.
841
842 enable
843 Defaults to "true". If "false", the configuration file will be
844 skipped during loading. Note that the main configuration file
845 NetworkManager.conf cannot be disabled.
846
847 # always skip loading the config file
848 [.config]
849 enable=false
850
851 You can also match against the version of NetworkManager. For
852 example the following are valid configurations:
853
854 # only load on version 1.0.6
855 [.config]
856 enable=nm-version:1.0.6
857
858 # load on all versions 1.0.x, but not 1.2.x
859 [.config]
860 enable=nm-version:1.0
861
862 # only load on versions >= 1.1.6. This does not match
863 # with version 1.2.0 or 1.4.4. Only the last digit is considered.
864 [.config]
865 enable=nm-version-min:1.1.6
866
867 # only load on versions >= 1.2. Contrary to the previous
868 # example, this also matches with 1.2.0, 1.2.10, 1.4.4, etc.
869 [.config]
870 enable=nm-version-min:1.2
871
872 # Match against the maximum allowed version. The example matches
873 # versions 1.2.0, 1.2.2, 1.2.4. Again, only the last version digit
874 # is allowed to be smaller. So this would not match match on 1.1.10.
875 [.config]
876 enable=nm-version-max:1.2.6
877
878 You can also match against the value of the environment variable
879 NM_CONFIG_ENABLE_TAG, like:
880
881 # always skip loading the file when running NetworkManager with
882 # environment variable "NM_CONFIG_ENABLE_TAG=TAG1"
883 [.config]
884 enable=env:TAG1
885
886 More then one match can be specified. The configuration will be
887 enabled if one of the predicates matches ("or"). The special prefix
888 "except:" can be used to negate the match. Note that if one
889 except-predicate matches, the entire configuration will be
890 disabled. In other words, a except predicate always wins over other
891 predicates. If the setting only consists of "except:" matches and
892 none of the negative conditions are satisfied, the configuration is
893 still enabled.
894
895 # enable the configuration either when the environment variable
896 # is present or the version is at least 1.2.0.
897 [.config]
898 enable=env:TAG2,nm-version-min:1.2
899
900 # enable the configuration for version >= 1.2.0, but disable
901 # it when the environment variable is set to "TAG3"
902 [.config]
903 enable=except:env:TAG3,nm-version-min:1.2
904
905 # enable the configuration on >= 1.3, >= 1.2.6, and >= 1.0.16.
906 # Useful if a certain feature is only present since those releases.
907 [.config]
908 enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
909
910
912 Settings plugins for reading and writing connection profiles. The
913 number of available plugins is distribution specific.
914
915 keyfile
916 The keyfile plugin is the generic plugin that supports all the
917 connection types and capabilities that NetworkManager has. It
918 writes files out in an .ini-style format in
919 /etc/NetworkManager/system-connections. See nm-settings-keyfile(5)
920 for details about the file format.
921
922 The stored connection file may contain passwords, secrets and
923 private keys in plain text, so it will be made readable only to
924 root, and the plugin will ignore files that are readable or
925 writable by any user or group other than root. See "Secret flag
926 types" in nm-settings(5) for how to avoid storing passwords in
927 plain text.
928
929 This plugin is always active, and will automatically be used to
930 store any connections that aren't supported by any other active
931 plugin.
932
933 ifcfg-rh
934 This plugin is used on the Fedora and Red Hat Enterprise Linux
935 distributions to read and write configuration from the standard
936 /etc/sysconfig/network-scripts/ifcfg-* files. It currently supports
937 reading Ethernet, Wi-Fi, InfiniBand, VLAN, Bond, Bridge, and Team
938 connections. Enabling ifcfg-rh implicitly enables ibft plugin, if
939 it is available. This can be disabled by adding no-ibft. See
940 /usr/share/doc/initscripts/sysconfig.txt and nm-settings-ifcfg-
941 rh(5) for more information about the ifcfg file format.
942
943 ifupdown
944 This plugin is used on the Debian and Ubuntu distributions, and
945 reads Ethernet and Wi-Fi connections from /etc/network/interfaces.
946
947 This plugin is read-only; any connections (of any type) added from
948 within NetworkManager when you are using this plugin will be saved
949 using the keyfile plugin instead.
950
951 ibft, no-ibft
952 These plugins are deprecated and their selection has no effect.
953 This is now handled by nm-initrd-generator.
954
955 ifcfg-suse, ifnet
956 These plugins are deprecated and their selection has no effect. The
957 keyfile plugin should be used instead.
958
960 Device List Format
961 The configuration options main.no-auto-default, main.ignore-carrier,
962 keyfile.unmanaged-devices, connection*.match-device and
963 device*.match-device select devices based on a list of matchings.
964 Devices can be specified using the following format:
965
966 *
967 Matches every device.
968
969 IFNAME
970 Case sensitive match of interface name of the device. Globbing is
971 not supported.
972
973 HWADDR
974 Match the permanent MAC address of the device. Globbing is not
975 supported
976
977 interface-name:IFNAME, interface-name:~IFNAME
978 Case sensitive match of interface name of the device. Simple
979 globbing is supported with * and ?. Ranges and escaping is not
980 supported.
981
982 interface-name:=IFNAME
983 Case sensitive match of interface name of the device. Globbing is
984 disabled and IFNAME is taken literally.
985
986 mac:HWADDR
987 Match the permanent MAC address of the device. Globbing is not
988 supported
989
990 s390-subchannels:HWADDR
991 Match the device based on the subchannel address. Globbing is not
992 supported
993
994 type:TYPE
995 Match the device type. Valid type names are as reported by "nmcli
996 -f GENERAL.TYPE device show". Globbing is not supported.
997
998 driver:DRIVER
999 Match the device driver as reported by "nmcli -f
1000 GENERAL.DRIVER,GENERAL.DRIVER-VERSION device show". "DRIVER" must
1001 match the driver name exactly and does not support globbing.
1002 Optionally, a driver version may be specified separated by '/'.
1003 Globbing is supported for the version.
1004
1005 dhcp-plugin:DHCP
1006 Match the configured DHCP plugin "main.dhcp".
1007
1008 except:SPEC
1009 Negative match of a device. SPEC must be explicitly qualified with
1010 a prefix such as interface-name:. A negative match has higher
1011 priority then the positive matches above.
1012
1013 If there is a list consisting only of negative matches, the
1014 behavior is the same as if there is also match-all. That means, if
1015 none of all the negative matches is satisfied, the overall result
1016 is still a positive match. That means, "except:interface-name:eth0"
1017 is the same as "*,except:interface-name:eth0".
1018
1019 SPEC[,;]SPEC
1020 Multiple specs can be concatenated with commas or semicolons. The
1021 order does not matter as matches are either inclusive or negative
1022 (except:), with negative matches having higher priority.
1023
1024 Backslash is supported to escape the separators ';' and ',', and to
1025 express special characters such as newline ('\n'), tabulator
1026 ('\t'), whitespace ('\s') and backslash ('\\'). The globbing of
1027 interface names cannot be escaped. Whitespace is not a separator
1028 but will be trimmed between two specs (unless escaped as '\s').
1029
1030 Example:
1031
1032 interface-name:em4
1033 mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2
1034 interface-name:vboxnet*,except:interface-name:vboxnet2
1035 *,except:mac:00:22:68:1c:59:b1
1036
1037
1039 NetworkManager(8), nmcli(1), nmcli-examples(7), nm-online(1), nm-
1040 settings(5), nm-applet(1), nm-connection-editor(1)
1041
1042
1043
1044NetworkManager 1.22.10 NETWORKMANAGER.CONF(5)