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

Ubuntu 22.04 网络配置疑难:为何 netplan apply 后 IP 仍“顽固”不变?

1. 当netplan apply失效时我们到底遇到了什么最近在帮朋友调试一台Ubuntu 22.04服务器时遇到了一个特别顽固的问题明明用netplan修改了IP地址执行netplan apply也没报错但重启后IP地址就是不变。这就像你明明调好了闹钟第二天早上却发现它根本没响一样让人抓狂。这个问题其实比想象中更常见。根据我的经验在Ubuntu 22.04上至少有三种情况会导致这种配置不生效的现象Open vSwitch服务未运行特别是当你使用虚拟化环境时cloud-init的干扰这个云环境标配工具经常好心办坏事NetworkManager的冲突桌面版Ubuntu更容易遇到最让人困惑的是这些情况执行netplan apply时通常都不会报错让你误以为配置已经生效了。下面我们就来逐个击破这些顽固分子。2. Open vSwitch看不见的配置管家2.1 为什么OVS会导致IP配置失效Open vSwitchOVS就像是一个隐形的网络管家特别常见于KVM虚拟化环境和OpenStack平台。它通过ovsdb-server服务管理网络配置当这个服务没运行时你的netplan配置就找不到管家来执行。我遇到过最典型的情况是用户修改了/etc/netplan/下的配置文件执行netplan apply时一切正常但重启后发现IP地址没变ovsdb-server服务处于停止状态查看日志发现OVS相关的报错2.2 完整解决方案这里给出比常规方案更全面的解决步骤# 1. 首先确认OVS是否安装 dpkg -l | grep openvswitch # 2. 如果未安装使用以下命令安装比常规方法多加了调试工具 sudo apt update sudo apt install openvswitch-switch openvswitch-common -y # 3. 启动服务并设置开机自启增加重试机制 sudo systemctl restart ovsdb-server || sudo systemctl start ovsdb-server sudo systemctl enable --now ovsdb-server # 4. 深度检查服务状态比单纯看status更全面 sudo systemctl status ovsdb-server journalctl -u ovsdb-server --since 1 hour ago | grep -i error我曾经遇到过一个案例即使ovsdb-server显示为activeIP配置还是不生效。后来发现是OVS的桥接配置有问题。这时需要额外检查# 检查OVS桥接状态 sudo ovs-vsctl show # 如果发现桥接配置异常可以尝试 sudo ovs-vsctl del-br br0 # 删除问题桥接 sudo netplan apply # 重新应用配置3. cloud-init云环境的双刃剑3.1 cloud-init如何劫持你的网络配置cloud-init是云服务器的标配工具但它有个坏习惯每次启动时都会尝试重置网络配置。这就好比有个过于热心的助手总是把你整理好的文件又按它的方式重新排列。通过分析/etc/netplan/目录你会发现一个特殊的配置文件ls -l /etc/netplan/ 50-cloud-init.yaml # 这个文件往往才是真正的幕后黑手这个文件通常包含由cloud-init生成的注释而且它的配置会覆盖你的自定义配置。3.2 彻底禁用cloud-init的网络管理网上很多教程只告诉你修改99-disable-network-config.cfg但根据我的实战经验还需要多步验证# 1. 创建禁用配置文件比常规方法更安全 sudo mkdir -p /etc/cloud/cloud.cfg.d/ echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg # 2. 清除已生成的配置很多人会漏掉这步 sudo rm -f /etc/netplan/50-cloud-init.yaml # 3. 重新生成netplan配置确保干净状态 sudo netplan generate # 4. 应用配置前先dry-run我的独家技巧 sudo netplan --debug apply特别注意在公有云环境如AWS、Azure中完全禁用cloud-init可能会导致其他管理功能异常。这时更推荐的方法是# 只禁用网络部分保留其他功能 echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg4. NetworkManager桌面环境的隐藏冲突4.1 当图形界面遇上命令行如果你用的是Ubuntu桌面版可能会遇到NetworkManager和netplan的权限争夺战。我就曾经被这个问题困扰了一整天——明明所有配置都正确IP就是不变。诊断方法很简单# 检查NetworkManager是否在管理接口 nmcli dev status | grep -i connected如果发现你的网卡被NetworkManager管理有两种解决方案4.2 解决方案A完全交给netplan# 1. 告诉NetworkManager不要管理网络 sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf echo [keyfile] | sudo tee -a /etc/NetworkManager/conf.d/10-globally-managed-devices.conf echo unmanaged-devices* | sudo tee -a /etc/NetworkManager/conf.d/10-globally-managed-devices.conf # 2. 重启NetworkManager sudo systemctl restart NetworkManager # 3. 应用netplan配置 sudo netplan apply4.3 解决方案B让两者和平共处如果你需要保留NetworkManager的图形界面功能可以这样配置# 在/etc/netplan/下的配置文件中明确指定renderer network: version: 2 renderer: NetworkManager # 明确使用NetworkManager ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]5. 终极排查指南当所有方法都失效时经过上面这些步骤90%的问题应该都能解决了。但如果你的IP配置依然顽固不化可以按照我的终极排查清单一步步检查检查配置文件语法sudo netplan generate # 如果有语法错误会在这里报出查看系统日志journalctl -xe --no-pager | grep -i netplan验证内核是否真的收到了配置ip addr show # 查看当前实际IP ip route show # 查看路由表检查接口命名是否一致ip link show # 查看实际接口名 # 确保和netplan配置中的接口名一致最暴力的方法——手动应用sudo ip addr flush dev eth0 # 清空现有配置 sudo ip addr add 192.168.1.100/24 dev eth0 # 手动添加IP sudo ip route add default via 192.168.1.1 # 添加默认路由如果手动配置能工作说明问题出在配置应用环节如果手动配置也不行可能是驱动或硬件问题。最后分享一个我踩过的坑有一次配置不生效折腾了半天才发现是网线没插好。所以永远不要排除物理层问题的可能性——这是我从十年运维生涯中学到的最重要的一课。

