ConnMan是一个命令行网络管理器,专为嵌入式设备和快速解决时间而设计。它使用插件的形式是架构模块化,但是要有DHCP和NTP的支持。
命令总体概述:
connmanctl [state | technologies | enable technology|offline | disable technology|offline | tether technology on|off | tether wifi on|off ssid passphrase | services [service] | peers peer | scan technology | connect service|peer | disconnect service|peer | config service option arg... | vpnconnections [connection] | help]
Connmanctl是一个Connman命令行界面,可以以两种模式运行:普通同步命令输入和异步交互式shell。要运行特定命令,用户可以输入 connmanctl 命令 [ options ] 或者只是connmanctl,在后一种情况下,交互式shell将启动。
命令选项:
- help:帮助菜单
- state:系统属性,在线、离线、对话。
- technologies:显示系统支持的技术类型及属性。
- enable :启动特定的技术类型,以太网、wifi、3g等。
- disable :关闭特定技术类型。
- enable offline:使用脱机模式。
- disable offline:禁用脱机模式。
- tether technology on | off:启用或禁用无线网络共享、设置SSID和密码。
- services:显示所有可用服务的列表。这包括附近的无线网络,有线以太网连接,蓝牙设备等。
- services service:显示该服务的所有属性列表。例如services wifi_6834534139723_managed_none。
- scan:扫描指定的新服务,比如扫描当前wifi网络。
- connect:连接到指定的服务,wifi连接需要一个配置文件才可以。
- disconnect:断开连接到指定的服务。
- config:配置文件选项。
- monitor:侦听并显示Connman发送的DBus信号。如果当前监视的属性发生更改,则将显示更改。
- vpnconnections:显示所有可用vpn连接的列表。
- vpnconnections connect:显示连接的当前属性。
仅在交互模式下有效:
- agent on | off:启用或禁用无线代理,用于输入无线网络密码。
- vpnagent on | off:启用或禁用用于输入vpn凭据的vpn代理。
配置选项:
- autoconnect on | off:设置服务的autoconnect属性。
- ipv4 off | dhcp | manual address netmask gateway:配置服务的IPv4设置。参数off 表示不使用IPv4,dhcp表示dhcp将用于获取设置,手动表示给定参数将用作IPv4设置。
- ipv6 off | auto | manual address prefixlength gateway:配置服务的IPv6设置。参数off 表示不使用IPv6,auto表示将从网络询问设置,manual表示给定参数将用作IPv6设置。
- nameservers dns [...]:设置名称服务器列表,以空格分隔。
- timeservers server [...]:设置时间服务器列表,以空格分隔。
- domains domain [...]:设置搜索域列表,以空格分隔。
- proxy direct | auto URL | manual server[...] [--excludes server[...]]:配置服务的代理设置。direct表示不使用代理。如果使用不带参数的auto,将要求网络进行代理设置。否则,请使用URL作为代理自动配置URL。设置为手动时,第一个服务器列表用作代理服务器,第二个服务器列表的流量将从代理中排除。
监控选项:
- services [off]:侦听服务更改,例如获取IP地址的服务。
- tech [off]:监听技术变更,例如启用技术。
- manager [off]:侦听全局属性,可用技术,服务和对等方的更改。
- vpnmanager [off]:侦听添加或删除的vpn连接。
- vpnconnection [off]:侦听对vpn连接的更改,例如连接到VPN。
使用示例:
确保在使用前已开启射频和wpa服务, connman会通过dbus总线与wpa_supplicant通讯,如果没有开启,连接会报错input/output error
root@colibri-imx7-emmc:~# rfkill unblock all
root@colibri-imx7-emmc:~# wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
Successfully initialized wpa_supplicant
开启wifi服务:
root@colibri-imx7-emmc:~# connmanctl enable wifi
Error wifi: Already enabled
扫描wifi网络:
扫描二维码关注公众号,回复:
8745568 查看本文章
root@colibri-imx7-emmc:~# connmanctl scan wifi
Scan completed for wifi
返回当前结果:
root@colibri-imx7-emmc:~# connmanctl services
*AO Wired ethernet_000ec6df4c91_cable
*A TP-LINK_7982 wifi_203233bd58b8_54502d4c494e4b5f37393832_managed_psk
Guest_01C1 wifi_203233bd58b8_47756573745f30314331_managed_psk
@PHICOMM_A0 wifi_203233bd58b8_40504849434f4d4d5f4130_managed_psk
TP-LINK6666666 wifi_203233bd58b8_54502d4c494e4b36363636363636_managed_psk
TP-LINK_0EF6 wifi_203233bd58b8_54502d4c494e4b5f30454636_managed_psk
Xiaomi_83FD wifi_203233bd58b8_5869616f6d695f38334644_managed_psk
Z wifi_203233bd58b8_5a_managed_psk
ChinaNet-YQzn wifi_203233bd58b8_4368696e614e65742d59517a6e_managed_psk
TP-LINK_84E2 wifi_203233bd58b8_54502d4c494e4b5f38344532_managed_psk
TP-LINK_597E wifi_203233bd58b8_54502d4c494e4b5f35393745_managed_psk
Tenda_VIP wifi_203233bd58b8_54656e64615f564950_managed_psk
FUTE wifi_203233bd58b8_46555445_managed_psk
填写配置文件:
vi /var/lib/connman/TP-LINK_7982-psk.config
[service_wifi_203233bd58b8_54502d4c494e4b5f37393832_managed_psk]
Type = wifi
Name = TP-LINK_7982
Passphrase = 123456789
连接配置好的网络:
root@colibri-imx7-emmc:/var/lib/connman# connmanctl connect wifi_203233bd58b8_54502d4c494e4b5f37393832_managed_psk
Connected wifi_203233bd58b8_54502d4c494e4b5f37393832_managed_psk
最后连接成功。