当前位置: 首页 > 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.gsyq.cn/news/1489257.html

相关文章:

  • Codex Mini使用教程:手机远程连接Mac版Codex客户端教程
  • P2056 [ZJOI2007] 捉迷藏 / abc460_f - Farthest Pair Query
  • Windows系统定制化封装
  • 飞书文档转Markdown:一键解决跨平台文档迁移难题
  • AI资讯与实时新闻日报 | 2026年6月7日
  • 人工智能日报 每日AI新闻(2026年6月7日):提示注入防护、苹果AI预期与中美Agent生态升温
  • 如何快速解决Krita AI Diffusion插件中SD3模型CLIP文件缺失问题:完整配置指南
  • tcpdump 与 Wireshark 网络抓包实战:远程抓包、过滤表达式、流量分析
  • g3800,g3810,ip2700,g5080,g1800,ts3470,TS8380,ts6480报错5B00,P07,E08,5b02,1704,1700,5b04废墨垫清零,亲测有用。
  • 83万人缺口+31%薪资涨幅:2026高考志愿填报,金融数据赛道到底怎么选?
  • WaveTools终极指南:如何轻松解锁鸣潮120帧并优化游戏体验
  • C# + Modbus TCP + 西门子S7-1200:1000点位工业数据采集系统稳定运行12个月总结
  • Outline 自托管团队知识库/Wiki 搭建教程(Notion 替代方案)
  • 职场工作总结appAI能力比拼哪个好?2026实测多款对比后结果超出多数人预期
  • 从Notebook到生产:机器学习模型落地的七道生死关
  • 终极Windows 11系统优化指南:如何用Win11Debloat免费打造纯净高效系统
  • Plain Craft Launcher 2:高效实用的Minecraft启动器深度解析与实战指南
  • CompressO:3分钟学会如何将大文件压缩到极致,释放90%存储空间!
  • 同一个 AI,为什么到你项目里就开始自作主张——CLAUDE.md 到底该写什么
  • 2026年厦门二手专用车/特种车推荐榜:二手环卫洒水车、扫路车、垃圾车、高空作业车厂家选购指南 - 品牌发掘
  • 错过标讯、筛选太累?2026招投标团队如何摆脱无效搜索
  • 我用了半年只留下这1个,2026职场视频总结效率准确率胜出工具真心太香了
  • 基于NXP多PMIC的Zynq UltraScale+ MPSoC高可靠电源与功能安全设计
  • 京东天猫苏宁商品数据抓取工具包+京东评论情感打分脚本(含Scrapy/Requests双实现、词典规则分析、多平台适配)
  • 026 文件搜索高级技巧:正则表达式深度使用、多行模式、文件类型过滤与上下文控制
  • 律师拜访客户整理视频2026年5款提升视频内容整理效率与准确率工具,省下90人工核对时间
  • 百度网盘macOS版终极加速指南:免费解锁全速下载体验
  • 从Eclipse到IDEA:iObjects Java组件在不同IDE下的环境配置差异与实战技巧
  • WarcraftHelper:魔兽争霸终极优化指南 - 解锁地图限制、宽屏支持与性能提升
  • 刚跑完2026一季度区域客户拜访 测了十多款视频号内容总结工具终见产品胜出