Use NetworkManager to configure network settings
Contents
1 Introduction to NetworkManager
The NetworkManager is a utility to check network status and manage network connectivity. It can be used to manage both wireless and wired network.
The NetworkManager has a commandline utility nmcli, a commandline based GUI nmtui, and an X-Windows based GUI nm-connection-editor.
2 Images with NetworkManager
All the image files of Linux variants(Debian and Ubuntu) developed by FriendlyElec have this utility. This utility works with the following FriendlyElec boards:
2.1 Board Model
S5P4418 Based Boards:
NanoPi2 / NanoPC-T2 / NanoPi-S2 / Smart4418 / NanoPi2-Fire / NanoPi-M2 / NanoPi-M2A
S5P6818 Based Boards:
NanoPC-T3 / NanoPC-T3T / NanoPi-M3
Allwinner SoC Based Boards:
NanoPi-M1 /NanoPi-NEO /NanoPi-NEO-Air / NanoPi-M1-Plus / NanoPi-NEO2 / NanoPi-M1-Plus2 / NanoPi-NEO-Plus2 / NanoPi-NEO-Core / NanoPi-Duo
2.2 Applicable OS
Debian 8.x jessie (for S5P4418 and S5P6818 only)
Ubuntu core xenial 16.04.x (for all FriendlyElec's nano boards)
These OS images include those based on armhf and aarch64.
3 Setup WiFi Connection with NetworkManager
3.1 Commandline Utility (nmcli)
Command to Check WiFi:
- Check Device List
$ sudo nmcli dev
Note: if a device's status is unmanaged it means this device is not accessed by the NetworkManager and you need to clear the settings under /etc/network/interfaces and reboot.
- Start WiFi
$ sudo nmcli r wifi on
- Scan Surrounding WiFi Hotspots
$ sudo nmcli dev wifi
- Connect to WiFi Hotspot
$ sudo nmcli dev wifi connect "SSID" password "PASSWORD"
The "SSID" and "Password" need to be replaced with your actual WiFi's SSID and password.
If a connection is successfully established your board will be automatically connected to your specified WiFi on system reboot.
- If there are mutiple active WiFi devices you can specify your expected WiFi device by using the ifname option in the following command. For example if you want to operate wlan1 you can do it this way:
sudo nmcli device wifi connect "ssid" password "password" ifname wlan1
3.2 Commandline Based GUI(nmtui)
nmtui is a curses based GUI. You can start it by running the following command:
$ sudo nmtui
For more details refer to "man nmtui".
3.3 图形界面操作
在Debian的桌面环境下,有两个入口可以管理网络:
一是点击桌面任务栏右下角的网络图标,会弹出 NetworkManger 的菜单,列出当前的网络连接状态,如果有WiFi网络,会列出周边的无线热点,如下图所示:
你可以点击菜单上的无线热点,即可连接到该热点。
二是通过系统菜单 Preferences -> Network Connections进入:
4 配置静态IP地址
4.1 方法1:不使用NetworkManager管理,手动设置
以下文字介绍不使用 NetworkManager 来管理网络,改为手动设置,设置静态IP更灵活:
sudo vi /etc/NetworkManager/NetworkManager.conf
编辑 NetworkManger.conf,将ifupdown中的managed设置为false,如下所示:
[ifupdown] managed=false
再将网络设置加入 /etc/network/interfaces 即可:
$ sudo vi /etc/network/interfaces
/etc/network/interfaces文件内容如下:
# The loopback network interface auto lo iface lo inet loopback # network interface not managed by Network Manager allow-hotplug eth0 iface eth0 inet static address 192.168.2.199 netmask 255.255.255.0 gateway 192.168.2.1 dns-nameservers 192.168.2.1
4.2 方法2:使用NetworkManager设置
下面我们将以有线网络为例,介绍如何配置静态IP地址。
先通过命令看一下当前的连接信息:
pi@Smart4418SDK:~$ sudo nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 cffa785e-0425-3777-b670-092c79328a1f 802-3-ethernet eth0
上面的输出信息中,可以看到有个名称为Wired connection 1的有线连接,接下来用以下命令更改Wired connection 1为静态IP地址:
sudo nmcli connection modify 'Wired connection 1' connection.autoconnect yes ipv4.method manual ipv4.address 192.168.2.199/24 ipv4.gateway 192.168.2.1 ipv4.dns 192.168.2.1 sudo reboot
上例中,更新有线网络为静态IP, 地址为192.168.2.199,网关和DNS为192.168.2.1。
5 NetworkManager的卸载
NetworkManager虽然方便,但如果你还是觉得传统的 wpa_supplicant 网络管理方式更顺手,你可以通过以下方式卸载NetworkManager:
创建一个脚本文件例如 rmnm.sh:
$vi rmnm.sh
脚本内容如下:
#!/bin/bash apt-get --yes --force-yes remove --auto-remove --purge network-manager apt autoremove -y cat >/etc/network/interfaces <<INTERFACEEOL source-directory /etc/network/interfaces.d auto lo iface lo inet loopback allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf INTERFACEEOL cat >/etc/network/interfaces.d/eth0 <<ETH0EOLB auto eth0 iface eth0 inet dhcp hwaddress 76:92:d4:85:f3:0f ETH0EOLB
然后执行脚本:
$chmod 755 rmnm.sh $ sudo ./rmnm.sh
完成后重启即可。
6 其他参考资料
更详细的NetworkManager使用指南可参考这篇文章: NetworkManager