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

From FriendlyELEC WiKi
Jump to: navigation, search
(NetworkManager的卸载)
(updated by API)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[Use NetworkManager to configure network settings|English]]
 +
 
== 什么是NetworkManager==
 
== 什么是NetworkManager==
 
NetworkManager是一个检测网络、自动连接网络的程序(网络管理器),无论是无线网络,还是有线连接,它都可以令您轻松管理。<br />
 
NetworkManager是一个检测网络、自动连接网络的程序(网络管理器),无论是无线网络,还是有线连接,它都可以令您轻松管理。<br />
Line 42: Line 44:
 
请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。<br />
 
请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。<br />
 
连接成功后,下次开机,WiFi 也会自动连接。<br />
 
连接成功后,下次开机,WiFi 也会自动连接。<br />
 +
* 断开WiFi
 +
<syntaxhighlight lang="bash">
 +
$ sudo nmcli dev disconnect wlan0
 +
</syntaxhighlight>
 
* 多个WiFi硬件时,可以用 ifname参数指定要操作的WiFi设备,例如wlan1:
 
* 多个WiFi硬件时,可以用 ifname参数指定要操作的WiFi设备,例如wlan1:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 67: Line 73:
 
[[File:NetworkManangerMenu.png|frameless|400px|NetworkManangerMenu]]<br />
 
[[File:NetworkManangerMenu.png|frameless|400px|NetworkManangerMenu]]<br />
  
==使用NetworkManager管理有线网络==
+
==配置静态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>
  
TODO
+
再将网络设置加入 /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的卸载==
Line 111: Line 161:
  
 
完成后重启即可。<br />
 
完成后重启即可。<br />
 +
 +
==Disable WLan if Wired/Cable Network is available==
 +
Please refre to: https://superuser.com/questions/233448/disable-wlan-if-wired-cable-network-is-available
  
 
==其他参考资料==
 
==其他参考资料==
  
更详细的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 />
+
更详细的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 />
 +
[https://ubuntu.com/core/docs/networkmanager/configure-wifi-connections configure-wifi-connections]<br />

Latest revision as of 11:05, 22 October 2024

English

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
$ sudo nmcli dev disconnect wlan0
  • 多个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 Disable WLan if Wired/Cable Network is available

Please refre to: https://superuser.com/questions/233448/disable-wlan-if-wired-cable-network-is-available

7 其他参考资料

更详细的NetworkManager使用指南可参考这些文章: NetworkManager
configure-wifi-connections