LINUX中的网络配置和管理

RHEL9:现代化配置架构

存储革新

   新配置:自动生成 *.nmconnection 文件

   旧配置:保留 /etc/sysconfig/network-scripts/ 目录,修改现有ifcfg文件仍生效

优势升级

  支持更复杂的网络拓扑(如VPN、绑定接口的优先级策略)

  配置版本控制与回滚能力(通过nmcli con rollback

  与云计算工具(cloud-init)深度集成

NetworkManager 核心优势与行业定位

核心定位

   历史背景:2004年由Red Hat发起,旨在解决Linux复杂网络配置问题,推动自动化与标准化核心 

   价值:实现网络配置 零手动干预(自动识别网卡、分配IP、切换网络环境)

功能覆盖维度
管理维度 支持类型
网络类型 有线以太网、Wi-Fi、蓝牙网络、VPN、5G
设备类型 物理网卡、虚拟网卡、桥接
IP分配模式 DHCPv4/v6、静态IP、IPv6 SLAAC、混合模式(多IP绑定)
高级场景 网络策略路由、QoS流量整形、端口镜像
工具生态体系
操作界面 代表工具 适用场景
命令行 nmcli(功能最全) 服务器运维、自动化脚本集成
文本图形化 nmtui 无GUI环境的快速配置
桌面GUI GNOME控制中心、KDE Plasma网络模块 开发者/普通用户直观操作
Web管理 Cockpit Web控制台 远程可视化运维
典型应用场景

  企业办公网络:自动切换有线/无线网络,保持VPN持续连接

  云计算环境:动态配置Open vSwitch或SDN网络策略

  物联网设备:根据信号强度自动选择最佳网络接口

  高可用集群:网络故障秒级切换与状态同步

IPV4

  IPv4(Internet Protocol version 4)是互联网的核心协议之一,负责在网络层(OSI 模型的第三层)实现数据的路由和寻址。在 Linux 系统中,IPv4 的实现基于内核网络栈,涵盖从地址分配、数据包封装到路由转发的全过程

ipv4 internet protocol version

ip是由32个01组成 11111110.11111110.11111110.11111110 = 254.254.254.254

IPv4 核心特性

地址结构

  32 位地址(如 192.168.1.100),用点分十进制表示。

  子网划分:通过子网掩码(如 255.255.255.0)定义网络和主机部分。

  私有地址段:

  10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

静态配置

 使用 ip 命令(推荐)
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1

NetworkManager

 通过 nmcli 配置
sudo nmcli con mod eth0 ipv4.addresses "192.168.1.100/24" \
  ipv4.gateway "192.168.1.1" \
  ipv4.method manual

Linux 网络接口

  网络接口定义
网络接口是设备与网络通信的物理或虚拟端口,通常对应网卡设备(如物理网卡、虚拟网卡、桥接接口等),负责数据包的收发与协议处理。
2.命名结构分解

接口名称由 前缀 + 位置标识符 组成,格式为 <类型前缀><位置类型><编号>

组件 含义 示例
类型前缀 标识网络介质类型
en 以太网(Ethernet) enp3s0
w1 无线局域网(Wi-Fi) wlp4s0
ww 无线广域网(移动网络, 4G/5G) wwp0s20u4
位置类型 标识硬件位置或拓扑
o 主板集成设备(onboard),按索引编号 eno1
s 热插拔插槽(hot-plug slot) ens3
p PCI总线物理位置(bus-port) enp1p2
x 基于MAC地址生成
enx00a0c9fffe8d
命名规则示例

enp5s0

  en → 以太网

  p5 → 连接在PCI总线第5插槽

  s0 → 该插槽上的第0个端口

wlp0s3f2u4

  wl → 无线局域网

  p0s3 → PCI总线0插槽3

     f2u4 → 功能2,USB接口4

接口类型扩展
虚拟接口类型 命名示例 用途
桥接接口 br0 虚拟机网络桥接
绑定接口 bond0 网卡冗余聚合
VLAN接口 enp3s0.100 划分虚拟局域网
虚拟以太网 veth0 容器间通信

nmcli 命令核心功能

NetworkManager 命令行工具 nmcli 是 Linux 网络管理的全能控制中心,提供对网络资源的全生命周期管理。

1.连接配置管理

  创建:定义新网络连接(如以太网、Wi-Fi、VPN)

  编辑:修改已有连接的参数(IP/DNS/路由等)

  删除:移除无效或废弃的连接配置激活/停用:动态启用或禁用指定连接(无需重启服务)

  优先级控制:管理多连接的自动切换顺序

2. 网络设备控制

  状态监控:实时查看设备物理状态(启用/禁用、信号强度等)

  硬件操作:启用/禁用网卡、刷新设备驱动状态

  高级调优:配置MTU、MAC地址、速率限制等底层参数

3. 实时状态跟踪

  连接状态:显示活动连接的详细参数(IP地址、网关、DNS)​​​​​​​

  会话诊断:实时监控网络流量、检测连接故障点

  服务管理:控制 NetworkManager 守护进程(启动/重启/重载配置)

4. 高级网络场景支持

  VPN 集成:管理 OpenVPN、IPsec 等隧道连接​​​​​​​

  虚拟化网络:配置桥接、绑定、VLAN 等复杂拓扑

  云原生适配:生成 Kubernetes 或容器网络所需的声明式配置

功能优势

  无依赖操作:纯命令行工具,适用于无GUI的服务器环境​​​​​​​

  原子化控制:每个操作对应精确的API指令,便于脚本化集成

  配置持久化:修改即时生效并自动保存,重启后配置不丢失

  跨版本兼容:统一语法适配 

NetworkManager 网络信息查看命令

1. 查看网络连接配置

nmcli connection show     简写:nmcli c show  

功能:列出所有已配置的网络连接(包括活跃与非活跃),显示连接名称、UUID、设备、类型及状态。

2. 查看指定连接的详细配置
nmcli connection show ens160     简写:nmcli con show ens160  

功能:显示特定连接(如 ens160)的所有参数,包括IP地址、网关、DNS、MAC地址、MTU等。
注意:输出内容可能较长,可用 | less 分页查看,按 q 退出。

3. 查看网络设备实时状态
nmcli device status     简写:nmcli dev status  

STATEconnected(已连接)、disconnected(未连接)、unavailable(设备禁用)

4. 查看网络设备硬件详情

nmcli device show     简写:nmcli dev show  

功能:显示所有网络接口的底层详细信息,包括:

  驱动版本、PCI总线位置

  IP地址、子网掩码、路由表

  无线网卡的信号强度、频段

  接口统计信息(收发数据包、错误计数)

  操作提示:输出内容较多,建议配合 grep 过滤(如 nmcli dev show | grep "IP4.ADDRESS"

命令使用场景对比

需求场景 推荐命令
快速检查所有连接配置 nmcli c show
排查某网卡无法获取IP的问题 nmcli con show ens160
确认物理网卡是否被系统识别 nmcli dev status
诊断网络延迟或丢包的根本原因 nmcli dev show

高级技巧

持续监控设备状态变化:

watch -n 1 nmcli dev status     每秒刷新一次设备状态  

导出连接配置备份

nmcli con show > network_backup.txt  

快速定位活动连接

nmcli c show --active  

网络连接状态控制命令

1. 激活网络连接(启动数据传输)

nmcli connection up <连接名或UUID>  
 简写:nmcli c up <连接名>  

功能

  启用指定网络连接,触发IP地址分配(DHCP/静态)

  若连接已激活,则重新应用配置(等效于重启网卡)

2. 关闭网络连接(停止数据传输)
nmcli connection down <连接名或UUID>  
 简写:nmcli c down <连接名>  

功能

  停用指定连接,终止网络通信​​​​​​​

  不会删除配置,仅停止当前会话

临时操作

  up/down 仅影响当前连接状态,重启后配置仍会按默认策略激活

     需永久禁用自动连接:

nmcli con mod <连接名> connection.autoconnect no  

创建并激活静态IP网络连接

1. 添加新网络连接(静态IP配置)

sudo nmcli connection add type ethernet \  
    ifname <物理网卡名> \  
    con-name <自定义连接名> \  
    autoconnect yes \  
    ipv4.addresses  \  
    ipv4.gateway <默认网关> \  
    ipv4.method manual  

参数解析

  type ethernet:指定连接类型为以太网​​​​​​​

  ifname:绑定到物理网卡(如 ens160

  con-name:自定义连接名称(建议与用途关联,如 office-lan

  autoconnect yes:系统启动时自动激活此连接

  ipv4.method manual:启用静态IP配置

激活新连接(⚠️远程慎用)
 激活新连接(若当前通过SSH使用ens160,此操作会中断连接!)  
sudo nmcli c up ens161  

替代方案(安全操作)

  物理控制台直接操作

  通过带外管理(iLO/iDRAC)执行

  使用 screen/tmux 会话防止中断

3. 验证配置
 查看所有连接状态  
nmcli connection show  

 检查新连接详情  
nmcli con show ens161  
4. 恢复原网络连接(如操作失误)
 重新激活原连接(如ens160)  
sudo nmcli c up ens160  

配置静态 IP 地址

修改网络连接配置为手动模式并设置静态 IP 信息
使用 nmcli 命令将网络接口 ens160 配置为手动获取 IP 地址,同时指定 IP 地址、子网掩码、网关和 DNS:

[root@server ~]# nmcli c modify ens160 ipv4.method manual \
ipv4.addresses '192.168.48.134/24' \
ipv4.gateway '192.168.48.2' \
ipv4.dns '114.114.114.114'

​​​​​​​     ipv4.method manual:指定使用手动模式配置 IPv4 地址。

  ipv4.addresses:设置静态 IP 地址及子网掩码(192.168.48.134/24)。

  ipv4.gateway:指定默认网关地址(192.168.48.2)。

  ipv4.dns:设置 DNS 服务器地址(114.114.114.114)。

重新激活网络连接
激活网络接口 ens160,使配置生效

[root@server ~]# nmcli c up ens160

验证网络配置
使用 ip a 或 ip addr 命令查看网络接口的 IP 配置是否正确:

[root@server ~]# ip a

ipv4.method manual 表示手动配置 IPv4 地址,而不是通过 DHCP 自动获取

配置完成后,通过重新激活连接(nmcli c up)使更改立即生效。

为网络连接添加多个 IP 地址的操作

1. 为现有连接追加新 IP 地址
sudo nmcli connection modify ens160 +ipv4.addresses 192.168.48.136/24  

作用

     在原有 IP 配置基础上,为 ens160 连接添加第二个 IPv4 地址 192.168.48.136/24​​​​​​​

  + 符号表示追加而非覆盖(使用 ipv4.addresses 不加 + 会重置所有 IP)

2. 激活配置变更

sudo nmcli connection up ens160  

效果

  重新加载连接配置,使新增 IP 地址生效​​​​​​​

  注意:若当前通过 SSH 使用该连接,此操作会短暂中断网络(建议在控制台操作)

3. 验证 IP 地址配置

ip address show dev ens160  
 简写:ip a show ens160  

关键字段

   secondary 表示该 IP 为附加地址

应用场景与扩展操作

场景 操作示例
添加多个 IP nmcli c mod ens160 +ipv4.addresses 192.168.48.137/24,192.168.48.138/24
删除指定 IP nmcli c mod ens160 -ipv4.addresses 192.168.48.136/24
重置所有 IP nmcli c mod ens160 ipv4.addresses "192.168.1.100/24

删除网络连接

1. 查看当前所有网络连接

nmcli connection show     简写:nmcli c show  

关键字段说明

  DEVICE 列为 -- 表示该连接未激活

     若目标连接处于活跃状态(显示设备名如 ens160),需先停用

2. 执行删除操作

sudo nmcli connection delete <连接名或UUID>  
 简写:nmcli c del <连接名>  

3. 验证删除结果

nmcli c show  

注意事项

活跃连接处理

   若目标连接处于激活状态(DEVICE 列显示接口名),需先关闭连接:

sudo nmcli c down <连接名>  

强制删除活跃连接可能导致网络中断

配置文件清除

   删除操作会同步移除NM的配置文件:

/etc/NetworkManager/system-connections/<连接名>.nmconnection  

手动配置静态IP

1. 定位NetworkManager配置文件

 进入网络连接配置目录  
cd /etc/NetworkManager/system-connections  

 查看现有配置文件(连接名.nmconnection)  
ls  
2. 编辑目标连接配置文件
sudo vim ens160.nmconnection  
[connection]  
id=ens160                      连接显示名称  
uuid=d97d603d-5bb5-3d11-bfeb-11fbc8cb867d  # 唯一标识符(勿修改)  
type=ethernet                  连接类型  
interface-name=ens160          绑定物理网卡  

[ipv4]  
address1=192.168.48.134/24,192.168.48.2  # IP/子网,网关  
dns=114.114.114.114;          DNS服务器(分号结尾)  
method=manual                 静态IP模式  

[ipv6]  
method=auto                   通常保持自动获取  
3. 应用配置变更
 重载NetworkManager配置(无需重启服务)  
sudo nmcli connection reload  

 激活修改后的连接  
sudo nmcli connection up ens160  

注意

  若当前通过SSH使用该连接,激活操作会导致会话中断

  建议在物理控制台或带外管理界面执行

4. 验证网络状态
 查看IP地址配置  
ip addr show dev ens160  

 测试网络连通性  
ping -c 4 192.168.48.2  

连接会话与物理网卡的关系

概念 说明
物理网卡 硬件设备(如 ens160),提供网络通信的物理通道
连接会话 软件定义的网络配置(如IP、DNS),可绑定到物理网卡
激活规则 一个物理网卡可关联多个连接会话,但同一时间仅能激活一个会话
切换场景 通过 nmcli c up <新会话> 自动停用当前会话并激活新配置

配置备份

 修改前创建备份  
sudo cp ens160.nmconnection ens160.nmconnection.bak  

ping 命令

1. 基础网络诊断功能

    连通性验证:检测本地主机与目标主机(IP/域名)之间是否可达

​​​​​​​    延迟分析:测量 往返时间(RTT),反映端到端网络响应速度

    丢包统计:计算数据包丢失率,评估网络稳定性

2.命令格式与常用参数

基础语法

ping [选项] 目标主机  

参数

参数 功能 示例
-c 指定发送数据包次数
-i <秒> 设置发包间隔 ping -i 0.5 192.168.1.1
-s <字节> 定义数据包大小 ping -s 1500 10.0.0.1
-W <秒> 等待响应超时时间
-D 显示时间戳 ping -D 8.8.8.8
注意事项

协议依赖:基于ICMP协议,可能被防火墙/安全组拦截​​​​​​​

权限要求:普通用户可直接执行,部分参数需要sudo(如极短发包间隔)

替代工具

       深度路径分析:traceroute/mtr

       高级延迟诊断:tcpg(TCP层测试)

bytes:接收到的数据包总大小

time:往返延迟(RTT),单位毫秒(ms)

ttl:数据包剩余生存时间

静态解析

作用:

通过手动配置本地映射文件,将域名与对应的IP地址关联起来,从而实现对域名的解析。

方法:

通过编辑/etc/hosts文件,将域名与IP地址进行静态绑定。

[root@server ~]# vim /etc/hosts

wget 命令

1. 工具定位

wget(GNU Wget)是 Linux/Unix 系统内置的 非交互式网络资源获取工具,支持 HTTP/HTTPS/FTP/FTPS 协议,专为稳定下载与批量抓取设计,广泛应用于自动化脚本、服务器运维及数据归档场景。

2. 核心能力

  协议支持:HTTP/HTTPS/FTP/FTPS​​​​​​​

  下载模式:单文件下载、递归目录抓取、站点镜像克隆

  网络容错:自动重试、断点续传、带宽限制

  资源识别:自动处理 Cookie、SSL 证书、重定向

核心优势:

无交互运行

递归下载

增量同步

日志记录

3. 高频参数

参数 功能 典型场景
-c 断点续传 网络中断后恢复大文件下载
-q 静默模式(不输出进度) 脚本中隐藏非关键信息
--limit-rate=200k 限速下载(200KB/s) 避免占用全部带宽
-P <目录> 指定下载文件存储目录 分类存储不同资源
-U 模拟浏览器  绕过简单反爬机制

-t 最大尝试次数
-b 后台下载模式
-r 递归下载

curl 命令行工具核心功能

工具定位

curl(Client URL)是一个 多功能网络数据传输工具,支持包括 HTTP/HTTPS、FTP/FTPS、SCP、SFTP 等 20+ 协议,主要用于:

  数据获取:下载网页、API 响应、文件

  数据提交:发送表单、上传文件、模拟 API 请求

  协议调试:测试服务器响应头、验证证书、分析重定向

高频参数
参数 功能 典型场景
-o 使用服务器端的文件名保存 curl -O
-L 自动跟随重定向
-v 显示详细通信过程(调试模式) 排查 HTTPS 握手失败
-H 添加自定义请求头 模拟浏览器或传递 Token
-d 发送 POST 数据 提交表单或调用 REST API
-u 认证信息(格式:user:password 访问受密码保护的资源

VMware三种不同的网络连接模式

  桥接模式(Bridged)

  网络地址转换模式(NAT)

  仅主机模式(Host-Only)

桥接模式

1. 核心机制

桥接模式通过 虚拟网桥 将 物理主机网卡 与 虚拟机虚拟网卡 连接,形成二层(数据链路层)网络拓扑。此模式下:

    虚拟网桥模拟物理交换机功能,所有接入设备(物理主机、虚拟机)处于同一广播域

    虚拟机获得与物理网络 平等地位,直接参与局域网通信

    虚拟交换机的 MAC 地址表 动态学习并转发数据帧

2. 网络拓扑特性
组件 角色 通信规则
物理主机网卡 桥接端口 转发虚拟机与外部网络间的数据帧
虚拟网桥 逻辑交换机 维护 MAC 地址表,决策帧转发路径
虚拟机虚拟网卡 桥接成员端口 通过虚拟网桥与外部直接通信
IP 配置要求

  IP 地址:需与物理主机所在局域网处于 同一子网​​​​​​​

  网关/DNS:必须与物理网络一致

  地址分配:支持 DHCP 自动获取或手动静态配置

优势:

  虚拟机获得真实网络身份

  支持跨物理机的二层通信

  网络性能接近物理机

  无需 NAT 转换,降低复杂度

NAT

工作原理
NAT模式通过内置的虚拟NAT(网络地址转换)设备与虚拟DHCP(动态主机配置协议)服务器协同工作,使虚拟机能够共享宿主机的网络连接并访问外部网络资源。

Host-Only(仅主机模式)解析

1. 核心机制

Host-Only 模式通过 虚拟交换机(如 VMnet1) 构建一个 完全封闭的私有网络,仅允许以下通信:

  虚拟机 ↔ 宿主机

​​​​​​​  虚拟机 ↔ 同一 Host-Only 网络的其他虚拟机

  虚拟机无法直接访问外部网络(无 NAT 或路由转发)

2. 网络组件与通信规则
组件 角色 通信范围
宿主机虚拟网卡 接入 Host-Only 网络的网关 与虚拟机组成本地私有网络
虚拟交换机 二层交换设备 转发虚拟机和宿主机间的数据帧
虚拟机虚拟网卡 绑定到 Host-Only 网络的成员端口 仅限封闭网络内通信
3. IP 配置特性

  地址分配

​​​​​​​    通常由宿主机 DHCP 服务分配私有 IP(如 192.168.56.0/24

    支持手动设置静态 IP(需与宿主机虚拟网卡同网段)

DNS:仅需配置宿主机可解析的 DNS(通常指向宿主机或内部 DNS 服务器)

特点:

外网访问 需手动配置路由或代理
IP 层级 独立私有子网(与宿主机物理网络无关)
网络隔离 完全封闭,仅宿主机可见

一、使用 nmcli 命令配置IP

1. 查看现有连接
nmcli connection show

2. 创建/修改静态 IP 配置

 修改现有连接(替换 CONN_NAME 为实际连接名)
sudo nmcli con mod "CONN_NAME" \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4" \
  ipv4.method manual \
  connection.autoconnect yes
3. 重启网络连接
sudo nmcli con down "CONN_NAME" && sudo nmcli con up "CONN_NAME"

手动编辑配置文件

[connection]
id=ens160
type=ethernet
interface-name=ens160

[ipv4]
address1=192.168.1.100/24,192.168.1.1
dns=8.8.8.8;8.8.4.4;
method=manual

[ipv6]
method=disabled

网关

  在Linux系统中,网关是连接不同网络的设备,它充当不同网络之间的桥梁,负责将数据包从一个网络转发到另一个网络。当数据包的目的地不在本地网络时,默认网关会被用来转发数据包。

一、使用ip命令(临时配置,重启后失效)

查看当前网络配置

ip route show

添加默认网关

sudo ip route add default via <网关IP地址> dev <网络接口名称>

验证配置

ip route show

使用nmcli命令

查看当前网络配置

nmcli connection show

编辑连接配置

sudo nmcli connection modify <连接名称> ipv4.gateway <网关IP地址>

重启连接:

sudo nmcli connection down <连接名称>
sudo nmcli connection up <连接名称>

Linux 中 DNS 的定义与配置方法

DNS是互联网的核心服务之一,负责将人类可读的域名转换为机器可识别的 IP 地址

其核心作用包括:

  域名解析:实现域名与 IP 地址的映射。

  负载均衡:通过轮询分配访问请求到不同服务器。

  邮件路由:指导邮件服务器的投递路径。

DNS 配置方法

临时修改 DNS(重启失效)

sudo vi /etc/resolv.conf
 添加或修改 nameserver 行
nameserver 8.8.8.8        主 DNS
nameserver 1.1.1.1        备用 DNS
options timeout:1 attempts:2   超时与重试次数
永久配置 DNS

使用 nmcli

查看当前连接

nmcli con show

修改 DNS 配置

sudo nmcli con mod "连接名" \
  ipv4.dns "8.8.8.8 1.1.1.1" \
  ipv4.ignore-auto-dns yes      禁用 DHCP 提供的 DNS

重启连接生效

sudo nmcli con down "连接名" && sudo nmcli con up "连接名"

DNS 缓存管理

操作 命令
刷新 systemd-resolved 缓存 sudo systemd-resolve --flush-caches
清除本地应用缓存
强制重载 DNS 配置 sudo killall -HUP dnsmasq

你可能感兴趣的:(linux,运维,服务器)