Linux进阶篇01:网络基础配置

本文基于Rocky9 网络基础配置实操,所有命令均为Rocky9桌面版默认预装,无需额外安装依赖,网卡名以ip addr输出为准,下文以我自己的enp0s3为例。

目录

一、网络设备识别

这组命令用于确认系统已识别的网卡硬件和当前运行状态,是网络配置前的基础排查步骤,避免因硬件未识别、网卡未激活导致后续配置失败

  1. 查看网卡硬件

    bash
    lspci | grep -i net # 列出所有内核已识别的PCI网卡硬件,未安装驱动的网卡不会显示

  1. 查看网卡运行状态

    bash
    ip addr # 查看所有网卡(含未激活)的IP、MAC地址、激活状态,用于确认网卡是否正常上线、已配置的IP是否生效
    ip link show up # 仅显示当前已激活的网卡,快速排查网卡链路是否连通

注:有线网卡常见为ens160/ens33,无线为wlan0/wlpXsX,回环口固定为lo

二、网卡配置

Rocky9默认使用NetworkManager管理网络,nmcli是其原生命令行工具,支持所有网络配置操作,无需依赖图形界面,配置后立即生效

  1. DHCP自动获取IP
    适用于家庭、办公等通过路由器自动分配IP的场景,无需手动配置网络参数,插网线/连Wi-Fi后即可自动联网
bash 复制代码
nmcli device status # 查看所有网卡的连接状态,确认目标网卡名称
sudo nmcli connection modify enp0s3 ipv4.method auto # 设置enp0s3为DHCP自动获取IP模式
sudo nmcli connection up enp0s3 # 激活配置,立即获取IP并联网
  1. 静态IP配置
    适用于服务器、桌面固定办公等需要固定IP的场景,避免DHCP分配的IP变动导致服务访问异常,配置后IP永久生效
bash 复制代码
sudo nmcli connection modify enp0s3 ipv4.method manual # 指定IP获取方式为静态
sudo nmcli connection modify enp0s3 ipv4.addresses 192.168.1.100/24 # 设置静态IP及子网掩码(/24等价于255.255.255.0)
sudo nmcli connection modify enp0s3 ipv4.gateway 192.168.1.254 # 设置默认网关,指向路由器IP
sudo nmcli connection modify enp0s3 ipv4.dns "192.168.1.1 8.8.8.8" # 设置首选/备用DNS服务器
sudo nmcli connection up enp0s3 # 激活配置,使静态IP生效

这里的ip,默认网关,要看自己宿主机的显示,用cmd输入ipconfig就能看到啦

  1. 网卡启停操作
  • 适用于修改网卡配置后刷新状态、临时禁用网卡排查网络故障的场景,仅影响当前操作的网卡,不会中断其他网络连接
bash 复制代码
sudo nmcli device disconnect enp0s3 # 停用enp0s3网卡,切断网络连接
sudo nmcli device connect enp0s3 # 启用enp0s3网卡,重新加载配置并联网
  • 快速刷新单网卡配置(推荐)
bash 复制代码
sudo nmcli connection down enp0s3 && sudo nmcli connection 
up enp0s3 # 先停用再启用,使修改的配置立即生效
  1. 网络服务管理
    适用于全局网络配置修改后(如修改所有网卡配置)批量刷新,会重启所有网络连接,远程操作需谨慎
bash 复制代码
sudo systemctl restart NetworkManager # 重启NetworkManager服务,全局重新加载所有网络配置
sudo systemctl reload NetworkManager # 重载配置,不中断现有网络连接(推荐替代restart)

三、网络配置文件

Rocky9的网络配置以文件形式持久化存储,修改配置文件后需重载生效,适合批量部署、离线修改场景

1. 网卡主配置文件

网卡的核心配置文件,所有nmcli的配置最终都会写入该文件,路径固定,修改时需保证文件名与网卡名一致

复制代码
bash
sudo cat /etc/NetworkManager/system-connections/enp0s3.nmconnection #查看配置文件

