网络

使用最小安装 ( 未安装 GUI 情况下 ) 的 Debian 将使用 network 网络管理器。

而安装 GUI 的情况下则会安装 NetworkManager

配置网络的方式与其他 Linux 系统并没有太多区别。

即便是使用最小方式安装的 Debian,也可配置使用 NetworkManager 来管理网络。

network 网络管理器

network 网络管理器是一直以来 Debian 默认使用的网络管理器。

与早期版本的 Red Hat 发行版类似,network 把网络配置写在一个文件内,并从文件内加载配置。

但与 Red Hat 系发行版不同的是,Red Hat 发行版将网卡配置文件保存在 /etc/sysconfig/network-scripts/ifcfg-*name* 文件中,而 Debian 将网络配置文件统一写在 /etc/network/interfaces 文件中。

默认情况下,在一个新安装的 Debian 中,网络是这样配置的,但 Debian 给出的最佳实现是将网络配置分网卡保存到 /etc/network/interface.d/ 下。

在我的安装好的系统中,网卡默认配置为 DHCP 方式获取 IP 地址,/etc/network/interfaces 内容如下:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens33
iface ens33 inet dhcp

当下,使用 systemd 的系统默认会使用 biosdevname 方案来对网卡命名,他的好处是网卡名不会因重启或更换物理硬件等其他情况而改变,但结果会导致网卡名不再像过去那种 eth0 一类的名字易于推断。

因此配置网卡前,可能我们需要使用 ip addr 命令 ( 来自 iproute2 工具包 ), 在我的例子中,运行如下:

root@debian:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:f7:01:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.28.128/24 brd 192.168.28.255 scope global dynamic ens33
       valid_lft 1498sec preferred_lft 1498sec
    inet6 fe80::20c:29ff:fef7:17f/64 scope link
       valid_lft forever preferred_lft forever

如此可见,本例的网卡名为 ens33

在主配置文件中,或在 /etc/network/interface.d/ 中,创建配置文件 ( 文件名不限 ),对网卡进行配置。

如需要 DHCP,写作如下:

auto ens33
iface ens33 inet dhcp

如配置静态 IPv4 地址,则写作如下:

auto ens33
iface ens33 inet static
  address 192.168.0.3/24  # IP/CIDR 形式的 IP 地址
  gateway 192.168.0.1  # 网关地址

DNS 信息填入 /etc/resolv.conf

$ nameserver 114.114.114.114

重启网卡生效

# 重启网卡
$ ifdown ens33
$ ifup ens33

文档: man interface(5)

NetworkManager

NetworkManager 是一个由 GNOME 项目开发的,使得 Linux 的网络配置尽可能简单,开箱即用而开发的软件包。

目前 Red Hat 发行版已经自带并默认使用 NetworkManager 来管理网络。

如何查看当前的 Debian 安装是否使用 NetworkManager?

  • 使用 nmclinmtui 命令,如果运行了 NetworkManager 的管理工具,则当前系统可能在使用 NetworkManager 管理网络

  • 使用 systemctl status network-manager 查看服务状态,如果具有该服务,并且服务正在运行,则说明当前系统正在使用 NetworkManager 管理网络

NetworkManager 与传统的 network 网络管理器不可同时使用,如果使用两者同时管理同一网卡会造成冲突。

安装

最小化安装的 Debian 不会安装 NetworkManager,若要使用 NetworkManager,需要安装软件包。

$ apt install network-manager

屏幕输出

root@debian:~# apt install network-manager
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  crda dns-root-data dnsmasq-base iw libbluetooth3 libgudev-1.0-0 libjansson4
  libjim0.77 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnl-3-200
  libnl-genl-3-200 libnl-route-3-200 libnm0 libpcap0.8 libpcsclite1
  libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libqmi-glib5
  libqmi-proxy libteamdctl0 modemmanager policykit-1 ppp usb-modeswitch
  usb-modeswitch-data wireless-regdb wpasupplicant
Suggested packages:
  pcscd libteam-utils comgt wvdial wpagui libengine-pkcs11-openssl
