当前位置: 首页 > news >正文

七、Linux网络管理


一、网络基础概念

1. IP地址

  • 定义:主机在网络中的唯一标识,计算机通过IP地址相互找到对方。
  • 无IP的后果:即使知道对方IP也无法通信(类比:没有住所,知道地址也去不了)。
  • 版本
    • IPv4:32位二进制,点分十进制表示,如192.168.200.128
    • IPv6:128位,十六进制表示,如fe80::20c:29ff:fea0:879b

2. 公网IP vs 私网IP

  • 公网IP:互联网上全球唯一,任何人可访问。
  • 私网IP:仅在内部网络使用,不能直接路由到公网。常见私网网段:
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16

3. 子网掩码

  • 作用
    • 决定IP地址所在的网段(子网)。
    • 决定该网段可分配的IP地址数量。
  • 表示方法
    • 点分十进制:255.255.255.0
    • CIDR前缀长度:/24
  • 计算示例(以192.168.200.128/24为例):

转成二进制:192等于2^7=128 再加上 2^6=64 相加=192

IP: 11000000.10101000.11001000.10000000 掩码: 11111111.11111111.11111111.00000000 #做与运算,1和1等于1,其他都是0,只要两个1,才是1 与运算结果: 11000000.10101000.11001000.00000000 → 192.168.200.0/24(网段)
- 主机位全0:网段地址(`192.168.200.0`) - 主机位全1:广播地址(`192.168.200.255`) - 可用地址范围:`192.168.200.1` ~ `192.168.200.254`(共254个)
  • 速算公式2^(主机位数) - 2= 可用IP数(减2为网段地址和广播地址)。

4. 网关

  • 定义:不同网段之间通信的出口地址。
  • 位置:通常配置在路由器或三层交换机的接口上。
  • 作用:跨网段访问时,数据包先发给网关,再由网关转发。
  • 规则:一个主机只能有一个默认网关(默认路由),多个会导致混乱。

