service-name.config(5)
π NAME π
okay so this is service-name.config β the ConnMan service provisioning file. that's it, that's the name, short and iconic π
β¨ SYNOPSIS β¨
/var/lib/connman/service-name.config
π¦ DESCRIPTION π¦
so ConnMan's services get configured with these things called "provisioning files", and they live under /var/lib/connman/. bestie, you can name them literally anything you want β the only rule is they have to end in .config. that's the vibe check. π
and what are they for? okay so picture this: secured wireless access points that need complex authentication (looking at you, eduroam π), or static IPs, and so on. that's what these files handle. and the slay part? each provisioning file can be used for multiple services at once. one file, many services, main character energy fr fr. π
πΈ FILE FORMAT πΈ
the config file is made of sections (groups) of key-value pairs. here's the rules:
- lines starting with a
#are comments. no cap. - blank lines are also considered comments. they're just vibing.
- sections start with a header line that has the section name wrapped in
[and]. - a section ends implicitly β either when the next section starts, or when the file ends. no closing tag, she just leaves πͺ
- and every single key-value pair must be inside a section. no orphan keys allowed.
description of sections and the available keys follows:
π [global] π
this section is optional, and it's basically there to describe the actual file itself. the two allowed fields are:
Name=nameβ name of the network.Description=descriptionβ description of the network.
π« [service_*] π«
every provisioned service has to start with a [service_*] tag, where the * gets replaced by a unique name within the file. the allowed fields are:
Type=ethernet | wifiβ Mandatory. any other type thanethernetorwifiis not supported. sorry bestie, them's the rules.IPv4=off | dhcp | network/netmask/gatewayβ IPv4 settings for the service. set it tooffand IPv4 won't be used at all. set it todhcpand dhcp will be used to obtain the network settings. and psst βnetmaskcan be specified as the length of the mask rather than the mask itself β¨. thegatewaycan be omitted when you're using a static IP.IPv6=off | auto | network/prefixlength/gatewayβ IPv6 settings for the service.offmeans IPv6 won't be used.automeans the settings will be obtained from the network. π«ΆIPv6.Privacy=disabled | enabled | preferredβ IPv6 privacy settings, as per RFC3041.MAC=addressβ MAC address of the interface to be used. if you don't specify one, the first found interface gets used. must be in the formatab:cd:ef:01:23:45.DeviceName=ifnameβ device name of the interface to be used, e.g.eth0. and heads up:MACtakes preference overDeviceName. πNameservers=serversβ comma separated list of nameservers.SearchDomains=domainsβ comma separated list of DNS search domains.Timeservers=serversβ comma separated list of timeservers.Domain=domainβ domain name to be used.
π the wireless-only keys π
the following keys can only be used for wireless networks:
Name=nameβ a string representation of a network SSID. if theSSIDfield is present, thisNamefield gets ignored. if theSSIDfield is not present, then this field is mandatory.SSID=ssidβ SSID: a hexadecimal representation of an 802.11 SSID. use this format to encode special characters, including starting or ending spaces. (iykyk, those sneaky spaces are real π)Passphrase=passphraseβ RSN/WPA/WPA2 passphrase.Security=typeβ the security type of the network. possible values arepsk(WPA/WPA2 PSK),ieee8021x(WPA EAP),noneandwep. when it's not set, the default value isieee8021xif an EAP type is configured,pskif a passphrase is present, andnoneotherwise. the logic is logicking. β¨Hidden=true | falseβ if set totrue, then this AP is hidden. if it's missing or set tofalse, then the AP is not hidden. simple as. π¦
π₯ the WPA EAP keys π₯
the following keys are used for WPA EAP (so when Security=ieee8021x):
EAP=tls | ttls | peapβ EAP type to use. onlytls,ttlsandpeapare supported.CACertFile=fileβ path to the CA certificate file. only PEM and DER formats are supported.PrivateKeyFile=fileβ path to the private key file. only PEM, DER and PFX formats are supported.PrivateKeyPassphrase=passphraseβ passphrase of the private key.PrivateKeyPassphraseType=fsidβ if specified, use the private key'sfsidas the passphrase, and ignore thePrivateKeyPassphrasefield.Identity=identityβ identity string for EAP.AnonymousIdentity=identityβ anonymous identity string for EAP.SubjectMatch=substringβ substring to be matched against the subject of the authentication server certificate for EAP.AltSubjectMatch=substringβ semicolon separated string of entries to be matched against the alternative subject name of the authentication server certificate for EAP.DomainSuffixMatch=domainβ constraint for server domain name. if set, this FQDN is used as a suffix match requirement for the authentication server certificate for EAP.DomainMatch=domainβ this FQDN is used as a full match requirement for the authentication server certificate for EAP.Phase2=typeβ inner authentication type with forEAP=tlsorEAP=ttls. prefix the value withEAP-to indicate usage of an EAP-based authentication method (which should only be used withEAP=ttls). π
π EXAMPLE π
π§ Eduroam
this is a configuration file for eduroam networks. this file could for example be /var/lib/connman/eduroam.config. your university's exact settings might be different. (they usually are, bestie π)
[service_eduroam]
Type = wifi
Name = eduroam
EAP = peap
Phase2 = MSCHAPV2
CACertFile = /etc/ssl/certs/UNIV_CA.crt
π Complex networking
this is a configuration file for a network providing EAP-TLS, EAP-TTLS and EAP-PEAP services. the respective SSIDs are tls_ssid, ttls_ssid and peap_ssid, and the file name could be /var/lib/connman/complex.config.
β οΈ please note that theSSIDentry is for a hexadecimal encoded SSID (e.g."SSID = 746c735f73736964"). if your SSID does not contain any exotic character, then you should use theNameentry instead (e.g."Name = tls_ssid").
[global]
Name = Example
Description = Example network configuration
[service_tls]
Type = wifi
SSID = 746c735f73736964
EAP = tls
CACertFile = /home/user/.certs/ca.pem
ClientCertFile = /home/user/devlp/.certs/client.pem
PrivateKeyFile = /home/user/.certs/client.fsid.pem
PrivateKeyPassphraseType = fsid
Identity = user
[service_ttls]
Type = wifi
Name = ttls_ssid
EAP = ttls
CACertFile = /home/user/.cert/ca.pem
Phase2 = MSCHAPV2
Identity = user
[service_peap]
Type = wifi
Name = peap_ssid
EAP = peap
CACertFile = /home/user/.cert/ca.pem
Phase2 = MSCHAPV2
Identity = user
[service_home_ethernet]
Type = ethernet
IPv4 = 192.168.1.42/255.255.255.0/192.168.1.1
IPv6 = 2001:db8::42/64/2001:db8::1
MAC = 01:02:03:04:05:06
Nameservers = 10.2.3.4,192.168.1.99
SearchDomains = my.home,isp.net
Timeservers = 10.172.2.1,ntp.my.isp.net
Domain = my.home
[service_home_wifi]
Type = wifi
Name = my_home_wifi
Passphrase = password
IPv4 = 192.168.2.2/255.255.255.0/192.168.2.1
MAC = 06:05:04:03:02:01
[service_vlan]
Type = ethernet
DeviceName = enp4s0.1
IPv4 = 192.168.1.42/255.255.255.0/192.168.1.1
β SEE ALSO β
and that's the whole page, bestie π«Ά this one's from 2015-10-15, and it lives in section 5 β the File Formats Manual β as service-name.config(5). go configure something cute. π
β¨π
π¦ where this page comes from
- alpine 3.24: connman-doc 2.0-r0 Β· GPL-2.0-only
- arch rolling: connman 2.0-1 Β· GPL-2.0-only
- debian bookworm: connman 1.41-3 Β· GPL-2.0-only
- debian trixie: connman 1.44-3 Β· GPL-2.0-only
- nixos 26.05: connman 1.43
- nixpkgs unstable: connman 1.43
- opensuse-leap 16.0: connman-doc 1.42-bp160.1.40 Β· GPL-2.0-only
- opensuse-leap 16.0: connman-doc 1.42-bp160.1.40 Β· GPL-2.0-only
- opensuse-leap 16.0: connman-doc 1.42-bp160.1.40 Β· GPL-2.0-only
- ubuntu noble: connman 1.42-5build3 Β· GPL-2.0-only
- ubuntu questing: connman 1.44-3
- ubuntu resolute: connman 1.45-3 Β· GPL-2.0-only
- ubuntu stonking: connman 2.0-2 Β· GPL-2.0-only
- Copyright (C) 2015 Intel Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms