一、网络参数配置
1、图形化配置
#开启
[root@localhost ~]# systemctl start NetworkManager
#关闭
[root@localhost ~]# systemctl stop NetworkManager
#关闭并开机不自启
[root@localhost ~]# systemctl disable --now NetworkManager
#开启并开机自启
[root@localhost ~]# systemctl enable --now NetworkManager
2、命令行配置
2.1、ifconfig命令
语法
ifconfig [接口]
ifconfig 接口 [aftype] options | address ...
选项
选项 | 作用 |
---|---|
-a | 查看所有网卡的配置信息,包括未启用网卡 |
up | 启用网卡,ifconfig ens33 up,不会重新读取配置文件 |
down | 停用网卡,ifconfig ens33 down |
案例
临时配置网卡参数
ifconfig enss 192.168.115.136/24
2.2、ifup和ifdown
ifup ens33
#启用网卡,并读取配置文件
ifdown ens33
#停用网卡
生成子接口配置文件【永久配置】,不能使用DHCP获得地址
cd /etc/sysconfig/network-scripts
cp ifcfg-ens37 ifcfg-ens37:0
cat ifcfg-ens37:0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens37:0
DEVICE=ens37:0
ONBOOT=yes
IPADDR=192.168.115.214
PREFIX=24
ifdown ens37:0 && ifup ens37:0
2.3、ip a[ddress]命令
语法
ip [ OPTIONS ] OBJECT { COMMAND | help }
选项
选项 | 作用 |
---|---|
address | 查看设备IP地址 |
案例
ip a
2.4、配置文件配置
/etc/sysconfig/network-scripts/ifcfg-网卡名
永久配置,需要网卡重新读取配置文件
网卡启停操作
#启动服务
systemctl start network
#停止服务
systemctl stop network
#重启服务
systemctl restart network
#使用命令行重新加载配置文件
ifup 网卡名
ifdown 网卡名
#使用命令行启停网卡,但是不加载配置文件
ifconfig 网卡名 up | down
2.5、单一IP地址配置
- 自动获得,必须在当前网络中存在DHCP服务器
TYPE=Ethernet
#网卡参数的类型,Ethernet:以太网
BOOTPROTO=dhcp
#获得IP地址的方式,dhcp|static|none
NAME=ens33
#网卡描述名称,可有可无
DEVICE=ens33
#网卡设备名称,必须与ifconfig看到的网卡名保持一致。不能书写不存在的网卡名
ONBOOT=yes
#是否启用配置文件,yes|no
- 手动配置
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.150
#IP地址
PREFIX=24
#子网掩码长度
#或者使用
NETMASK=255.255.255.0
GATEWAY=192.168.115.2
#默认网关,在同一系统下,不管几块网卡,建议配置一个默认网关。
DNS1=192.168.115.2
#域名解析服务器地址,不建议在多网卡的情况下书写DNS,因为后启动的网卡会覆盖原有的DNS服务器地址。
2.6、多IP地址配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR1=192.168.115.150
PREFIX1=24
GATEWAY=192.168.115.2
DNS1=192.168.115.2
IPADDR2=192.168.115.151
PREFIX2=24
DNS2=192.168.115.3
DNS3=192.168.115.4
- 加载配置文件
systemctl restart network
#或者
ifdown ens33 && ifup ens33
- 验证参数
#IP地址
ifconfig | ip a
#网关地址查看
route -n
#DNS地址
cat /etc/resolv.conf
3、路由配置
3.1、route命令
语法
route [选项] [参数]
选项
选项 | 描述 |
---|---|
-A | 设置地址类型; |
-C | 打印将Linux核心的路由缓存; |
-v | 详细信息模式; |
-n | 直接显示数字形式的IP地址; |
-e | netstat格式显示路由表; |
-net | 到一个网络的路由表; |
-host | 到一个主机的路由表。 |
参数
参数 | 描述 |
---|---|
add | 增加指定的路由记录; |
del | 删除指定的路由记录; |
target | 目的网络或目的主机; |
gw | 设置默认网关; |
mss | 设置TCP的最大区块长度(MSS),单位MB; |
window | 指定通过路由表的TCP连接的TCP窗口大小; |
dev | 路由记录所表示的网络接口。 |
实验
1、单一路由直连
#进入R1
[root@localhost ~]# systemctl disable --now NetworkManager
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.113
PREFIX=24[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.116.113
PREFIX=24[root@localhost network-scripts]# ifdown ens34 ; ifup ens34
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# vim /etc/sysctl.conf
插入:net.ipv4.ip_forward = 1
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1
#将ens33设置为VMnet1(仅主机模式)、ens34设置为VMnet2(仅主机模式)#进入虚拟机1
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.112
PREFIX=24
GATEWAY=192.168.115.113
DNS1=192.168.115.2[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
#将ens33设置为VMnet1(仅主机模式)
#进入虚拟机2
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.116.112
PREFIX=24
GATEWAY=192.168.116.113
DNS1=192.168.116.2[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
#将ens33设置为VMnet2(仅主机模式)
2、两个路由连接
#进入R1
[root@localhost ~]# systemctl disable --now NetworkManager
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.114
PREFIX=24[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
[root@localhost network-scripts]# vim ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.116.117
PREFIX=24[root@localhost network-scripts]# ifdown ens34 ; ifup ens34
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# vim /etc/sysctl.conf
插入:net.ipv4.ip_forward = 1
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1
#将ens33设置为VMnet1(仅主机模式)、ens34设置为VMnet2(仅主机模式)
[root@localhost network-scripts]# route add -net 192.168.117.0/24 gw 192.168.116.114#进入R2
[root@localhost ~]# systemctl disable --now NetworkManager
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.116.114
PREFIX=24[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
[root@localhost network-scripts]# vim ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.117.114
PREFIX=24[root@localhost network-scripts]# ifdown ens34 ; ifup ens34
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# vim /etc/sysctl.conf
插入:net.ipv4.ip_forward = 1
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1
#将ens33设置为VMnet2(仅主机模式)、ens34设置为VMnet3(仅主机模式)
[root@localhost network-scripts]# route add -net 192.168.115.0/24 gw 192.168.116.117#进入虚拟机1
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.115.112
PREFIX=24
GATEWAY=192.168.115.114
DNS1=192.168.115.2#进入虚拟机2
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.116.113
PREFIX=24
GATEWAY=192.168.117.114
DNS1=192.168.117.2[root@localhost network-scripts]# ifdown ens33 ; ifup ens33
#将ens33设置为VMnet3(仅主机模式)
二、网络连接查看
1、netstat
作用
查看本地服务的网络监听状态
查看客户端连接到本地服务的连接状态
语法
netstat 选项 (-anptu)
选项
选项参数 | 长参数形式 | 功能描述 |
---|---|---|
-n | --numeric | 以数字形式显示地址,不解析主机名、端口或用户名 |
-a | --all | 显示所有监听或连接状态(包括非监听状态) |
-p | --program | 显示连接所属进程的 PID 和名称 |
-t | --tcp | 仅显示 TCP 协议相关的连接 |
-u | --udp | 仅显示 UDP 协议相关的连接 |
-l | 无长参数形式 | 仅查看监听状态的连接(不显示已建立的连接) |
2、ss
作用
查看本地服务的网络监听状态
查看客户端连接到本地服务的连接状态
语法
ss 选项 (-anptuli)
选项
参数 | 描述 |
---|---|
-n | 以数字形式显示地址(不解析主机名、端口或用户名) |
-a | 显示所有监听和非监听的连接状态 |
-p | 显示进程信息(PID 和名称) |
-t | 仅显示 TCP 协议连接 |
-u | 仅显示 UDP 协议连接 |
-i | 查看客户端连接到本地的状态(需结合其他参数使用) |
-l | 仅显示处于监听状态的连接 |
使用示例
- 显示所有 TCP 监听连接及进程信息:
netstat -tulnp
- 显示所有 UDP 连接(数字形式):
netstat -un
开启Linux服务的路由功能
vim /etc/sysctl.conf内核参数修改配置文件添加net.ipv4.ip_forward = 1sysctl -p加载配置
3、bond绑定
将多个物理网卡进行排列组合,形成逻辑网卡,网卡的高可用
3.1、绑定模式
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地 网卡相连的交换机设备上进行端口聚合来支持绑定技术。
mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
3.2、绑定案例
1、基于CentOS7操作系统
服务器有两块网卡 ens33和ens36
ens34操作
TYPE=ethernetBOOTPROTO=noneNAME=ens34DEVICE=ens34ONBOOT=yesMASTER=bond0SLAVE=yes
ens37操作
TYPE=ethernetBOOTPROTO=noneNAME=ens37DEVICE=ens37ONBOOT=yesMASTER=bond0SLAVE=yes
bond0操作
TYPE=ethernetBOOTPROTO=noneNAME=bond0DEVICE=bond0ONBOOT=yesIPADDR=192.168.1.1PREFIX=24GATEWAY=192.168.1.254DNS1=192.168.1.254
添加bond配置文件
vim /etc/modprobe.d/bond.confalias bond0 bondingoptions bonding mode=6 miimon=200
关闭网络图形化服务
systemctl stop NetworkManager 【关闭后开机失效】
systemctl disable --now NetworkManager 【关闭且开机不自启】
重启网络服务
ifup ens34 && ifup ens37 && ifup bond0systemctl restart network #重启会出现启动失败,但是bond绑定是OK的!!!
2、基于OpenEuler(国内的信创项目)
好的,以下是 nmcli
命令中 Bonding 模式的所有选项及其详细含义的完整列表。
Bonding 模式列表及含义
在 nmcli
中,使用 mode
参数来指定 Bonding 模式。以下是所有可用的模式:
NMCLI 模式值 | 模式编号 | 中文名称 | 含义及特点 |
---|---|---|---|
balance-rr | mode-0 | 轮询 | 特点: 数据包按顺序依次从每个 Slave 接口发送。<br>优点: 提供负载均衡和容错能力。<br>缺点: 需要交换机支持端口聚合,否则可能导致网络混乱。<br>交换机要求: 必须配置为静态聚合或 LACP。 |
active-backup | mode-1 | 主备 | 特点: 只有一个 Slave 接口处于活动状态,其他作为备份。只有在活动接口故障时,备份接口才被激活。<br>优点: 提供高可用性,配置简单,交换机无需特殊配置。<br>缺点: 不能增加带宽,资源利用率低。<br>交换机要求: 无特殊要求。 |
balance-xor | mode-2 | 异或 | 特点: 基于 [(源MAC地址 ⊕ 目标MAC地址) % Slave数量] 来选择发送接口。<br>优点: 为同一对话提供负载均衡和容错,保证数据包顺序。<br>缺点: 流量分布可能不均衡。<br>交换机要求: 必须配置为静态聚合或 LACP。 |
broadcast | mode-3 | 广播 | 特点: 所有数据包都从所有 Slave 接口发送。<br>优点: 提供极高的容错能力。<br>缺点: 极度浪费带宽,通常只用于非常特殊的场景。<br>交换机要求: 无特殊要求。 |
802.3ad | mode-4 | 动态链路聚合 (LACP) | 特点: IEEE 802.3ad 标准模式。使用 LACP 协议与交换机动态协商和监控聚合链路。<br>优点: 标准的链路聚合,提供负载均衡、高可用性和良好的监控能力。<br>缺点: 需要交换机支持并正确配置 LACP。<br>交换机要求: 必须配置为 LACP 模式(主动或被动)。 |
balance-tlb | mode-5 | 自适应传输负载均衡 | 特点: 根据每个 Slave 的当前负载进行出口流量(发送)的负载均衡。入口流量(接收)由当前 Slave 处理。<br>优点: 不需要交换机特殊配置。<br>缺点: 只有出口流量被均衡,容错能力较弱(故障切换时可能导致ARP问题)。<br>交换机要求: 无特殊要求。 |
balance-alb | mode-6 | 自适应负载均衡 | 特点: 在 mode-5 (tlb) 的基础上,增加了入口流量(接收)的负载均衡,通过ARP协商实现。<br>优点: 提供出口和入口的负载均衡,且不需要交换机特殊支持。<br>缺点: 在软件层实现,会消耗更多主机CPU资源。<br>交换机要求: 无特殊要求。 |
在 nmcli
命令中的使用示例
创建 Bond 连接时,使用 mode
参数指定上述任一模式:
# 示例:创建 mode-4 (LACP) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode 802.3ad \ipv4.method auto# 示例:创建 mode-1 (主备) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode active-backup \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual# 示例:创建 mode-6 (自适应负载均衡) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode balance-alb \ipv4.method auto
查看当前系统支持的所有模式
虽然 nmcli
本身不直接列出模式,但您可以通过查看内核文档或帮助信息来确认支持的模式:
# 查看 bond 连接的帮助信息,其中会包含 mode 参数的简要说明
nmcli connection add type bond help
更详细的信息通常需要查阅官方文档或内核的 bonding 文档:
# 查看系统上的 bonding 文档(如果已安装)
modinfo bonding | grep -i description
总结与选择建议
场景 | 推荐模式 | 原因 |
---|---|---|
标准数据中心 | 802.3ad (mode-4) | 需要交换机支持。是行业标准,提供最好的性能和可靠性。 |
高可用性 (HA) | active-backup (mode-1) | 配置简单,交换机无要求。主要目标是故障切换而非带宽聚合。 |
无交换机支持 | balance-alb (mode-6) | 不需要配置交换机,能同时实现出入向流量的负载均衡。 |
极简负载均衡 | balance-tlb (mode-5) | 不需要配置交换机,但只均衡出口流量。 |
特定网络需求 | balance-xor (mode-2) | 适用于需要保持数据包顺序的特定应用。 |
希望这个完整的列表和解释能帮助您更好地理解和使用 nmcli
进行 Bonding 配置。
bond0设置
nmcli c ad type bond con-name bond0 ifname bond0 mode balance-alb
3、基于Rocky9
好的,以下是 Rocky Linux 9 上使用 nmcli
配置 Bonding 的完整过程。我们将以最常用的 mode-4 (802.3ad/LACP) 为例,并提供其他模式的调整方法。
前置条件
至少有两个物理网卡(例如
ens192
和ens224
)可供绑定。确保网络连接稳定,或直接在本地终端操作。
具有
root
权限。
完整配置步骤
步骤 1:确认网卡状态和名称
Rocky Linux 9 通常使用类似 ensXX
, enpXsX
, ethX
的网卡命名方式。
nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTION
ens192 ethernet disconnected --
ens224 ethernet disconnected --
lo loopback unmanaged --
记下你要绑定的网卡名称,本例中使用 ens192
和 ens224
。
步骤 2:创建 Bonding 连接
使用以下命令创建 Bond 接口。请根据您的网络环境修改 IP 地址、网关等参数。
对于静态 IP 配置:
nmcli connection add type bond con-name bond0 ifname bond0 \mode 802.3ad \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.dns "8.8.8.8,1.1.1.1" \ipv4.method manual
对于 DHCP 自动获取 IP:
nmcli connection add type bond con-name bond0 ifname bond0 \mode 802.3ad \ipv4.method auto
步骤 3:将物理网卡添加为从属接口
# 添加第一个从属网卡
nmcli connection add type bond-slave con-name bond-slave-ens192 ifname ens192 master bond0
# 添加第二个从属网卡
nmcli connection add type bond-slave con-name bond-slave-ens224 ifname ens224 master bond0
步骤 4:激活 Bond 连接
nmcli connection up bond0
步骤 5:验证配置
检查网络设备状态:
nmcli device status
输出应该显示 bond0 和它的从属接口都已连接:
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
ens192 ethernet connected bond-slave-ens192
ens224 ethernet connected bond-slave-ens224
查看详细的 Bonding 状态:
cat /proc/net/bonding/bond0
检查 IP 地址配置:
ip addr show bond0
测试网络连通性:
ping -c 4 8.8.8.8
配置其他 Bonding 模式
如果要使用其他模式,只需在创建 Bond 连接时修改 mode
参数:
Mode-1 (active-backup) - 主备模式
nmcli connection add type bond con-name bond0 ifname bond0 \mode active-backup \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual
Mode-6 (balance-alb) - 自适应负载均衡
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-alb \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual
Mode-0 (balance-rr) - 轮询模式
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-rr \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual
4、Linux下的抓包工具
tcpdump
语法
tcpdump -i 网卡名
选项
选项 | 功能描述 |
---|---|
-c | 接收指定数量的报文后自动退出 |
-i | 指定监听的网络接口。若不指定,默认选择系统最小已配置接口(排除 loopback),选择时可能中断连接 |
-n | 禁用地址转换(主机地址、端口号等不显示为域名或服务名) |
-t | 禁止输出时戳标志 |
-v | 启用详细输出(如显示 IP 数据报的生存周期和服务类型) |
-e | 显示链路层报头信息 |
5、web压力测试工具
ab -c 100 -n 2000 http://192.168.1.254/
6、路由追踪命令
traceroute 目标地址或域名