5. DNS(域名系统)

  • 定义:Domain Name System,域名与IP地址相互解析的服务。
  • 解析类型
    • 正向解析:域名 → IP(如www.baidu.com183.2.172.177
    • 反向解析:IP → 域名
  • 常用DNS地址
    • 运营商DNS
    • 公共DNS:223.5.5.5(阿里)、114.114.114.1148.8.8.8(谷歌)
    • 企业内部DNS(如192.168.200.2
  • 查看DNScat /etc/resolv.conf
  • 测试解析nslookup www.baidu.com

二、网卡设备命名规则

1. 传统命名(RHEL 6及以前,云主机常见)

  • 格式:eth0,eth1,eth2……
  • 特点:按设备检测顺序命名,规律性强,适合自动化脚本。
  • 缺点:可能因硬件变动导致顺序错乱。

2. 基于固件的命名(RHEL 7及以后默认)

  • 格式示例:ens160,eno1,enp2s0,wlx00c0ca123456……
  • 组成:
    • 接口类型
      • en:以太网(Ethernet)
      • wl:无线局域网(WLAN)
      • ww:无线广域网(WWAN)
    • 固件类型
      • s:热插拔(hotplug)
      • o:板载设备(onboard)
      • p:PCI设备
    • 数字:随机ID或端口号

3. 修改为传统命名(ethx)

RHEL 9 方法:
cd/boot/loader/entries/ls# 找到以 .conf 结尾的文件vim89387011b8e9411fbbe5334171282a27-5.14.0-362.8.1.el9_3.x86_64.conf# 在 options 行添加:net.ifnames=0 biosdevname=0# 重启reboot

如果要改回来,把增加的参数删除掉,重启即可

RHEL 7/8 方法:
vim/etc/default/grub# 在 GRUB_CMDLINE_LINUX 中添加:net.ifnames=0 biosdevname=0grub2-mkconfig-o/boot/grub2/grub.cfgreboot

如果要改回来,把增加的参数删除

执行grub2-mkconfig -o /boot/grub2/grub.cfg命令并重启即可

4. 自定义命名(通过 udev 规则)

  • 根据 MAC 地址绑定固定名称,如demo1,demo2

  • 配置文件:/etc/udev/rules.d/10-names.rules

  • 默认是没有文件的,10-network-names.rules是我创建

  • 规则文件命名格式:数字-描述.rules,数字越小优先级越高。

  • 模板文件路径:/lib/udev/rules.d/60-net.rules

示例:


ACTION=="add",SUBSYSTEM=="net", ATTR{address}=="00:0c:29:0e:ed:de",NAME="zhaomi"

1.把模板文件复制到/etc/udev/rules.d,这里重命名为10-zhaomi.rules

2.打开并编辑文件,把DRIVERS删除,把ATTR后面和NAME前面的内容删除,并把type改成address

3.把MAC地址粘贴到对应位置

4.保存,reboot重启


三、查看网络信息的命令

信息类型命令说明
IP、掩码、广播、MAC、收发统计ifconfig默认只显示激活网卡;ifconfig -a显示所有
同上,功能更强ip a/ip address show可显示多个IP,支持彩色输出
DNS地址cat /etc/resolv.conf文件中nameserver
路由表(网关)route -n-n不解析主机名,显示数字IP
路由表ip route/ip r现代推荐
  • 注意:最小化安装可能没有ifconfigroute,需安装net-tools包,但ip命令默认存在。
示例:ifconfig

一个网卡是可以绑定多个地址的(ip命令显示更全)

lo网卡是本地回环地址,127.0.0.1

  • 网卡名:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">ens160</font>
  • 网卡状态:UP(已启用) RUNNING (正在运行),DOWN(未激活)
  • MAC 地址:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">00:0c:29:0e:ed:de</font>(和你之前规则里的 MAC 是同一个)
  • IPV4 地址:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">172.10.0.128</font>
  • IPV6地址: fe80::20c:29ff:fe0e:edde
  • 子网掩码:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">255.255.255.0</font>
  • 广播地址:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">172.10.0.255</font>
  • RX packets 接受包的情况
  • RX errors 0 丢弃 包的情况
  • TX packets 发送包的情况
  • TX errors 发送失败包的情况
示例:DNS地址

nameserver后面就是网关

示例:路由表/网关地址

**默认网关**是:<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">192.168.146.2</font>

ip route 最小化也有这个命令


四、网络配置命令

1. 临时配置(重启失效)

ifconfig 用法(会覆盖):
ifconfigens192192.168.200.200/24# 配置IP+掩码ifconfigens192 up# 启用网卡ifconfigens192 down# 禁用网卡ifconfigens192 del192.168.200.200# 删除IP
ip 用法(新增):
ipaddradd192.168.200.110/24 dev ens192# 添加IPipaddr del192.168.200.200/24 dev ens192# 删除IPiplinksetens160 up# 启用设备iplinksetens160 down# 禁用设备

ip可以为同一网卡添加多个IP地址(secondary IP),ifconfig只能显示一个。

2. 永久配置(RHEL 7+ 使用 NetworkManager)

网卡配置文件位置:
  • RHEL 9/etc/NetworkManager/system-connections/*.nmconnection
  • RHEL 7/8/etc/sysconfig/network-scripts/ifcfg-*(部分仍支持)
NetworkManager 核心工具:
  • nmtui:文本图形界面,适合初学者。
  • nmcli:命令行,功能强大,推荐掌握。

3. nmcli 详细用法

设备管理(device):
nmcli device status# 查看所有设备状态nmcli device connect ens160# 激活设备(若没有connection会自动创建)nmcli device disconnect ens160# 断开设备(但connection仍存在)

查看所有设备

断开设备

断开就没 IP了

重新连接

指定网卡的详细信息

连接管理(connection):
  • 一个connection对应一个配置文件(.nmconnection),名字由con-NAME指定。(NAME是文件内容的 id字段名)
  • 注意nmcli connection后面跟的是连接名,不是设备名(虽然通常相同)。

语法:nmcli connection name/UUID

可以跟name也可以跟UUID的值

nmcli connection show# 列出所有连接(含UUID、设备、类型)nmcli connection up ens192# 激活连接(up后设备才会获得IP)nmcli connection down ens192# 停用连接nmcli connection delete ens160# 删除连接(同时删除配置文件)
新增 connection(为一张新网卡配置永久IP):
nmcli connectionaddtypeethernet con-name mynet ifname ens160\ipv4.method manual ipv4.addresses192.168.200.100/24\ipv4.dns223.5.5.5 ipv4.gateway192.168.200.2 autoconnectyes
  • type ethernet:有线网卡类型
  • con-name:连接名(自定义)
  • ifname:物理设备名
  • ipv4.methodmanual(静态)或auto(DHCP)
  • autoconnect yes:开机自动激活
修改已有 connection:
nmcli connection modify mynet ipv4.addresses192.168.200.101/24#覆盖nmcli connection modify mynet +ipv4.addresses192.168.200.101/24#+号新增,-号删除nmcli connection modify mynet ipv4.dns114.114.114.114#上同nmcli connection up mynet# 修改后需重新激活
手动修改配置文件后生效方式:
  • 不推荐直接改文件,但若改了,需要:
systemctl restart NetworkManager nmcli connection up<连接名># 或nmcli connection reload nmcli connection up<连接名>

五、路由配置

路由类型

  • 默认路由(缺省路由):目标任意,通过指定网关(0.0.0.0/0
  • 主机路由:到特定主机(如1.1.1.1/32
  • 子网路由:到特定网段(如172.16.0.0/24

route 命令(net-tools)

# 添加主机路由routeadd-host1.1.1.2 gw192.168.200.2# 添加子网路由routeadd-net172.16.0.0/24 gw10.10.10.1# 添加默认路由routeadddefault gw192.168.200.2# 删除路由(将 add 替换为 del)route del-net172.16.0.0/24

4个255就是主机路由

ip route 命令(iproute2)

# 主机路由iprouteadd1.1.1.1 via192.168.200.2 dev ens160# 子网路由iprouteadd2.2.2.0/24 via192.168.200.2 dev ens160# 默认路由iprouteadddefault via192.168.200.2 dev ens160# 查看路由表iproute show# 删除路由iproute del2.2.2.0/24

重要:一台主机只能有一个默认路由。若配置多个,需要通过metric指定优先级,否则可能导致网络异常。


六、主机名管理

查看主机名

hostname# 短主机名hostnamectl# 详细信息

修改主机名(永久生效)

hostnamectl set-hostname lab1.example.com bash/su-,重新登录 后生效
  • 自动写入/etc/hostname,修改这个文件一样可以
  • 旧方法(临时):hostname 新名字(重启失效)

执行完命令主机名没有立即生效,所有我们要bash一下

主机名与 hosts 文件

  • 文件:/etc/hosts
  • 作用:本地静态解析,优先级高于DNS。
  • 格式:
127.0.0.1 localhost localhost.localdomain 192.168.200.128 lab1.example.com lab1

七、服务与端口

1. 端口概念

  • 每个网络服务监听一个或多个端口(TCP或UDP)。
  • 常见端口:
    • SSH:22/tcp
    • HTTP:80/tcp
    • HTTPS:443/tcp
    • DNS:53/tcp + 53/udp

2. 端口与服务映射文件

cat/etc/services# 列出常用服务与端口号

3. 查看监听端口

  • TCP:可靠
  • UDP:不可靠
ss 命令(推荐,性能优于 netstat)

如果你想查看哪些客户端和当前主机做了连接那么使用ss-an查询

ss-tunlp# 选项:# -t TCP连接# -u UDP连接# -n 不解析服务名(显示数字端口)# -l 仅显示监听状态# -p 显示进程PID和名称
netstat 命令(需安装 net-tools)
netstat-tunlp# 选项含义同上
  • 示例输出:
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234))

表示 sshd 监听在 22 端口。

4. 查看已建立的连接

ss-an# 所有连接(包括非监听)

八、双网卡绑定(Bonding)

概念

  • 将多张物理网卡虚拟成一张逻辑网卡,提供链路冗余或负载均衡。
  • 常见模式:
    • bond0:轮询(round-robin),负载均衡,需交换机支持。
    • bond1:主备(active-backup),高可用,一主一备。
    • bond4:802.3ad(LACP),链路聚合,需交换机配置。

实验环境准备(VMware)

  • 虚拟机添加至少两张网卡(如 ens192、ens224),模式相同(均为 NAT 或仅主机)。
  • 使用nmcli配置(RHEL 7+ 推荐)。

配置 bond1(主备模式)步骤

1. 创建 bond 虚拟接口

如果创建的设备不存在,会创建一个虚拟设备

nmcli connectionaddtypebond con-name bond1-con ifname bond1 mode active-backup
  • con-name:连接名
  • ifname:虚拟设备名(bond1
  • modeactive-backup(主备),balance-rr(轮询),802.3ad(LACP)
2. 添加物理网卡到 bond
nmcli connectionaddtypebond-slave con-name bond1-ens192 ifname ens192 master bond1 nmcli connectionaddtypebond-slave con-name bond1-ens224 ifname ens224 master bond1
  • type bond-slave:指定为 bond 的从属接口
  • master bond1:指定所属的 bond 接口名(设备名)
3. 配置 bond 的 IP 地址
nmcli connection modify bond1-con ipv4.method manual ipv4.addresses10.10.10.100/24
4. 激活 bond
nmcli connection up bond1-con

查看 bond 状态

cat/proc/net/bonding/bond1
  • 输出会显示:bonding 模式、当前活动从属网卡(Currently Active Slave)、各从属网卡状态等。

注意事项

  • VMware 环境下,bond 后各物理网卡的 MAC 地址会变成相同(因为虚拟交换机的行为)。
  • 测试主备:断开当前活动网卡(如nmcli device disconnect ens192),观察网络是否依然畅通,活动网卡是否自动切换到 ens224。
  • 删除 bond:
nmcli connection delete bond1-con nmcli connection delete bond1-ens192 nmcli connection delete bond1-ens224

九、VMware 三种网络模式(虚拟化通用)

模式能否上网宿主机能否访问外部能否访问虚拟机说明
桥接模式✅(需同网段)✅(需同网段)复用物理网卡,虚拟机与宿主机在同一局域网
NAT模式✅(仅宿主机通过VMnet8)❌(需端口转发)通过SNAT上网,宿主机可访问,外部不可直接访问
仅主机模式✅(通过VMnet1)纯内部网络,无上行链路

1. 桥接模式

  • 原理:将物理网卡当作虚拟交换机,虚拟机直接接入该交换机。
  • 网络要求:虚拟机的IP需与物理网卡所在子网一致(如物理机IP是192.168.1.10/24,虚拟机也需配置同一网段)。
  • 优点:可被外部直接访问,适合提供服务。

2. NAT模式

  • 原理:通过虚拟NAT设备做源地址转换(SNAT),虚拟机共享宿主机IP上网。
  • 默认网关:子网的第二个地址(如192.168.x.2)。
  • 宿主机访问:通过虚拟网卡VMnet8(IP 通常为192.168.x.1)。
  • 外部访问:默认不行,但可配置端口转发(DNAT)实现。

3. 仅主机模式

  • 原理:虚拟交换机没有上行链路,完全隔离,只能与宿主机和其他同模式虚拟机通信。
  • 宿主机访问:通过虚拟网卡VMnet1
  • 常见用途:搭建内部测试环境,不需要上网的场景。

4. 常见误区澄清

  • “禁用宿主机上的 VMnet1 或 VMnet8,虚拟机之间仍能通信?”
    是的,VMnet 网卡仅用于宿主机与虚拟机的通信,虚拟机之间的通信在虚拟交换机内部完成,不受影响。
  • “NAT 模式下虚拟机上网依赖宿主机物理网卡是否正常?”
    是的,只要宿主机能上网,虚拟机就能通过 NAT 上网。

十、补充:网桥(Bridge)

  • 作用:类似于 bond,但用于连接多个网络设备(如虚拟机网卡和物理网卡),实现二层交换。
  • 配置示例(使用 nmcli):
nmcli connectionaddtypebridge con-name br0-con ifname br0 nmcli connectionaddtypebridge-slave con-name br0-ens192 ifname ens192 master br0 nmcli connection modify br0-con ipv4.method manual ipv4.addresses192.168.200.50/24 nmcli connection up br0-con
  • 查看网桥状态:brctl show(需安装 bridge-utils)或bridge link show

十一、实验建议(自查清单)

  1. 使用 ifconfig 临时配置 IP,重启后验证是否失效。
  2. 使用 ip 命令为同一网卡添加多个 IP,查看ip a输出。
  3. 使用 nmcli 永久配置静态 IP,修改后重启 NetworkManager 并验证。
  4. 配置 bond1 并测试主备切换:拔掉(或 down)主网卡,ping 是否中断。
  5. 使用 ss 命令查看 sshd 监听端口
  6. 修改主机名,并通过hostnamectl确认。
  7. 在 VMware 中分别测试三种网络模式,观察 IP 分配、能否 ping 通网关、能否访问外网。

http://www.jsqmd.com/news/977532/

相关文章:

  • 告别静态数据!用ArcGIS Knowledge实战企业级时空知识图谱(附配置流程)
  • 3个关键步骤解锁PCL2启动器内存优化:让低配电脑流畅运行大型模组
  • 029、Web 搜索与抓取:WebFetch、WebSearch 在研究型任务中的策略与信息整合
  • Windows系统定制化封装
  • Codex Mini使用教程:手机远程连接Mac版Codex客户端教程
  • Meltano:声明式的数据集成引擎
  • P2056 [ZJOI2007] 捉迷藏 / abc460_f - Farthest Pair Query
  • 保姆级教程:在CentOS 7上一步步搞定Oracle 12c数据库安装与配置(附常见问题排查)
  • AI 驱动的云原生智能运维(AIOps)深度解析:从 eBPF+ML 异常检测到 LLM 辅助故障诊断的工程实践
  • SQLPlus简介
  • Type-I错误与Type-II错误:统计推断中的风险权衡本质
  • 飞书文档转Markdown:一键解决跨平台文档迁移难题
  • 超标量流水线和超流水线:CPU提速的黑科技
  • 广州TikTok代运营公司推荐:2026 权威榜单与深度解析(更新时间2026-06-08 15:28:08) - 趣谈科技事物
  • GetQzonehistory:5分钟永久备份QQ空间所有历史记忆,告别数据丢失焦虑
  • 如何快速解决Krita AI Diffusion插件中SD3模型CLIP文件缺失问题:完整配置指南
  • 人工智能日报 每日AI新闻(2026年6月7日):提示注入防护、苹果AI预期与中美Agent生态升温
  • 【计算机毕业设计案例】基于springboot+微信小程序的旅游线路定制微信小程序(程序+文档+讲解+定制)
  • AI资讯与实时新闻日报 | 2026年6月7日
  • 深度剖析AI视觉瞄准系统:基于YOLOv5的实时游戏目标检测实战指南
  • g3800,g3810,ip2700,g5080,g1800,ts3470,TS8380,ts6480报错5B00,P07,E08,5b02,1704,1700,5b04废墨垫清零,亲测有用。
  • Python 实战:用 wxPython 写一个 MD5 文件查重清理工具
  • 2026 在校大学生可以考哪些经管专业证书
  • tcpdump 与 Wireshark 网络抓包实战:远程抓包、过滤表达式、流量分析
  • 南京大学LaTeX论文模板:3步搞定专业学位论文排版
  • 微信小程序计算机毕设之于springboot+微信小程序的扶贫助农系统及其小程基于springboot+微信小程序的扶贫助农系统及其小程序的实现(完整前后端代码+说明文档+LW,调试定制等)
  • 网盘下载速度慢?这6款工具帮你突破限速,让下载速度提升10倍
  • 2026年 磁珠厂家推荐排行榜:东莞插件磁珠/空心磁珠/抗干扰磁珠/电源磁珠全品类优质工厂与品牌深度盘点 - 品牌发掘
  • 如何快速上手COM3D2 MaidFiddler:终极实时编辑器指南
  • 我是怎么把 AI API 网关服务跑通的:域名、邮件、支付、上游渠道