相关文章:

Ubuntu 22.04 网络配置疑难:为何 netplan apply 后 IP 仍“顽固”不变?

1. 当netplan apply失效时,我们到底遇到了什么? 最近在帮朋友调试一台Ubuntu 22.04服务器时,遇到了一个特别"顽固"的问题:明明用netplan修改了IP地址,执行netplan apply也没报错,但重启后IP地址就…...

sudo 命令详解:Linux 权限管理的“万能钥匙“

🔐 sudo 命令详解:Linux 权限管理的"万能钥匙" 💡 你是否曾在 Linux 系统中遇到 “Permission denied” 的报错而手足无措?今天我们就来聊聊 Linux 世界里最重要的命令之一 —— sudo。 文章目录🔐 sudo 命令…...

Serverless架构与实践:无服务器时代的应用开发

Serverless架构与实践:无服务器时代的应用开发 1. 背景介绍 Serverless架构是一种云计算模型,它允许开发者构建和运行应用程序,而无需管理服务器基础设施。随着云计算的发展,Serverless已经成为现代应用开发的重要趋势&#xff0c…...

RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型渤

在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明…...

Linux 线程调度策略详解:SCHED_OTHER、SCHED_FIFO、SCHED_RR

在 Linux POSIX 线程编程中,调度策略直接决定了线程如何竞争 CPU 资源,也是面试与嵌入式、实时开发中的高频考点。本文从原理、特点、适用场景到代码示例,彻底讲清楚三种调度策略:SCHED_OTHER、SCHED_FIFO、SCHED_RR。 一、基础概…...

深度学习项目训练环境低资源优化:支持梯度检查点+混合精度,RTX 3090显存省35%

