跳转至

Linux下的网络管理

在本章节中,将会依照Linux发行版本的不同介绍各个发行版下的网络管理方式

CentOS/RHEL/Fedora的网络管理

在CentOS下,默认使用NetworkManager来进行网络配置的管理,在这里十分推荐使用命令行的配置管理工具nmcli而不是直接修改配置文件,本节将着重介绍nmcli工具的使用方法

查看当前接口地址信息

使用以下命令:

ip a

输出示例如下:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:0c:29:67:2f:4c brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.51/24 brd 192.168.1.255 scope global eno16777736
 valid_lft forever preferred_lft forever
 inet6 fe80::20c:29ff:fe67:2f4c/64 scope link 
 valid_lft forever preferred_lft forever

nmcli工具简介

nmcli 是一个非常丰富和灵活的命令行工具。nmcli使用的情况有:

  • 设备 – 正在使用的网络接口
  • 连接 – 一组配置设置,对于一个单一的设备可以有多个连接,可以在连接之间切换。

例如某主机有且仅有一张名为ens0的网络适配器
系统管理员为这张网卡提供了两种配置:
a.DHCP 或 b.Modify
这里的网络适配器就是上文中的“设备”
而两种配置为“连接”

nmcli的这个特性可以允许系统管理员为网卡创建多种预设配置,使设备在不同配置间灵活切换

同时,在安装有bash-completion的Linux系统中,nmcli能支持使用Tab键进行补全,可以通过Tab键查看到有哪些可用选项

如果本文中并未提及的内容,可以使用man nmcli来查看详细文档,或移步至RedHat文档页查阅更详细的配置

nmcli 查看连接

查看所有连接

nmcli connection show

查看特定连接信息

nmcli connection show 

设置网络连接

添加一个网络连接

命令格式如下

nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet

  • nmcli connection add可以用于添加一个网络连接

  • con-name 连接名可以用于设置连接名

  • ifname 网络适配器(网络设备)用于指定这个连接是为哪个设备创建的

  • type用于声明连接类型

设置一个网络连接

nmcli connection modify 可以用于编辑网络连接

设置一个静态地址的连接

例:为 eth0 设置一个地址为 192.168.1.2/24 网关和dns都为 192.168.1.1 的网络连接

nmcli connection modify eth0 ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1 autoconnect yes
设置一个自动的连接

在可以使用DHCP的情况下可以使用以下命令将连接设置为使用DHCP

nmcli connection modify eth0 ipv4.method auto

使配置生效

使用以下命令使连接生效

nmcli connection up 设备名

UbuntuServer的网络管理

这里的网络配置仅指Ubuntu的server版本,对于Desktop用户而言,以下内容可能并不适用。

选择使用nmcli进行网络管理

Ubuntu server允许管理员选择自己喜欢的程序对网络进行管理,这里同样的以nmcli为例

安装软件

apt install network-manager

修改配置文件

为了使NetworkManager接管网络配置,需要将/etc/NetworkManager/NetworkManager.conf中的managed=false改为managed=true

此外,还需修改/etc/netplan/*.yaml文件(文件名可能会不同,例如可能是00-installer-config.yaml),请在修改前对源文件进行备份

cp /etc/netplan/*.yaml /etc/netplan/*.yaml.bak

备份后将文件内容替换为如下:

network:
  version: 2
  renderer: NetworkManager

应用配置

推荐重启一次系统

systemctl restart network-manager # 重启NetworkManager
netplan apply # 生效netplan配置
reboot # 重启系统

重启之后即可使用nmcli进行管理

Debian网络配置

以下内容以Debian11为例

网络配置文件夹

文件夹位于/etc/network/ 在通常情况下,仅会使用到配置文件:/etc/network/interfaces Debian的网络适配器配置均记录在此文件中,并不会以单独的文件形式存在。

配置范例

需要注意的是,如果需要修改dns,请务必在修改interfaces文件的同时,将/etc/resolv.conf文件中的nameserver一并进行修改,否则dns的更改将不会生效!

静态网络地址配置

# Generated by SolusVM

 auto lo
  iface lo inet loopback

 auto eth0
  iface eth0 inet static # (1)
   address 192.168.1.5
   gateway 192.168.1.1
   netmask 255.255.255.0
   dns-nameservers 8.8.8.8 8.8.4.4
Debian的网络配置文件非常依赖缩进,请确保缩进正确!