)
超全Linux网络管理实战笔记从网络模型到nmcli/ss排查运维必看阅读前置本文涵盖网络基础理论 Linux网络查看/配置/排错全命令 端口冲突、服务启动失败真实案例适合运维新手、后端开发、云计算学习者收藏。适用场景日常服务器网络排查、虚拟机网络配置、端口冲突解决、静态/动态IP部署、DNS解析异常排查一、网络基础理论面试必考1.1 OSI 七层模型核心功能速记OSI 七层模型是网络通信的标准化分层架构各层独立工作、逐层封装数据实现通信标准化、模块化解耦每层核心职责如下物理层定义物理链路机械、电气、规程特性传输原始比特流提供物理链路故障检测。数据链路层完成帧封装、MAC寻址、差错校验提供相邻节点数据收发与链路流控保障局域网可靠传输。网络层核心为IP寻址、路由选择、网络互连屏蔽底层物理设备差异实现跨网段数据转发。传输层建立端到端传输连接负责差错恢复、流量控制、端口寻址保障进程间可靠/高效数据传输TCP/UDP。会话层管理进程会话的建立、维持、终止支持单/双向交互会话模式。表示层统一数据传输格式完成加密解密、格式转换、压缩解压解决两端数据兼容问题。应用层面向用户提供各类网络应用服务如文件传输、网页访问、域名解析、网络管理等。1.2 TCP/IP 四层模型互联网真实标准TCP/IP 模型是目前互联网、Linux系统通用的网络架构简化了OSI七层模型实用性更强分层如下网络接口层对应物理层数据链路层负责网卡数据收发、帧传输网际层对应网络层核心协议IP、ICMP负责路由寻址、跨网传输传输层对应传输层核心协议TCP、UDP负责端到端数据传输应用层对应会话层表示层应用层包含HTTP、SSH、DNS、FTP等应用协议1.3 IPv4 地址与路由核心原理1.3.1 IPv4 地址格式IPv4 为32位地址采用点分十进制展示配合子网掩码划分网段。示例10.1.8.10/24前缀/24前24位为网络位网段范围10.1.8.0 ~ 10.1.8.255广播地址10.1.8.255网络号10.1.8.01.3.2 路由转发规则直连路由同网段主机无需网关可直接通信默认路由default所有非直连网段流量统一转发至默认网关出口本文实验环境默认网关10.1.8.2二、Linux 网卡命名规范CentOS72.1 传统命名 vs 新式命名传统命名eth0、eth1、eth2热插拔、重启后网卡序号容易混乱生产环境不稳定新式命名RHEL7/CentOS7固定规则命名网卡名称永久不变适配虚拟化、物理机热插拔场景2.2 新式网卡命名规则命名格式设备前缀 硬件类型 端口编号前缀设备类型en以太网网卡最常用wl无线网卡ww蜂窝移动网卡中段字符硬件位置oOnboard主板板载网卡sSlotPCI 热插拔插槽网卡pPCI 总线设备网卡常见示例eno1板载以太网卡端口1ens32PCI插槽以太网卡wlp4s0PCI总线无线网卡✅ 系统无法匹配固定规则时会降级使用传统eth0命名三、Linux 网络信息查看命令运维高频3.1 查看网卡硬件与链路状态3.1.1 查看所有网卡简要信息# 查看网络设备清单输出包含网卡名称、运行状态、MAC地址快速判断网卡是否正常启用[rootserver ~16:51:27]# ip -br linklo UNKNOWN 00:00:00:00:00:00LOOPBACK,UP,LOWER_UPens33 UP 00:0c:29:52:b0:1cBROADCAST,MULTICAST,UP,LOWER_UPvirbr0 DOWN52:54:00:7d:5f:78NO-CARRIER,BROADCAST,MULTICAST,UPvirbr0-nic DOWN52:54:00:7d:5f:78BROADCAST,MULTICAST3.1.2 查看单网卡详细信息[rootserver ~16:51:00]# ip link show ens332: ens33:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdisc pfifo_fast state UP mode DEFAULT group default qlen1000link/ether 00:0c:29:52:b0:1c brd ff:ff:ff:ff:ff:ff3.2 查看IP地址与子网3.2.1 简洁查看所有IP[rootserver ~16:52:09]# ip -br alo UNKNOWN127.0.0.1/8 ::1/128 ens33 UP10.1.8.10/24 fe80::76d6:7ba1:73c9:e084/64 virbr0 DOWN192.168.122.1/24 virbr0-nic DOWN3.2.2 查看单网卡IP详情[rootserver ~16:52:37]# ip address show ens332: ens33:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdisc pfifo_fast state UP group default qlen1000link/ether 00:0c:29:52:b0:1c brd ff:ff:ff:ff:ff:ff inet10.1.8.10/24 brd10.1.8.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::76d6:7ba1:73c9:e084/64 scopelinknoprefixroute valid_lft forever preferred_lft forever重点关注inet IPv4地址、子网掩码、广播地址、网卡状态3.3 查看路由表核心看 default 默认网关决定外网出口# 推荐iproute2 新标准[rootserver ~16:53:59]# ip routedefault via10.1.8.2 dev ens33 proto static metric10010.1.8.0/24 dev ens33 proto kernel scopelinksrc10.1.8.10 metric100192.168.122.0/24 dev virbr0 proto kernel scopelinksrc192.168.122.1# 传统命令[rootserver ~16:55:39]# route -nKernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface0.0.0.010.1.8.20.0.0.0 UG10000ens3310.1.8.00.0.0.0255.255.255.0 U10000ens33192.168.122.00.0.0.0255.255.255.0 U000virbr0[rootserver ~16:56:03]# netstat -nrKernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface0.0.0.010.1.8.20.0.0.0 UG000ens3310.1.8.00.0.0.0255.255.255.0 U000ens33192.168.122.00.0.0.0255.255.255.0 U000virbr0路由解读10.1.8.0/24本机直连网段直接通信default via 10.1.8.2所有外网流量转发至网关10.1.8.23.4 查看DNS配置DNS 配置文件/etc/resolv.conf由NetworkManager自动生成[rootserver ~16:56:53]# cat /etc/resolv.conf# Generated by NetworkManagersearch fangbing.cloud nameserver223.5.5.5 nameserver223.6.6.6常用公共DNS223.5.5.5、223.6.6.6、114.114.114.114四、网络连通性排查工具4.1 ping 连通性测试可验证网关是否通、DNS是否正常、外网是否可达# -c发送4个包-w超时2秒结束[rootserver ~16:57:44]# ping baidu.com -c 4 -w 2PING baidu.com(124.237.177.164)56(84)bytes of data.64bytes from124.237.177.164(124.237.177.164):icmp_seq1ttl128time23.3ms64bytes from124.237.177.164(124.237.177.164):icmp_seq2ttl128time23.6ms --- baidu.compingstatistics ---2packets transmitted,2received,0% packet loss,time1011ms rtt min/avg/max/mdev23.326/23.510/23.695/0.239 ms结果判断能解析域名 → DNS配置正常能收到回包 → 网关、外网链路正常4.2 mtr 路由跟踪ping不通时用于定位断网节点查看数据包最远可达路由节点[rootserver ~17:02:40]# mtr -n 1.1.1.14.3 ss 端口与连接状态排查替代netstatss是Linux新版网络状态工具效率高于netstat用于查看端口监听、连接状态、进程占用。端口服务对照文件/etc/services常用ss命令合集参数作用-l只查看监听端口服务正在对外开放-a所有连接监听 已建立连接-n数字显示端口不解析服务名加速查询-p显示进程 PID、程序名称需要 root-4仅筛选 IPv4 连接-t只看 TCP 端口-u只看 UDP 端口# 查看已建立的SSH连接[rootserver ~17:03:44]# ss | grep :sshtcp ESTAB03610.1.8.10:ssh10.1.8.1:63584# 查看所有监听端口[rootserver ~17:05:02]# ss -l |grep :sshtcp LISTEN0128*:ssh *:* tcp LISTEN0128[::]:ssh[::]:*# 只看IPv4所有网络状态[rootserver ~17:05:43]# ss -a4|grep :sshtcp LISTEN0128*:ssh *:* tcp ESTAB03610.1.8.10:ssh10.1.8.1:63584# 数字端口显示不解析服务名[rootserver ~17:07:05]# ss -an4|grep :22tcp LISTEN0128*:22 *:* tcp ESTAB03610.1.8.10:2210.1.8.1:63584# 查看端口对应进程排错核心[rootserver ~17:08:06]# ss -lnp4|grep :22tcp LISTEN0128*:22 *:* users:((sshd,pid1214,fd3))五、Linux 网络配置实操nmtui nmcliCentOS7 默认使用NetworkManager管理网络推荐使用 nmtui/nmcli 配置不建议直接手动改配置文件。5.1 nmtui 图形化配置新手推荐终端可视化工具上下Tab操作支持动态/静态IP配置、网卡启停操作流程编辑连接 → 设置IP/网关/DNS → 重新激活网卡生效使用上下键、tab进行移动回车选中条目进入图形化设置[rootserver ~17:08:29]# nmtui编辑连接设置有线连接下移点击确定界面返回启用连接设置完成之后返回并确定设置完成之后看生效情况# 命令查看生效后的结果[rootserver ~17:26:56]# ip -br alo UNKNOWN127.0.0.1/8 ::1/128 ens33 UP10.1.8.10/24 fe80::76d6:7ba1:73c9:e084/64 virbr0 DOWN192.168.122.1/24 virbr0-nic DOWN ens35 UP10.1.1.10/24 fe80::892d:ae2c:fa7:b26f/645.2 nmcli 命令行配置生产常用5.2.1 网络全局启停# 关闭所有网络[rootserver ~17:32:11]# nmcli networking off# 查看设备状态网卡未连接[rootserver ~17:37:27]# ip -br alo UNKNOWN127.0.0.1/8 ::1/128 ens33 DOWN virbr0 DOWN virbr0-nic DOWN ens35 DOWN# 开启所有网络[rootserver ~17:33:32]# nmcli networking on# 查看网卡已连接[rootserver ~17:38:12]# ip -br alo UNKNOWN127.0.0.1/8 ::1/128 ens33 UP10.1.8.10/24 fe80::76d6:7ba1:73c9:e084/64 virbr0 DOWN virbr0-nic DOWN ens35 UP10.1.1.10/24 fe80::892d:ae2c:fa7:b26f/645.2.2 网卡设备管理DEVICE是设备也就是网卡。CONNECTION是连接也就是网卡的配置。一个 DEVICE 可以有多个配置同一时刻只能激活一个配置。# 查看设备状态[rootserver ~17:37:01]# nmcli deviceDEVICE TYPE STATE CONNECTION ens33 ethernet 已连接 ens33 ens35 ethernet 已连接 ens35# 断开网卡[rootserver ~17:39:04]# nmcli device disconnect ens35成功断开设备ens35。[rootserver ~17:39:22]# nmcli deviceDEVICE TYPE STATE CONNECTION ens33 ethernet 已连接 ens33 ens35 ethernet 已断开 --# 连接网卡[rootserver ~17:39:49]# nmcli device connect ens35成功用ens35853eebcf-30cd-3605-bac1-2312cd4384ed激活了设备。[rootserver ~17:40:00]# nmcli deviceDEVICE TYPE STATE CONNECTION ens33 ethernet 已连接 ens33 ens35 ethernet 已连接 ens35# 查看网卡详细信息[rootserver ~17:40:35]# nmcli device show ens35GENERAL.DEVICE: ens35 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:52:B0:26 GENERAL.MTU:1500GENERAL.STATE:100已连接 GENERAL.CONNECTION: ens35 GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/12 WIRED-PROPERTIES.CARRIER: 开 IP4.ADDRESS[1]:10.1.1.10/24 IP4.GATEWAY:10.1.1.2 IP4.ROUTE[1]: dst10.1.1.0/24, nh0.0.0.0, mt101IP4.ROUTE[2]: dst0.0.0.0/0, nh10.1.1.2, mt101IP4.DNS[1]:223.5.5.5 IP4.DNS[2]:223.6.6.6 IP6.ADDRESS[1]: fe80::892d:ae2c:fa7:b26f/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dstfe80::/64, nh::, mt101IP6.ROUTE[2]: dstff00::/8, nh::, mt256,table2555.2.3 动态IP配置DHCP自动获取# 查看connection清单[rootserver ~17:40:42]# nmcli connectionNAME UUID TYPE DEVICE ens33 44cd4a0d-baa5-4cf5-9626-9e4f10bb3c09 ethernet ens33 ens35 853eebcf-30cd-3605-bac1-2312cd4384ed ethernet ens35# 删除旧配置[rootserver ~17:42:15]# nmcli connection delete ens35成功删除连接ens35(853eebcf-30cd-3605-bac1-2312cd4384ed)。# 新建动态DHCP连接添加网卡自动获取ip[rootserver ~17:49:01]# nmcli connection add type ethernet ifname ens35 con-name ens35-dynamic连接ens35-dynamic(19e90143-98f4-4684-b7a2-781c0fc70f25)已成功添加。# 激活连接[rootserver ~17:49:51]# nmcli connection up ens35-dynamic# 查看连接情况[rootserver ~17:52:47]# nmcli connection showNAME UUID TYPE DEVICE ens33 44cd4a0d-baa5-4cf5-9626-9e4f10bb3c09 ethernet ens33 ens35-dynamic 19e90143-98f4-4684-b7a2-781c0fc70f25 ethernet ens35# 可以看到IP地址是自动获取[rootserver ~17:52:55]# nmcli connection show ens35-dynamicconnection.id: ens35-dynamic connection.uuid: 19e90143-98f4-4684-b7a2-781c0fc70f25 connection.stable-id: -- connection.type:802-3-ethernet......ipv4.method: auto5.2.4 静态IP配置服务器必备# 创建静态IP配置[rootserver ~17:58:30]# nmcli connection add type ethernet ifname ens35 con-name ens35-static ipv4.method manual ipv4.addresses 10.1.1.10/24连接ens35-static(bffa6e80-31c1-4e7b-a78d-e60e0bf2aec0)已成功添加。[rootserver ~18:00:25]# nmcli connection showNAME UUID TYPE DEVICE ens33 44cd4a0d-baa5-4cf5-9626-9e4f10bb3c09 ethernet ens33 ens35-dynamic 19e90143-98f4-4684-b7a2-781c0fc70f25 ethernet ens35 ens35-static bffa6e80-31c1-4e7b-a78d-e60e0bf2aec0 ethernet --# 配置网关、DNS[rootserver ~18:01:04]# nmcli connection modify ens35-static ipv4.gateway 10.1.8.2 ipv4.dns 223.5.5.5 ipv4.dns 223.6.6.6# 激活生效[rootserver ~18:03:09]# nmcli connection up ens35-static# 查看生效情况[rootserver ~18:04:58]# nmcli device show ens35GENERAL.DEVICE: ens35 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:52:B0:26 GENERAL.MTU:1500GENERAL.STATE:100已连接 GENERAL.CONNECTION: ens35-static GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/15 WIRED-PROPERTIES.CARRIER: 开 IP4.ADDRESS[1]:10.1.8.10/24 IP4.GATEWAY:10.1.8.2 IP4.ROUTE[1]: dst10.1.8.0/24, nh0.0.0.0, mt101IP4.ROUTE[2]: dst0.0.0.0/0, nh10.1.8.2, mt101IP4.DNS[1]:223.5.5.5 IP4.DNS[2]:223.6.6.6 IP6.ADDRESS[1]: fe80::1d39:b9cb:cd0e:7d45/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dstfe80::/64, nh::, mt101IP6.ROUTE[2]: dstff00::/8, nh::, mt256,table2555.2.5 其他配置# 停用连接[rootserver ~18:05:18]# nmcli connection down ens35-static成功停用连接ens35-staticD-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/15[rootserver ~18:07:53]# nmcli connectionNAME UUID TYPE DEVICE ens33 44cd4a0d-baa5-4cf5-9626-9e4f10bb3c09 ethernet ens33 ens35-dynamic 19e90143-98f4-4684-b7a2-781c0fc70f25 ethernet ens35 ens35-static bffa6e80-31c1-4e7b-a78d-e60e0bf2aec0 ethernet --# 根据需求添加路由[rootserver ~18:08:07]# nmcli connection modify ens35-static ipv4.routes 192.168.50.0/24 10.1.8.2# 查看路由情况[rootserver ~18:14:34]# ip routedefault via10.1.8.2 dev ens33 proto static metric100default via10.1.8.2 dev ens35 proto static metric10110.1.8.0/24 dev ens33 proto kernel scopelinksrc10.1.8.10 metric10010.1.8.0/24 dev ens35 proto kernel scopelinksrc10.1.8.10 metric101192.168.50.0/24 via10.1.8.2 dev ens35 proto static metric1015.3 网络配置文件说明配置文件目录/etc/sysconfig/network-scripts/DHCP配置BOOTPROTOdhcp静态配置BOOTPROTOnone手动配置IPADDR、PREFIX、GATEWAY、DNS⚠️ 手动改配置文件后必须重载生效[rootserver ~18:19:13]# nmcli connection reload[rootserver ~18:19:13]# nmcli connection up 网卡名六、主机名与域名解析配置6.1 主机名配置# 查看主机名[rootserver ~18:19:13]# hostnameserver.fangbing.cloud# 永久修改主机名写入配置文件/etc/hostname重启不失效[rootserver ~18:22:00]# hostnamectl set-hostname centos7.fangbing.cloud6.2 本地hosts解析优先级Linux域名解析优先级/etc/hosts本地 DNS服务器配置本地hosts[rootserver ~18:22:56]# vim /etc/hosts10.1.8.10 centos7.laoma.cloud centos76.3 DNS故障验证无DNS配置时无法解析公网域名ping公网报错未知的名称或服务配置正确DNS后可正常解析百度等公网域名。七、总结1、Linux网络核心理论分层 命令排查 真实故障复盘掌握ip/ss/nmcli三大工具可解决99%日常网络问题。2、生产排错优先级先看网卡状态 → 再查IP/路由 → 排查端口占用 → 查看服务日志journalctl。3、服务器固定业务必须使用静态IP办公终端可使用DHCP动态获取。机名写入配置文件/etc/hostname重启不失效[rootserver ~ 18:22:00]# hostnamectl set-hostname centos7.fangbing.cloud## 6\.2 本地hosts解析优先级 Linux域名解析优先级**/etc/hosts本地 \ DNS服务器** ### 配置本地hosts bash [rootserver ~ 18:22:56]# vim /etc/hosts 10.1.8.10 centos7.laoma.cloud centos76.3 DNS故障验证无DNS配置时无法解析公网域名ping公网报错未知的名称或服务配置正确DNS后可正常解析百度等公网域名。七、总结1、Linux网络核心理论分层 命令排查 真实故障复盘掌握ip/ss/nmcli三大工具可解决99%日常网络问题。2、生产排错优先级先看网卡状态 → 再查IP/路由 → 排查端口占用 → 查看服务日志journalctl。3、服务器固定业务必须使用静态IP办公终端可使用DHCP动态获取。 码字不易欢迎点赞、收藏、关注持续更新Linux运维实战干货有问题评论区交流