Linux下的网络管理
在本章节中,将会依照Linux发行版本的不同介绍各个发行版下的网络管理方式
CentOS/RHEL/Fedora的网络管理
在CentOS下,默认使用NetworkManager来进行网络配置的管理,在这里十分推荐使用命令行的配置管理工具nmcli
而不是直接修改配置文件,本节将着重介绍nmcli
工具的使用方法
查看当前接口地址信息
使用以下命令:
输出示例如下:
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 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
使配置生效
使用以下命令使连接生效
UbuntuServer的网络管理
这里的网络配置仅指Ubuntu的server版本,对于Desktop用户而言,以下内容可能并不适用。
选择使用nmcli进行网络管理
Ubuntu server允许管理员选择自己喜欢的程序对网络进行管理,这里同样的以nmcli为例
安装软件
修改配置文件
为了使NetworkManager接管网络配置,需要将/etc/NetworkManager/NetworkManager.conf
中的managed=false
改为managed=true
此外,还需修改/etc/netplan/*.yaml
文件(文件名可能会不同,例如可能是00-installer-config.yaml
),请在修改前对源文件进行备份
备份后将文件内容替换为如下:
应用配置
推荐重启一次系统
重启之后即可使用nmcli进行管理
Debian网络配置
以下内容以Debian11
为例
网络配置文件夹
文件夹位于/etc/network/
在通常情况下,仅会使用到配置文件:/etc/network/interfaces
Debian的网络适配器配置均记录在此文件中,并不会以单独的文件形式存在。
配置范例
需要注意的是,如果需要修改dns,请务必在修改interfaces
文件的同时,将/etc/resolv.conf
文件中的nameserver
一并进行修改,否则dns的更改将不会生效!