Difference between revisions of "Use NetworkManager to configure network settings"

From FriendlyELEC WiKi
Jump to: navigation, search
(Created page with "查看中文")
 
Line 1: Line 1:
 
[[Use NetworkManager to configure network settings/zh|查看中文]]
 
[[Use NetworkManager to configure network settings/zh|查看中文]]
 +
 +
== 什么是NetworkManager==
 +
NetworkManager是一个检测网络、自动连接网络的程序(网络管理器),无论是无线网络,还是有线连接,它都可以令您轻松管理。<br />
 +
NetworkManager包含了命令行管理工具(nmcli)、基于命令行终端的图形界面(nmtui) 和 基于X-Windows的图形界面 (nm-connection-editor)。<br />
 +
 +
==哪些系统预装了NetworkManager==
 +
FriendlyELEC所有NanoPi系列的开发板的Linux系统(包括Debian和Ubuntu) 均预装了 NetworkManager 作为网络管理器,涵盖但不限于以下开发板型号:<br />
 +
====开发板型号====
 +
S5P4418系列:<br />
 +
NanoPi2 / NanoPC-T2 / NanoPi-S2 / Smart4418 / NanoPi2-Fire / NanoPi-M2 / NanoPi-M2A<br />
 +
S5P6818系列:<br />
 +
NanoPC-T3 / NanoPC-T3T / NanoPi-M3<br />
 +
全志平台:<br />
 +
NanoPi-M1 /NanoPi-NEO /NanoPi-NEO-Air / NanoPi-M1-Plus / NanoPi-NEO2 / NanoPi-M1-Plus2 / NanoPi-NEO-Plus2 / NanoPi-NEO-Core / NanoPi-Duo<br />
 +
====OS版本====
 +
Debian 8.x jessie  (限S5P4418和S5P6818平台)<br />
 +
Ubuntu core xenial 16.04.x (所有平台) <br />
 +
以上OS包含armhf和aarch64架构版本。
 +
 +
==使用NetworkManager连接WiFi==
 +
===命令行操作(nmcli)===
 +
要连接WiFi,相关的命令如下:
 +
* 查看网络设备列表
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmcli dev
 +
</syntaxhighlight>
 +
注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.
 +
 +
* 开启WiFi
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmcli r wifi on
 +
</syntaxhighlight>
 +
 +
* 扫描附近的 WiFi 热点
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmcli dev wifi
 +
</syntaxhighlight>
 +
 +
* 连接到指定的 WiFi 热点
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmcli dev wifi connect "SSID" password "PASSWORD"
 +
</syntaxhighlight>
 +
请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。<br />
 +
连接成功后,下次开机,WiFi 也会自动连接。<br />
 +
* 多个WiFi硬件时,可以用 ifname参数指定要操作的WiFi设备,例如wlan1:
 +
<syntaxhighlight lang="bash">
 +
sudo nmcli device wifi connect "ssid" password "password" ifname wlan1
 +
</syntaxhighlight>
 +
 +
===命令行下的图形化操作(nmtui)===
 +
nmtui 是一个基于curses的图形化前端界面,输入以下命令即可进入:
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmtui
 +
</syntaxhighlight>
 +
使用信息参见man nmtui。
 +
 +
===图形界面操作===
 +
在Debian的桌面环境下,有两个入口可以管理网络: <br />
 +
 +
一是点击桌面任务栏右下角的网络图标,会弹出 NetworkManger 的菜单,列出当前的网络连接状态,如果有WiFi网络,会列出周边的无线热点,如下图所示:<br />
 +
 +
[[File:NetworkManagerIcon.png|frameless|400px|NetworkManagerIcon]]<br />
 +
 +
你可以点击菜单上的无线热点,即可连接到该热点。
 +
 +
二是通过系统菜单 Preferences -> Network Connections进入:<br />
 +
 +
[[File:NetworkManangerMenu.png|frameless|400px|NetworkManangerMenu]]<br />
 +
 +
==配置静态IP地址==
 +
===方法1:不使用NetworkManager管理,手动设置===
 +
以下文字介绍不使用 NetworkManager 来管理网络,改为手动设置,设置静态IP更灵活:
 +
<syntaxhighlight lang="bash">
 +
sudo vi /etc/NetworkManager/NetworkManager.conf
 +
</syntaxhighlight>
 +
编辑 NetworkManger.conf,将ifupdown中的managed设置为false,如下所示:
 +
<syntaxhighlight lang="bash">
 +
[ifupdown]
 +
managed=false
 +
</syntaxhighlight>
 +
 +
再将网络设置加入 /etc/network/interfaces 即可:
 +