深度学习项目训练环境低资源优化:支持梯度检查点混合精度,RTX 3090显存省35% 1. 环境准备与快速上手 1.1 开箱即用的深度学习环境 这个深度学习训练镜像已经预装了完整的开发环境,基于PyTorch 1.13.0和CUDA 11.6构建,包含了训练…...

如何用3分钟将B站视频转成文字稿?这个免费开源工具让你告别手动记录

如何用3分钟将B站视频转成文字稿?这个免费开源工具让你告别手动记录 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经面对长达几小时的B…...

Office Custom UI Editor终极指南:免费打造专属Office界面

Office Custom UI Editor终极指南:免费打造专属Office界面 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …...

终极指南:3步快速备份你的QQ空间完整历史记录

终极指南:3步快速备份你的QQ空间完整历史记录 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心QQ空间的珍贵记忆会随着时间流逝而消失?GetQzonehistory…...

DeOldify性能调优实战:针对显存与推理速度的优化策略

DeOldify性能调优实战:针对显存与推理速度的优化策略 你是不是也遇到过这种情况?好不容易部署好了DeOldify,准备给家里的老照片上色,结果一运行,程序就报错,提示显存不足。或者,虽然能跑起来&a…...

PDF提取不求人:MinerU镜像开箱即用,支持GPU加速

PDF提取不求人:MinerU镜像开箱即用,支持GPU加速 1. 引言:告别繁琐的PDF提取工作 在日常工作和研究中,我们经常需要从PDF文档中提取内容。无论是学术论文、技术报告还是商业文档,PDF格式因其良好的排版保持能力而广受…...

一个免费、轻量的 Typora 图床方案:Cloudflare R2 + Python——十分钟完成

一个免费、轻量的 Typora 图床方案:Cloudflare R2 Python,十分钟搞定 平时我主要用 Typora 写 Markdown,一直想要一个尽量简单的图床方案: 粘贴图片后自动上传,自动回填链接,不想额外折腾一堆服务和配置。…...

Vibe Coding:用“氛围感”重塑编程

Vibe Coding(氛围编程)是由OpenAI联合创始人Andrej Karpathy于2025年初提出的编程新范式,核心是通过自然语言描述需求,由AI生成代码,开发者角色从"编码者"转变为"需求引导者"和"结果优化者&q…...

GetQzonehistory终极指南:5分钟永久备份你的QQ空间记忆

GetQzonehistory终极指南:5分钟永久备份你的QQ空间记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在这个数字记忆易逝的时代,QQ空间承载了我们太多的青春回…...

百川2-13B-对话模型WebUI快速部署:无需Docker,原生Python 3.10环境直跑

百川2-13B-对话模型WebUI快速部署:无需Docker,原生Python 3.10环境直跑 1. 开篇:为什么选择百川2-13B-Chat-4bits? 如果你正在寻找一个能在自己电脑上流畅运行的中文大语言模型,百川2-13B-Chat-4bits版本可能就是你想…...

一键部署后:BERT文本分割模型健康检查与监控

一键部署后:BERT文本分割模型健康检查与监控 部署一个BERT文本分割模型,看着服务成功启动,这只是万里长征的第一步。接下来,你可能会有这样的疑问:我的服务真的在稳定运行吗?它处理请求的速度够快吗&#…...

embeddinggemma-300m部署步骤详解:从pull模型到WebUI验证全流程

embeddinggemma-300m部署步骤详解:从pull模型到WebUI验证全流程 1. 环境准备与ollama安装 在开始部署embeddinggemma-300m之前,我们需要先准备好运行环境。这个模型对硬件要求相对友好,普通笔记本电脑或台式机都能运行。 系统要求&#xf…...

白嫖 1000 次!这款毫秒级企业工商数据 API 实测,真香!

