linux 网络管理

发布时间 - 2025-07-16 00:00:00    点击率:

在现代社会,网络已成为人们生活中不可或缺的一部分。对于操作系统而言,网络功能的支持和管理显得尤为重要。本节课我们将探讨如何在centos8中管理网络。

NetworkManager和常用工具及其基本用法

NetworkManager介绍

在Linux系统中,传统的网络管理方式是通过名为"network"的服务来实现的。在CentOS7中仍然可以看到这个服务,但在CentOS8中已不再使用"network"服务,取而代之的是"NetworkManager"服务。NetworkManager服务简化了有线和无线连接的管理工作,并且能够管理各种类型的网络,包括物理网卡、虚拟网卡、以太网和非以太网等。

常用工具

  • nmcli:命令行工具
  • nmtui:文本图形界面工具
  • cockpit:基于web的管理工具

nmcli基本用法

nmcli命令的使用类似于Linux中之前的ip命令,支持tab补全,并且可以通过-h--help获取帮助信息。

[root@zutuanxue ~]# nmcli -h
[root@zutuanxue ~]# nmcli connection -h

可以看到,不同阶段获取的帮助内容有所不同,具体用法将在后续详细介绍。nmcli工具有两个常用命令:

  • nmcli connection(nmcli c):与连接相关的操作
[root@zutuanxue network-scripts]# nmcli connection
NAME   UUID                                  TYPE      DEVICE
ens33  b5ecf570-543c-4da7-b082-bdc073b56acb  ethernet  ens33
ens37  077945cb-1d12-4c06-bba3-562426336b67  ethernet  --

在查看时,有颜色的字体标注的是处于活跃状态的网卡,即已连接的;正常颜色的字体标记的是非活跃状态的网卡,即未连接的,未连接的网卡不生效。

  • nmcli device(nmcli d):与设备相关的操作
[root@zutuanxue network-scripts]# nmcli device
DEVICE  TYPE      STATE   CONNECTION
ens33   ethernet  已连接  ens33
ens37   ethernet  已断开  --
lo      loopback  未托管  --

在日常使用中,这两个命令相互配合,通过nmcli device可以查看到有哪些网络设备被NetworkManager托管,通过nmcli connection控制网络设备的连接状态。

使用nmcli命令设置网卡信息

查看网卡信息

[root@zutuanxue ~]# nmcli
ens33: 已连接 to ens33
#设备状态和名称
"Intel 82545EM"
#设备型号
ethernet (e1000), 00:0C:29:11:47:97, 硬件, mtu 1500
ip4 默认
inet4 192.168.1.55/24
route4 0.0.0.0/0
route4 192.168.1.0/24
inet6 fe80::ea62:91c6:114:18bb/64
route6 fe80::/64
route6 ff00::/8

为网卡设置静态IP

[root@zutuanxue ~]# nmcli connection add type ethernet con-name ens-test1 ifname ens37 ipv4.addresses 192.168.18.100/24 ipv4.gateway 192.168.18.1 ipv4.method manual
连接 "ens-test1" (da7fdc9a-e7cc-4a1c-8b2c-7751ed2fc4d2) 已成功添加。

启用新添加的连接

[root@zutuanxue ~]# nmcli connection up ens-test1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/16)

查看连接状态

[root@zutuanxue ~]# nmcli connection
NAME       UUID            TYPE      DEVICE
ens33      b5ecf5...  ethernet  ens33
ens-test1  da7fdc...  ethernet  ens37
ens37      077945...  ethernet  --

为网卡设置动态IP

[root@zutuanxue ~]# nmcli connection add type ethernet con-name ens-test2 ifname ens37 ipv4.method auto
连接 "ens-test2" (25b9dd2f-a4c0-452d-bd22-992cf12b55b2) 已成功添加。
[root@zutuanxue ~]# nmcli connection up ens-test2
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/17)
[root@zutuanxue ~]# nmcli connection
NAME       UUID              TYPE      DEVICE
ens33      b5ec... ethernet  ens33
ens-test2  25b9... ethernet  ens37
ens37      0779... ethernet  --
ens-test1  da7f... ethernet  --

交互式设置IP地址

[root@zutuanxue ~]# nmcli connection edit ens-test1
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
编辑 "addresses" 值:192.168.20.100/24
您是否也要将 "ipv4.method" 设为 "manual"?[yes]:yes
nmcli ipv4.addresses> back
nmcli ipv4> save
成功地更新了连接 "ens-test1" (da7fdc9a-e7cc-4a1c-8b2c-7751ed2fc4d2)。
nmcli ipv4> activate
正在监视连接激活(按任意键继续)
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/18)
nmcli ipv4> quit
[root@zutuanxue ~]# nmcli
ens37: 已连接 to ens-test1
"Intel 82545EM"
ethernet (e1000), 00:0C:29:11:47:A1, 硬件, mtu 1500
ip4 默认
inet4 192.168.20.100/24
route4 192.168.20.0/24
route4 192.168.18.1/32
route4 0.0.0.0/0
inet6 fe80::11c3:e0a4:f62e:9f31/64
route6 fe80::/64
route6 ff00::/8