<syntaxhighlight lang="bash">
 +
$ sudo vi /etc/network/interfaces
 +
</syntaxhighlight>
 +
 +
/etc/network/interfaces文件内容如下:
 +
<syntaxhighlight lang="bash">
 +
# 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
 +
</syntaxhighlight>
 +
 +
===方法2:使用NetworkManager设置===
 +
下面我们将以有线网络为例,介绍如何配置静态IP地址。<br />
 +
先通过命令看一下当前的连接信息:
 +
<syntaxhighlight lang="bash">
 +
pi@Smart4418SDK:~$ sudo nmcli connection show
 +
NAME                UUID                                  TYPE            DEVICE
 +
Wired connection 1  cffa785e-0425-3777-b670-092c79328a1f  802-3-ethernet  eth0
 +
</syntaxhighlight>
 +
 +
上面的输出信息中,可以看到有个名称为Wired connection 1的有线连接,接下来用以下命令更改Wired connection 1为静态IP地址:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
上例中,更新有线网络为静态IP, 地址为192.168.2.199,网关和DNS为192.168.2.1。
 +
 +
== NetworkManager的卸载==
 +
NetworkManager虽然方便,但如果你还是觉得传统的 wpa_supplicant 网络管理方式更顺手,你可以通过以下方式卸载NetworkManager:<br />
 +
<br />
 +
创建一个脚本文件例如 rmnm.sh:
 +
<syntaxhighlight lang="bash">
 +
$vi rmnm.sh
 +
</syntaxhighlight>
 +
 +
脚本内容如下:
 +
<syntaxhighlight lang="bash">
 +
#!/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
 +
</syntaxhighlight>
 +
 +
然后执行脚本:
 +
<syntaxhighlight lang="bash">
 +
$chmod 755 rmnm.sh
 +
$ sudo ./rmnm.sh
 +
</syntaxhighlight>
 +
 +
完成后重启即可。<br />
 +
 +
==其他参考资料==
 +
 +
更详细的NetworkManager使用指南可参考这篇文章: [https://wiki.archlinux.org/index.php?title=NetworkManager_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&mobileaction=toggle_view_desktop NetworkManager]<br />

Revision as of 14:59, 18 June 2017

查看中文

1 什么是NetworkManager

NetworkManager是一个检测网络、自动连接网络的程序(网络管理器),无论是无线网络,还是有线连接,它都可以令您轻松管理。
NetworkManager包含了命令行管理工具(nmcli)、基于命令行终端的图形界面(nmtui) 和 基于X-Windows的图形界面 (nm-connection-editor)。

2 哪些系统预装了NetworkManager

FriendlyELEC所有NanoPi系列的开发板的Linux系统(包括Debian和Ubuntu) 均预装了 NetworkManager 作为网络管理器,涵盖但不限于以下开发板型号:

2.1 开发板型号

S5P4418系列:
NanoPi2 / NanoPC-T2 / NanoPi-S2 / Smart4418 / NanoPi2-Fire / NanoPi-M2 / NanoPi-M2A
S5P6818系列:
NanoPC-T3 / NanoPC-T3T / NanoPi-M3
全志平台:
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 OS版本

Debian 8.x jessie (限S5P4418和S5P6818平台)
Ubuntu core xenial 16.04.x (所有平台)
以上OS包含armhf和aarch64架构版本。

3 使用NetworkManager连接WiFi

3.1 命令行操作(nmcli)

要连接WiFi,相关的命令如下:

  • 查看网络设备列表
$ sudo nmcli dev

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.

  • 开启WiFi
$ sudo nmcli r wifi on
  • 扫描附近的 WiFi 热点
$ sudo nmcli dev wifi
  • 连接到指定的 WiFi 热点
$ sudo nmcli dev wifi connect "SSID" password "PASSWORD"

请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。

  • 多个WiFi硬件时,可以用 ifname参数指定要操作的WiFi设备,例如wlan1:
sudo nmcli device wifi connect "ssid" password "password" ifname wlan1

3.2 命令行下的图形化操作(nmtui)

nmtui 是一个基于curses的图形化前端界面,输入以下命令即可进入:

$ sudo nmtui

使用信息参见man nmtui。

3.3 图形界面操作

在Debian的桌面环境下,有两个入口可以管理网络:

一是点击桌面任务栏右下角的网络图标,会弹出 NetworkManger 的菜单,列出当前的网络连接状态,如果有WiFi网络,会列出周边的无线热点,如下图所示:

NetworkManagerIcon

你可以点击菜单上的无线热点,即可连接到该热点。

二是通过系统菜单 Preferences -> Network Connections进入:

NetworkManangerMenu

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