The following NEW packages will be installed:
  crda dns-root-data dnsmasq-base iw libbluetooth3 libgudev-1.0-0 libjansson4
  libjim0.77 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnl-3-200
  libnl-genl-3-200 libnl-route-3-200 libnm0 libpcap0.8 libpcsclite1
  libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libqmi-glib5
  libqmi-proxy libteamdctl0 modemmanager network-manager policykit-1 ppp
  usb-modeswitch usb-modeswitch-data wireless-regdb wpasupplicant
0 upgraded, 32 newly installed, 0 to remove and 0 not upgraded.
Need to get 9,152 kB of archives.
After this operation, 31.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.163.com/debian buster/main amd64 libbluetooth3 amd64 5.50-1.2~deb10u1 [100 kB]
Get:2 http://mirrors.163.com/debian buster/main amd64 libjansson4 amd64 2.12-1 [38.0 kB]
Get:3 http://mirrors.163.com/debian buster/main amd64 libmm-glib0 amd64 1.10.0-1 [942 kB]

--- # 省略部分输出

Setting up libqmi-proxy (1.22.0-1.2) ...
Setting up network-manager (1.14.6-2+deb10u1) ...

The following network interfaces were found in /etc/network/interfaces
which means they are currently configured by ifupdown:
- ens33
If you want to manage those interfaces with NetworkManager instead
remove their configuration from /etc/network/interfaces.

Created symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service →
 /lib/systemd/system/NetworkManager-dispatcher.service.
Created symlink /etc/systemd/system/network-online.target.wants/NetworkManager-w
ait-online.service → /lib/systemd/system/NetworkManager-wait-online.service.
Created symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.servi
ce → /lib/systemd/system/NetworkManager.service.
Setting up modemmanager (1.10.0-1) ...
Created symlink /etc/systemd/system/dbus-org.freedesktop.ModemManager1.service →
 /lib/systemd/system/ModemManager.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ModemManager.service
 → /lib/systemd/system/ModemManager.service.
Processing triggers for systemd (241-7~deb10u5) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for dbus (1.12.20-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
root@debian:~#

安装 NetworkManager 后,安装过程提示在原有 /etc/network/interfaces 中的网卡不会被自动由 NetworkManager 配置。

配置

迁移

NetworkManager 会带来两个新的网络配置工具,nmclinmtui

但 NetworkManager 会覆盖已有的所有网络配置,包括 DNS 在内,因此所有配置要使用 NetworkManager 配套工具进行。

如果要整体对网络管理器进行迁移,需要进行一番操作。

在继续使用之前,我们将原配置文件的网卡配置注释。

$ root@debian:~# vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

#allow-hotplug ens33  # 在源配置前加 # 注释
#iface ens33 inet dhcp

接下来重启 networkingnetwork-manager 服务

$ systemctl restart networking
$ systemctl restart network-manager

nmtui

nmtui 是一个图形化方式配置网络的工具,易于上手。

在终端中输入

$ nmtui

即可打开 nmtui 工具。

                           ┌─┤ NetworkManager TUI ├──┐
                           │                         │ 
                           │ Please select an option │ 
                           │                         │ 
                           │ Edit a connection       │ 
                           │ Activate a connection   │ 
                           │ Set system hostname     │ 
                           │                         │ 
                           │ Quit                    │ 
                           │                         │ 
                           │                    <OK> │ 
                           │                         │ 
                           └─────────────────────────┘

三个选项分别为:

  • 编辑连接

  • 启用连接

  • 设置系统主机名

  • 退出

选择 Edit a connection 进入编辑

                    ┌───────────────────────────────────────┐
                    │                                       │ 
                    │ ┌─────────────────────────┐           │ 
                    │ │ Ethernet              ↑ │ <Add>     │ 
                    │ │   ens33               ▒ │           │ 
                    │ │   Wired connection 1  ▒ │ <Edit...> │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │ <Delete>  │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▮ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ▒ │           │ 
                    │ │                       ↓ │ <Back>    │ 
                    │ └─────────────────────────┘           │ 
                    │                                       │ 
                    └───────────────────────────────────────┘

迁移网络后,出现了两个配置,实际上他们配置的是一张网卡,可以选择其中一个删除。

选中一个连接按 Enter 键后,可以很轻松的修改配置。

修改好配置后,回到第一个界面,进入 Activate a connection,选择修改的连接,按两下 Enter 键重新激活即可。

扩展阅读: Red Hat Enterprise Linux 7 联网指南

最后更新于