CentOS网络管理

nmcli

  • device show 查看网卡状态,命令可以缩写
  • connection 网络连接(记录地址信息)
    • add 增加连接
    • modify 修改连接
    • delete 删除连接

nmtui-edit 使用类图形化管理网络
nm-connection-editor 使用图形化管理网络(需要安装图形化界面)

系统不能识别网卡时,删除/etc/udev/rules.d/70-persent-network.rules文件,重启系统

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
nmcli	#查看连接状态
nmcli connection show #显示所有连接
nmcli connection show --active #显示所有活动的连接状态
nmcli connection show "ens33" #显示网络连接配置
nmcli connection add help #查看帮助
nmcli connection modify "Wired connection 2" connection.id eth2 #修改配置名称
nmcli connection edit "Wired connection 2" #进入命令行模式修改配置
nmcli connection reload #重新加载配置
nmcli connection up test2 #启用名为test2的配置
nmcli connection down test2 #禁用名为test2的配置,注意一个网卡可以有多个配置。
nmcli device status #显示设备状态
nmcli device show ens33 #显示网络接口属性
nmcli device disconnect ens33 #禁用ens33网卡,物理网卡
nmcli device connect ens33 #启用ens33网卡

端口聚合

2个端口聚合使用bond,2-8个端口聚合使用team

Bond

nmcli创建Bond(推荐)

创建接口,设置模式:nmcli conn add type bond ifname bond1 mode 1
添加成员接口:nmcli conn add type bond-slave ifname eth1 master bond1
修改bond接口地址:nmcli conn modify bond-bond1 ipv4.method manual ipv4.address "192.168.140.101/24"

配置文件创建Bond

创建bond0网卡配置文件

1
2
3
4
5
6
7
8
vim /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0 #虚拟网卡设备名称
BOOTPROTO=none #使用静态IP
BONDING_OPTS="mode=1 miimon=100" #bond模式设定,此例使用mode1模式 miimon=100 为每隔100ms监控主网卡的状态
IPADDR=192.168.20.100 #IP地址
PREFIX=24 #子网掩码
GATEWAY=192.168.20.2 #默认网关
DNS1=114.114.114.114 #DNS服务器

修改2个物理网卡配置文件

1
2
3
4
vim /etc/sysconfig/network-scripts/ifcfg-ethx
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Bond模式

非聚合模式 mode=1(active-backup)主-备份策略 只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备
静态聚合模式 mode=5(balance-tlb)适配器传输负载均衡 不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
mode=6(balance-alb) 适配器适应性负载均衡 该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
mode=0(balance-rr)平衡轮询策略 传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕
mode=2(balance-xor)平衡策略 基于指定的传输HASH策略传输数据包
mode=3(broadcast)广播策略 在每个slave接口上传输每个数据包,此模式仅提供了容错能力
动态聚合模式 mode=4(802.3ad)IEEE 802.3ad 动态链接聚合

拆除Bond

关闭Bond接口:nmcli conn down bond-bond1
删除Bond成员接口:nmcli conn delete bond-slave-eth1
删除Bond接口:nmcli conn delete bond-bond1

查看Bond状态

通过proc目录查看:cat /proc/net/bonding/bond0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@localhost ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v5.14.0-570.el9.x86_64

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens12
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: ens12
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 0c:da:41:1d:82:88
Slave queue ID: 0

Slave Interface: ens13
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 0c:da:41:1d:cf:58
Slave queue ID: 0

创建Team

创建team聚合接口:nmcli connection add type team con-name CNAME ifname INAME config ‘{“runner”: {“name”: “METHOD”}}’
CNAME:连接名称,一般从team0开始
INAME:接口名称,一般与CNAME相同
METHOD:聚合选项,broadcast、roundrobin、activebackup、loadbalance、lacp

  • broadcast:相当于集线器
  • roundrobin:轮询使用,每个网卡使用一段时间
  • activebackup:主备模式
  • loadbalance:负载均衡模式
  • lacp:使用802.11ac协议动态聚合,需要交换机支持

将网卡加入聚合接口:nmcli connection add type team-slave con-name CNAME ifname INAME master TEAM
CNAME:连接名称,一般为teamX-ethX
INAME:要加入聚合组的网卡名称
TEAM:聚合组名