作为一名长期在需求一线摸爬滚打的后端开发,最头疼的就是接各种第三方接口。尤其是企业工商数据这块,由于数据量大、更新快,很多大厂的 API 授权费动辄上万,对于咱们这种接个外包、做个 Demo 验证或者初创项目的团队来说&#xff…...

Cursor报错user is unauthorized?3种快速解决方法(附官方推荐安装指南)

Cursor报错"user is unauthorized"的深度排查与解决方案 1. 理解"user is unauthorized"错误的本质 当你满怀期待地打开Cursor准备开始一天的编码工作,却突然看到"user is unauthorized"的红色错误提示时,那种感觉就像被…...

嵌入式常见的面试题1

在嵌入式 Linux 应用层,使用 TCP socket 发送数据时,write()/send() 返回成功是否意味着数据已送达对端?如何确保对端应用层确实收到了数据?考察点:TCP 协议栈缓冲区机制、可靠传输的误解、应用层确认协议。参考答案&a…...

深度解析:ComfyUI-Manager节点冲突检测的5种技术解决方案与架构设计

深度解析:ComfyUI-Manager节点冲突检测的5种技术解决方案与架构设计 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable …...

2026移动应用质量监控Bugly:全平台异常定位与统一管理实践

2026移动应用质量监控Bugly:全平台异常定位与统一管理实践 在移动应用开发进入多端融合与高频迭代的背景下,复杂运行环境使崩溃、性能劣化等问题更易隐蔽扩散,企业诉求已从被动修复转向主动、统一的质量管控。Bugly作为腾讯推出的专业应用质量…...

Omni-Vision Sanctuary前端交互设计:基于Web的实时图像生成演示系统

Omni-Vision Sanctuary前端交互设计:基于Web的实时图像生成演示系统 1. 项目背景与核心价值 想象一下这样的场景:设计师需要快速生成产品概念图,营销团队等待社交媒体配图,而开发人员正在调试AI模型的参数。传统工作流程中&…...

Windows任务栏美化终极指南:TranslucentTB让你的桌面秒变高级感

Windows任务栏美化终极指南:TranslucentTB让你的桌面秒变高级感 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 还在忍受Wind…...

154W,确实可以封神了!!

去年DeepSeek爆火,生成式AI和大模型技术呈现爆发式增长,也让算法工程师重新成了炙手可热的岗位,岗位薪资远超很多运维、嵌入式、前后端岗位,在程序员中稳居前列。AI的快速发展也给很多程序员带来更多的机会,很多公司都…...

为什么AI时代真正稀缺的不是代码, 而是 Idea. 我因此做了一个“发现+判断”的项目

最近做项目的时候, 我越来越强烈地感觉到一件事: 现在真正卡住很多人的, 可能已经不是“怎么做”, 而是“到底做什么”。 以前做一个产品, 最大门槛通常是执行。 不会写前端, 不会搭后端, 不会部署, 不会把整个闭环跑起来。那个时候, 真正稀缺的是开发能力。 但这两年情况已…...

终极免费学术论文获取指南:如何用Unpaywall一键解锁付费墙

终极免费学术论文获取指南:如何用Unpaywall一键解锁付费墙 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywall-exte…...

局域网视频软件BeeWorks Meet

对于必须在内网进行高清视频沟通的场景,BeeWorks Meet 是一款定位清晰、功能全面的私有化视频会议解决方案。它最大的特点在于,能将所有会议数据都安全地保留在企业内部网络,让企业对自己的核心会议内容拥有完全的自主权。📌 BeeW…...

电商客服+导购智能体的设计与开发投

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

寻音捉影·侠客行行业落地:教育机构快速提取在线课程中所有‘课后习题’出现时刻

寻音捉影侠客行行业落地:教育机构快速提取在线课程中所有‘课后习题’出现时刻 1. 教育机构的音频处理痛点 在线教育机构每天产生大量课程录音,老师们经常需要在长达数小时的音频中找到特定内容。最常见的一个需求就是定位所有"课后习题"出现…...