配置文件内容(Rocky9规范):

复制代码
ini
[connection] # 网卡连接的基础配置根区块,所有连接的核心属性都放在这里
id=enp0s3 # 连接配置的名称,系统识别该配置的唯一标识之一;要改成ens160规范的话,把这行的enp0s3换成ens160即可
uuid=d22421a5-ea7b-3a0f-b158-95e6c764f756 # 该连接的全局唯一身份证号,系统自动生成,修改后配置会失效,不要改动
type=ethernet # 网卡类型,代表普通有线以太网,和你之前要的ifcfg格式里的TYPE=Ethernet是同一个含义,只是大小写写法不同
interface-name=enp0s3 # 该配置绑定的物理网卡名称,必须和服务器实际网卡名完全一致才能生效;要改成ens160规范的话,把这行的enp0s3换成ens160即可
autoconnect-priority=-999 # 开机自动连网的优先级,-999是最低优先级,同设备有多个网卡时会优先连接优先级更高的配置;要优先连这个网卡就把值改成正数即可
timestamp=1784083746 # 系统自动记录的上次成功联网的时间戳,无实际配置作用,不用理会

[ethernet] # 物理网卡的特殊配置区块,为空代表没有特殊限制(比如没禁用MAC地址、没绑定特定硬件),正常情况都留空

[ipv4] # IPv4协议配置区块,管理服务器IPv4地址的获取规则
method=auto  # IPv4获取方式,auto代表DHCP自动从路由器获取IP,对应ifcfg格式里的BOOTPROTO=dhcp;要配置静态IP的话把这行改成manual,再补充地址、网关、DNS参数即可

[ipv6] # IPv6协议配置区块,管理服务器IPv6地址的获取规则
addr-gen-mode=eui64 # IPv6地址的自动生成规则,由系统自动计算,无需修改;如果不需要IPv6,把下面的method改成disabled即可
method=auto # IPv6获取方式,auto代表自动获取IPv6地址;服务器用不到IPv6的话可以把这行改成method=disabled

[proxy] # 代理配置区块,为空代表未开启任何代理,无需修改
bash 复制代码
sudo nmcli connection reload # 让NetworkManager重新加载所有配置文件
sudo nmcli connection up enp0s3 # 激活配置,使修改生效

2. DNS配置说明

DNS配置分为静态和动态两类:静态DNS直接写入网卡配置文件,动态DNS由NetworkManager自动生成,无需手动修改

bash 复制代码
cat /etc/resolv.conf # 查看当前生效的DNS配置,由NetworkManager自动生成,手动修改会被覆盖

静态DNS解析(优先级高于动态DNS):直接编辑/etc/hosts文件,格式为IP 域名,适用于本地测试、内部服务映射

3. 主机名配置

主机名是系统的唯一标识,用于网络识别、日志标记,修改后立即生效且永久保存

复制代码
bash
hostname # 查看当前主机名,快捷命令
hostnamectl # 查看主机详细信息
sudo hostnamectl set-hostname rocky9-test # 设置主机名为rocky9-test,立即生效无需重启

4. 单网卡多IP(IP别名)

适用于一台服务器需要绑定多个业务IP。一句话类比:1张网卡=1个办公室;多IP=给这间办公室办多张门禁卡,刷哪张都能进同一个屋。

最常用用途:一台服务器搭多个独立网站,每个网站绑一个IP,不用额外买服务器。

① nmcli快捷配置(推荐)

复制代码
bash
sudo nmcli connection modify enp0s3 +ipv4.addresses 192.168.1.101/24 # 为enp0s3追加额外IP,+号为追加标记,省略会直接覆盖原有IP配置
sudo nmcli connection up enp0s3 # 激活配置,新增IP立即生效
ip addr show enp0s3 # 验证新增IP:原生模式下不会显示enp0s3:1这类别名,直接在enp0s3条目下看到两个inet地址即为生效
ping 192.168.1.101 # 验证新增IP连通性
# 注:可多次执行该命令追加更多IP,原生无需单独命名别名网卡,若需单独启停某IP可参考下方keyfile配置

