cim*_*cim 5 network-manager networking 16.04
作为 Ubuntu 16.04 服务器自动构建过程的一部分,我nmcli用来创建网络配置文件,包括无线。这是在没有窗口管理器 FWIW 的无头系统上。
我注意到,当我创建一个配置文件并激活它时,如果接入点 (AP) 在激活时不存在,它将永远不会自动连接,无论它随后是否可用。
我试图缩小问题的原因,并认为这可能与 dbus 注册有关。
个人资料创建:
sudo nmcli con add con-name "aNetwork" ifname wlp2s0 type wifi ssid "aNetwork"
sudo nmcli con modify "aNetwork" wifi-sec.key-mgmt wpa-psk
sudo nmcli con modify "aNetwork" wifi-sec.psk aPassword
sudo nmcli con up id "aNetwork"
Run Code Online (Sandbox Code Playgroud)
从系统日志中,它似乎正确添加并将其设置为扫描:
ug 12 08:55:06 bacer-104 NetworkManager[585]: <info> [1565600106.4111] Config: added 'ssid' value 'aNetwork'
Aug 12 08:55:06 bacer-104 NetworkManager[585]: <info> [1565600106.4111] Config: added 'scan_ssid' value '1'
Aug 12 08:55:06 bacer-104 NetworkManager[585]: <info> [1565600106.4112] Config: added 'key_mgmt' value 'WPA-PSK'
Aug 12 08:55:06 bacer-104 NetworkManager[585]: <info> [1565600106.4112] Config: added 'psk' value '<omitted>'
Aug 12 08:55:06 bacer-104 NetworkManager[585]: <info> [1565600106.4128] sup-iface[0x1b0ff90,wlp2s0]: config: set interface ap_scan to 1
Run Code Online (Sandbox Code Playgroud)
但是,在我使 AP 可见后,它永远不会扫描/连接,但是当在创建时存在 ESSID 时激活连接时,我得到以下条目:
NetworkManager[489]: <debug> [1565287017.8330] device[0x1fb95f0] (wlp2s0): add_pending_action (3): 'scan'
Run Code Online (Sandbox Code Playgroud)
但是当连接被激活 * 并且 ESSID 在创建时不存在时,我得到了这个:
NetworkManager[489]: <debug> [1565287064.3891] device[0x1fb95f0] (wlp2s0): add_pending_action (1): 'scan'
NetworkManager[489]: <debug> [1565287065.4580] device[0x1fb95f0] (wlp2s0): remove_pending_action (0): 'scan'
Run Code Online (Sandbox Code Playgroud)
内容为/etc/NetworkManager/system-connection/aNetwork:
[connection]
id=aNetwork
uuid=6f24046b-b265-46d5-b89f-59ec802ce0af
type=wifi
interface-name=wlp2s0
permissions=
secondaries=
[wifi]
mac-address-blacklist=
mac-address-randomization=0
seen-bssids=
ssid=aNetwork
[wifi-security]
group=
key-mgmt=wpa-psk
pairwise=
proto=
psk=aPassword
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
Run Code Online (Sandbox Code Playgroud)
我已经diff编辑了在存在和不存在 ESSID 并且没有区别的情况下创建的配置文件之间的内容。
查看nmcli con show aNetwork两者之间的输出显示了很大的差异:
断开连接时的输出,在创建/激活时没有ESSID:
connection.id: aNetwork
connection.uuid: 9dfacadb-f52a-453b-b6f1-2fbae6426d79
connection.interface-name: wlp2s0
connection.type: 802-11-wireless
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 0
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries:
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-11-wireless.ssid: aNetwork
802-11-wireless.mode: --
802-11-wireless.band: --
802-11-wireless.channel: 0
802-11-wireless.bssid: --
802-11-wireless.rate: 0
802-11-wireless.tx-power: 0
802-11-wireless.mac-address: --
802-11-wireless.cloned-mac-address: --
802-11-wireless.mac-address-blacklist:
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu: auto
802-11-wireless.seen-bssids:
802-11-wireless.hidden: no
802-11-wireless.powersave: default (0)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: --
802-11-wireless-security.proto:
802-11-wireless-security.pairwise:
802-11-wireless-security.group:
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <hidden>
802-11-wireless-security.wep-key1: <hidden>
802-11-wireless-security.wep-key2: <hidden>
802-11-wireless-security.wep-key3: <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type: 0 (unknown)
802-11-wireless-security.psk: <hidden>
802-11-wireless-security.psk-flags: 0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
ipv4.method: auto
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses:
ipv4.gateway: --
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (default)
ipv6.dns-priority: 0
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
Run Code Online (Sandbox Code Playgroud)断开连接且创建/激活时存在 ESSID时的输出为:
connection.id: aNetwork
connection.uuid: 10d2d80a-4f64-4466-9e4e-6190e4628d45
connection.interface-name: wlp2s0
connection.type: 802-11-wireless
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1565600053
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries:
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-11-wireless.ssid: aNetwork
802-11-wireless.mode: --
802-11-wireless.band: --
802-11-wireless.channel: 0
802-11-wireless.bssid: --
802-11-wireless.rate: 0
802-11-wireless.tx-power: 0
802-11-wireless.mac-address: --
802-11-wireless.cloned-mac-address: --
802-11-wireless.mac-address-blacklist:
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu: auto
802-11-wireless.seen-bssids: 9A:9B:CB:54:C4:5A
802-11-wireless.hidden: no
802-11-wireless.powersave: default (0)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: --
802-11-wireless-security.proto:
802-11-wireless-security.pairwise:
802-11-wireless-security.group:
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <hidden>
802-11-wireless-security.wep-key1: <hidden>
802-11-wireless-security.wep-key2: <hidden>
802-11-wireless-security.wep-key3: <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type: 0 (unknown)
802-11-wireless-security.psk: <hidden>
802-11-wireless-security.psk-flags: 0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
ipv4.method: auto
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options: (default)
ipv4.dns-priority: 0
ipv4.addresses:
ipv4.gateway: --
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (default)
ipv6.dns-priority: 0
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
GENERAL.NAME: aNetwork
GENERAL.UUID: 10d2d80a-4f64-4466-9e4e-6190e4628d45
GENERAL.DEVICES: wlp2s0
GENERAL.STATE: activated
GENERAL.DEFAULT: no
GENERAL.DEFAULT6: no
GENERAL.VPN: no
GENERAL.ZONE: --
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/15
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/11
GENERAL.SPEC-OBJECT: /org/freedesktop/NetworkManager/AccessPoint/12
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 192.168.179.29/24
IP4.GATEWAY: 192.168.179.1
IP4.DNS[1]: 192.168.179.1
DHCP4.OPTION[1]: dhcp_rebinding_time = 18900
DHCP4.OPTION[2]: requested_domain_search = 1
DHCP4.OPTION[3]: requested_host_name = 1
DHCP4.OPTION[4]: requested_time_offset = 1
DHCP4.OPTION[5]: requested_domain_name = 1
DHCP4.OPTION[6]: requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[7]: requested_broadcast_address = 1
DHCP4.OPTION[8]: requested_wpad = 1
DHCP4.OPTION[9]: requested_netbios_scope = 1
DHCP4.OPTION[10]: next_server = 192.168.179.1
DHCP4.OPTION[11]: expiry = 1565621653
DHCP4.OPTION[12]: requested_interface_mtu = 1
DHCP4.OPTION[13]: requested_subnet_mask = 1
DHCP4.OPTION[14]: routers = 192.168.179.1
DHCP4.OPTION[15]: dhcp_message_type = 5
DHCP4.OPTION[16]: ip_address = 192.168.179.29
DHCP4.OPTION[17]: broadcast_address = 192.168.179.255
DHCP4.OPTION[18]: requested_static_routes = 1
DHCP4.OPTION[19]: dhcp_renewal_time = 10800
DHCP4.OPTION[20]: requested_domain_name_servers = 1
DHCP4.OPTION[21]: requested_ms_classless_static_routes = 1
DHCP4.OPTION[22]: domain_name_servers = 192.168.179.1
DHCP4.OPTION[23]: subnet_mask = 255.255.255.0
DHCP4.OPTION[24]: dhcp_lease_time = 21600
DHCP4.OPTION[25]: requested_ntp_servers = 1
DHCP4.OPTION[26]: requested_netbios_name_servers = 1
DHCP4.OPTION[27]: ntp_servers = 192.168.179.1
DHCP4.OPTION[28]: network_number = 192.168.179.0
DHCP4.OPTION[29]: requested_routers = 1
DHCP4.OPTION[30]: dhcp_server_identifier = 192.168.179.1
IP6.ADDRESS[1]: fd00::1:79ff:2a88:6b89:f5a3/64
IP6.ADDRESS[2]: fd00::1:53f4:ea8b:a2c6:88bc/64
IP6.ADDRESS[3]: fe80::42af:506a:16:1256/64
IP6.GATEWAY:
IP6.ROUTE[1]: dst = fd00:0:0:1::/64, nh = fe80::9a9b:cbff:fe54:c457, mt = 600
IP6.DNS[1]: fd00::1:9a9b:cbff:fe54:c457
DHCP6.OPTION[1]: requested_dhcp6_domain_search = 1
DHCP6.OPTION[2]: dhcp6_name_servers = fd00::1:9a9b:cbff:fe54:c457
DHCP6.OPTION[3]: dhcp6_server_id = 0:3:0:1:98:9b:cb:54:c4:57
DHCP6.OPTION[4]: requested_dhcp6_client_id = 1
DHCP6.OPTION[5]: requested_dhcp6_name_servers = 1
DHCP6.OPTION[6]: dhcp6_client_id = 0:4:cd:4c:df:d9:4d:62:c6:97:e1:a2:ed:b7:68:6a:be:9c
Run Code Online (Sandbox Code Playgroud)注意所有GENERAL.条目,包括GENERAL.STATE Activated和 条目DBUS-PATH,CON-PATH所以我相信这是导致连接无法自动连接的原因,但我真的不知道从哪里开始。
我需要:
我如何从这里开始?
小智 4
我遇到了同样的问题,在尝试调试一段时间后,我进入 Network Manager IRC 频道并直接询问他们。对于 Wi-Fi 网络,这是故意的,限制来自此检查:
https://github.com/NetworkManager/NetworkManager/blob/master/src/devices/wifi/nm-device-wifi.c#L999
引用支票上方的评论:
/* Don't autoconnect to networks that have been tried at least once
* but haven't been successful, since these are often accidental choices
* from the menu and the user may not know the password.
*/
Run Code Online (Sandbox Code Playgroud)
其推理值得怀疑,但事实就是如此。如果您查看/var/lib/NetworkManager/timestamps,您会发现对于它从未连接到的网络,时间戳值为0。据我所知,无法从 D-Bus/nmcli 更改此值,因此您必须编辑该文件并最终重新启动 NetworkManager(不知道该文件是在更改时运行还是定期运行) 。
就我而言,我们正在为嵌入式发行版构建网络管理器,并有机会在此过程中对其进行修补,因此我注释掉了该检查,它会自动连接到以前从未连接过的网络。
| 归档时间: |
|
| 查看次数: |
1885 次 |
| 最近记录: |