nmcli命令行模式

nmcli connection edit "Wired connection 2"进入命令行模式修改配置

命令说明

1
2
3
4
5
6
7
8
9
describe [<setting>.<prop>]	#查看参数介绍
set [<setting>.<prop> <value>] #设置参数
remove <setting>[.<prop>] | <prop> #删除参数
print [all | <setting>[.<prop>]] #查看参数
goto [<setting> | <prop>] #进入设置,例如goto connection,然后可以用set id eth2来配置名称
back #返回上一级设置
activate [<ifname>] #激活当前配置到接口
save #保存
quit #退出

常用设置

connection

  • connection.id 配置名称
  • connection.interface-name 配置绑定的接口
  • connection.autoconnect 自动连接
  • connection.master 主接口,bond和team会用到
  • connection.slave-type 从接口类型,bond和team会用到

802-3-ethernet

  • 802-3-ethernet.mac-address MAC地址,网卡MAC变化后需要删除MAC地址才能激活

ipv4/ipv6

  • ipv4.method/ipv6.method 地址获取模式,取值为auto/manual/link-local
  • ipv4.dns/ipv6.dns 配置DNS
  • ipv4.addresses/ipv6.addresses 配置地址,v4格式为192.168.0.1/24,v6格式为2607:f0d0::4/64,未配置掩码时默认为主机掩码
  • ipv4.gateway/ipv6.gateway 配置网关
  • ipv4.routes/ipv6.routes 配置静态路由,格式为192.168.0.0/24 172.16.0.1

防火墙Firewalld

区域默认配置

区域名称 默认配置
trusted 允许所有传入流量
home 除非与传出流量相关,或与ssh、mdns、ipp-client、samba-client或dhcpv6-client预定义服务匹配,否则拒绝传入流量
internal 除非与传出流量相关,或与ssh、mdns、ipp-client、samba-client或dhcpv6-client预定义服务匹配,否则拒绝传入流量(一开始与home域相同)
work 除非与传出流量相关,或与ssh、ipp-client或dhcpv6-client预定义服务匹配,否则拒绝传入流量
public 除非与传出流量相关,或与ssh或dhcpv6-client预定义服务匹配,否则拒绝传入流量。新添加的网络接口的默认区域
external 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量。通过此区域转发的IPv4传出流量将进行伪装,以使其看起来像是来自传出网络接口的IPv4地址
dmz 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量
block 除非与传出流量相关,否则拒绝所有传入流量
drop 除非与传出流量相关,否则拒绝所有传入流量。(甚至不产生包含ICMP错误的响应)

动作:

​ accept:运行通过

​ drop:丢包

​ rejece:拒绝通过并回应(一般不用)

1
2
3
4
firewall-config	 	启用图形化配置
firewall-cmd 命令行配置
--reload 重载配置文件
--permanent 将配置写入配置文件,永久保存

配置不加--permanent则在runtime中执行,配置重启失效

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看防火墙策略
firewall-cmd --list-all
# 放行,不加--permanent则临时放行,重启失效
firewall-cmd --permanent --add-port=16680/tcp --zone=public # 放行端口
firewall-cmd --permanent --add-service=https --zone=public # 放行服务
# 删除
firewall-cmd --permanent --remove-port=16680/tcp --zone=public # 删除端口
firewall-cmd --permanent --remove-service=https --zone=public # 删除服务
# 查看区域
firewall-cmd --get-zones # 所有区域
firewall-cmd --get-zone-of-interface=eth0 # 接口所属区域
firewall-cmd --get-active-zones # 活跃区域
# 服务操作
firewall-cmd --get-services # 查看所有服务
firewall-cmd --permanent --service=https --get-ports # 查看具体服务端口
firewall-cmd --permanent --new-service=v2ray # 添加服务
firewall-cmd --permanent --service=v2ray --add-port=16680/tcp # 服务添加端口
firewall-cmd --permanent --delete-service=v2ray # 删除服务

CentOS网络管理
https://www.intx.work/posts/e8bbd847.html
发布于
2016年7月12日
更新于
2025年5月8日
许可协议