② 原生keyfile配置

Rocky9原生配置文件路径为/etc/NetworkManager/system-connections/

无需使用老派的ifcfg-ens160:1命名,推荐命名为enp0s3-1.nmconnection(数字随IP数量递增):

复制代码
bash
sudo vim /etc/NetworkManager/system-connections/enp0s3-1.nmconnection # 新建别名IP的配置文件
# 原生keyfile强制要求权限,否则NetworkManager会忽略配置
sudo chmod 600 /etc/NetworkManager/system-connections/enp0s3-1.nmconnection
sudo chown root:root /etc/NetworkManager/system-connections/enp0s3-1.nmconnection

别名配置文件内容:

复制代码
ini
[connection]
id=enp0s3-1 # 别名连接名称,和文件名前缀保持一致
uuid=$(uuidgen) # 必须生成新的UUID,不能和主网卡enp0s3的UUID重复,执行uuidgen命令即可生成
type=ethernet
interface-name=enp0s3 # 绑定到物理网卡enp0s3,无需写enp0s3:1这类虚拟设备名
autoconnect=true # 开机自动激活该IP

[ipv4]
method=manual # 别名IP必须为静态配置
addresses=192.168.1.101/24 # 别名IP地址,多个IP用逗号分隔:192.168.1.101/24,192.168.1.102/24
# 无需配置GATEWAY和DNS,自动继承主网卡enp0s3的配置
ignore-auto-dns=true

[ipv6]
method=disabled # 关闭IPv6,按需调整为auto/manual

[proxy]

bash
sudo nmcli connection reload # 重新加载所有配置
sudo nmcli connection up enp0s3-1 # 激活别名IP连接
ip addr show enp0s3 # 验证:会看到enp0s3下新增的192.168.1.101地址

单网卡多ip已经配置成功啦,现在可以用两个 ip管理我的虚拟机了

四、小结

通过本次实践,我们完成了 Rocky Linux 网络配置的基础学习与实操,核心掌握内容如下:

  1. 网卡与基础配置

掌握了网卡状态查看命令 ip addr,能准确识别出网卡名称(如 enp0s3)及当前的 IP 地址、链路状态。

理解了 UP状态代表网卡已激活并正常工作。

  1. 多 IP 配置实战

成功在单网卡 enp0s3上配置了主备两个 IP(192.168.1.101静态 & 10.0.2.15动态)。

验证了 Linux 系统支持"一网卡多 IP"特性,且配置生效后,系统内部服务可通过这两个地址同时对外提供服务。

相关推荐
汇智信科14 小时前
图谱、向量、关键词、SQL多路一体,FastKG垂域召回率100%拉满
网络·数据库·ai编程·汇智信科·hsim·fastclaw·汇智龙虾
liulilittle14 小时前
论分布式系统的半开闭问题
服务器·网络·分布式·系统架构·竞态
FreeBuf_14 小时前
仅用六分钟,黑客借助Gemini CLI自主构建并迁移C&C僵尸网络
网络·人工智能
cyforkk15 小时前
Vercel 绑定自定义域名极简配置指南
服务器·前端·网络
Ai拆代码的曹操15 小时前
K8s Pod Pending 逐层排查:从 FailedScheduling 到 PVC StorageClass 不存在的实战记录
java·linux·kubernetes
Yang961116 小时前
探索无线新视界:鼎讯信通DXMP系列频谱仪模块深度剖析
运维·网络
wangbing112516 小时前
JPA下自定义主键
java·linux·服务器
__log16 小时前
弱网环境下的“生命线“:从AI流式响应到大文件上传的稳定性
开发语言·人工智能·php
bush416 小时前
正点原子imx6ull-uboot,奇怪的问题
linux·学习
dddwjzx17 小时前
嵌入式Linux C应用编程——Framebuffer应用编程
linux·嵌入式