启用和停用

[root@zutuanxue ~]# nmcli connection up ens-test1
连接已成功激活(D-Bus 活动路径:...
[root@zutuanxue ~]# nmcli connection down ens-test1
成功停用连接 "ens-test1"(D-Bus 活动路...

删除连接

[root@zutuanxue ~]# nmcli connection delete ens-test1
成功删除连接 "ens-test1" (4fc43f65-ea53-43a1-85d4-692e425fcd7d)。
[root@zutuanxue ~]# nmcli connection
NAME   UUID     TYPE      DEVICE
ens33  b5ec...ethernet  ens33
ens37  0779...ethernet  ens37
[root@zutuanxue ~]# nmcli connection show
NAME   UUID     TYPE      DEVICE
ens33  b5ec...  ethernet  ens33
ens37  0779...  ethernet  ens37

重新加载设置(不会立即生效)

[root@zutuanxue ~]# nmcli connection reload

重新加载指定的设置(不会立即生效)

[root@zutuanxue ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens37

生效方法

  • 启用设备
[root@zutuanxue ~]# nmcli connection up  ens37
连接已成功激活(D-Bus 活动路径...
  • 或者连接设备并更新设备
[root@zutuanxue ~]# nmcli device connect ens37
[root@zutuanxue ~]# nmcli device reapply ens37

查看设备及查看设备的详细信息

[root@zutuanxue ~]# nmcli device
DEVICE  TYPE      STATE   CONNECTION
ens37   ethernet  已连接  ens37
ens33   ethernet  已连接  ens33
lo      loopback  未托管  --
[root@zutuanxue ~]# nmcli device show ens33
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:11:47:97
GENERAL.MTU:                            1500
GENERAL.STATE:                          100(已连接)
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:         /org/freedesktop/NetworkMana...
WIRED-PROPERTIES.CARRIER:               开
IP4.ADDRESS[1]:                         192.168.1.55/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 102
IP4.DNS[1]:             202.106.0.20
IP4.DNS[2]:             114.114.114.114
IP6.ADDRESS[1]:         fe80::ea62:91c6:114:18bb/64
IP6.GATEWAY:            --
IP6.ROUTE[1]:           dst = fe80::/64, nh = ::, mt = 102
IP6.ROUTE[2]:           dst = ff00::/8, nh = ::, mt = 256, table=255

连接/断开网卡

[root@zutuanxue ~]# nmcli device connect/disconnect ens37

开启/关闭无线网络

[root@zutuanxue ~]# nmcli radio all on/off

开启/关闭NetworkManager的网络管理功能

[root@zutuanxue ~]# nmcli networking on/off

监控网络状态

[root@zutuanxue ~]# nmcli monitor (ctrl+c结束)
ens37: 停用中
网络管理器现在处于 "已连接(仅本地)" 状态
连接性现在是 "受限"
ens37: 已断开

询问NetworkManager网络连接状态(默认等待30秒)

[root@zutuanxue ~]# nm-online
正在连接...............   30s [online]

使用其他网络管理方式配置网络

nmtui

[root@zutuanxue ~]# nmtui

cockpit

[root@zutuanxue ~]# rpm -qa | grep cockpit
cockpit-packagekit-184.1-1.el8.noarch
cockpit-system-185-2.el8.noarch
cockpit-185-2.el8.x86_64
cockpit-bridge-185-2.el8.x86_64
cockpit-ws-185-2.el8.x86_64
cockpit-storaged-184.1-1.el8.noarch
[root@zutuanxue ~]# systemctl start cockpit


# centos  # linux  # 操作系统  # 工具  # red  # 的是  # 网络管理  # 可以看到  # 加载  # 将在  # 设为  # 但在  # 这两个  # 有所不同  # 可以通过 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Swift中switch语句区间和元组模式匹配  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  微信小程序 scroll-view组件实现列表页实例代码  网站制作软件有哪些,制图软件有哪些?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  浅谈redis在项目中的应用  详解jQuery中的事件  高防服务器:AI智能防御DDoS攻击与数据安全保障  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  ,在苏州找工作,上哪个网站比较好?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  长沙做网站要多少钱,长沙国安网络怎么样?  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  用v-html解决Vue.js渲染中html标签不被解析的问题  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  米侠浏览器网页背景异常怎么办 米侠显示修复  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Java类加载基本过程详细介绍  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  如何在搬瓦工VPS快速搭建网站?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  黑客入侵网站服务器的常见手法有哪些?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  JS实现鼠标移上去显示图片或微信二维码  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何在阿里云部署织梦网站?  如何做网站制作流程,*游戏网站怎么搭建?  WEB开发之注册页面验证码倒计时代码的实现  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何用AI帮你把自己的生活经历写成一个有趣的故事?  网站制作价目表怎么做,珍爱网婚介费用多少?  网站优化排名时,需要考虑哪些问题呢?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何制作一个表白网站视频,关于勇敢表白的小标题?  昵图网官方站入口 昵图网素材图库官网入口