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

(2024年最新)Linux(Ubuntu) 中配置静态IP(包含解决每次重启后配置文件失效问题)


Hello! 亲爱的小伙伴们,大家好呀(Smile~)!我是Huazzi,欢迎观看本篇博客,接下来让我们一起来学习一下Ubuntu 中如何配置静态IP吧!祝你有所收获!


提前对Linux有所了解的小伙伴应该知道(没了解过的小伙伴也没关系,继续往下看了就能有所了解了):

在 Linux 操作系统中,Linux 文件系统遵循 FHS (Filesystem Hierarchy Standard),每个目录都有特定的用途,而我们今天的主角/etc 目录主要包含 系统配置文件
想要进一步了解Linux系统各个目录的主要用途的小伙伴,欢迎前往另一篇博客:Linux 文件系统目录结构及其简要介绍


文章目录

    • 操作步骤
      • 前期准备
      • 手动配置静态 IP
        • 报错处理

操作步骤

前期准备

Ubuntu 使用的是 netplan 网络管理工具,所以在正式开始配置静态IP的配置文件前,我们先来检查一下我们/etc/netplan目录下都有哪些东西:
操作命令:

ls /etc/netplan

如果有小伙伴发现有一个50-cloud-init.yaml文件:
在这里插入图片描述
那么就要注意啦!(如果没有的小伙伴可以直接跳过这一步)

这是一个配置文件是 cloud-init 用于配置网络的 YAML 文件:

  • 文件是由 数据源(datasource) 自动生成的,任何更改在重启后将丢失。

在配置静态IP之前,需要先禁用 cloud-init 对网络的配置管理

为什么要禁用 cloud-init?

  • cloud-init 会在系统启动时根据云数据源提供的信息自动配置网络。
  • 如果你手动修改了 /etc/netplan/ 下的网络配置文件,但没有禁用 cloud-init,它可能会在下次重启时重置你的配置。
  • 为了让静态 IP 配置永久生效,禁用 cloud-init 是一个必要步骤

禁用 cloud-init的操作步骤:

  1. 先创建一个禁用网络配置的文件:
   sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
  1. 写入:
network: {config: disabled}
  1. 重启系统:
sudo reboot

注意啦,现在开始正式配置静态IP配置文件~

手动配置静态 IP

我们要将网络配置修改为静态 IP(而不是 DHCP 自动获取),我们需要手动编辑 netplan 配置文件。
操作命令:

sudo vim /etc/netplan/01-netcfg.yaml

dhcp4: true 替换为静态 IP 配置,然后根据自己的需要改一下即可:

network:ethernets:ens33:dhcp4: falseaddresses:- 192.168.1.100/24    # 静态 IP 和子网掩码gateway4: 192.168.1.1   # 默认网关nameservers:addresses:- 8.8.8.8         		# DNS 服务器 1- 114.114.114.114         # DNS 服务器 2version: 2

应用更改:
保存文件后,执行:

sudo netplan apply

此时网络将切换到静态 IP。


报错处理

这时候,小伙伴们可能会遇到报错:
在这里插入图片描述

这是为什么呢?我们一起来看一下
这些警告信息表示两个问题:

  1. 文件权限过于开放/etc/netplan/01-netcfg.yaml 的权限设置不安全。
  2. gateway4 已被弃用:需要使用默认路由的配置方式。

知道了原因不就好解决了嘛
解决方法:

  1. 修复文件权限过于开放的问题
    Netplan 配置文件的权限要求是 600(仅限 root 读写),当前文件权限可能过于开放。

修改文件权限:

想要进一步了解Linux文件权限相关操作的小伙伴欢迎移步Linux文件权限与所有者管理命令

执行以下命令将权限设置为安全值:

sudo chmod 600 /etc/netplan/01-netcfg.yaml

确认文件权限:

ls -l /etc/netplan/01-netcfg.yaml

输出应类似于:

-rw------- 1 root root 123 Jun 20 03:01 /etc/netplan/01-netcfg.yaml

表明已经修改好了


  1. 替换已弃用的 gateway4
    gateway4 已被弃用,需要使用 默认路由 的配置方式。

修改 /etc/netplan/01-netcfg.yaml 文件
找到 gateway4,并将其替换为默认路由配置:

旧配置:

gateway4: 192.168.1.1

新配置:

routes:- to: defaultvia: 192.168.1.1

  1. 更新 Netplan 配置
    修改完成后,保存文件并执行以下命令:
sudo netplan apply

  1. 验证配置是否生效
  • 查看 IP 地址和路由信息:

    ip addr
    ip route
    
  • 确保默认路由已生效,输出应类似于:

    default via 192.168.1.1 dev ens33 proto static
    

最后,给个完整示例配置

修改后的 /etc/netplan/01-netcfg.yaml 应类似以下内容:

network:version: 2ethernets:ens33:dhcp4: falseaddresses:- 192.168.1.100/24   # 静态 IP 和子网掩码routes:- to: defaultvia: 192.168.1.1   # 默认路由nameservers:addresses:- 8.8.8.8         		# DNS 服务器 1- 114.114.114.114         # DNS 服务器 2

完成后,所有警告都将消失,并且静态 IP 配置将正常生效。


到此,我们的任务就完成啦!
如果小伙伴们还遇到其他的什么问题,欢迎在评论区一起讨论!!!
祝小伙伴们收获满满!!

相关文章:

(2024年最新)Linux(Ubuntu) 中配置静态IP(包含解决每次重启后配置文件失效问题)

Hello! 亲爱的小伙伴们,大家好呀(Smile~)!我是Huazzi,欢迎观看本篇博客,接下来让我们一起来学习一下Ubuntu 中如何配置静态IP吧!祝你有所收获! 提前对Linux有所了解的小伙伴应该知道…...

DPDK用户态协议栈-TCP Posix API 2

tcp posix api send发送 ssize_t nsend(int sockfd, const void *buf, size_t len, __attribute__((unused))int flags) {ssize_t length 0;void* hostinfo get_host_fromfd(sockfd);if (hostinfo NULL) {return -1;}struct ln_tcp_stream* stream (struct ln_tcp_stream…...

[IT项目管理]项目时间管理(本章节3w字爆肝)

七.项目时间管理 7.1 项目进度的重要性 为什么要重视项目进度:在项目进行的过程之中会遇到变故。但是不论项目中发生了什么,时间总是在流逝,就可能会导致项目不可以在规定的时间完成。 7.2可能影响项目进度的因素 有员工离职个人的工作方…...

【python因果库实战5】使用银行营销数据集研究营销决策的效果5

目录 接触次数的效应 重新定义治疗变量和潜在混杂因素 更深入地审视干预情景 逆概率加权 标准化 总结及与非因果分析的比较 接触次数的效应 我们现在转而研究当前营销活动中接触次数的数量(campaign)对积极结果发生率的影响。具体来说,…...

【Qt】QWidget中的常见属性及其功能(二)

目录 六、windowOpacity 例子: 七、cursor 例子: 八、font 九、toolTip 例子: 十、focusPolicy 例子: 十一、styleSheet 计算机中的颜色表示 例子: 六、windowOpacity opacity是不透明度的意思。 用于设…...

9 OOM和JVM退出。OOM后JVM一定会退出吗?

首先我们把两个概念讲清楚 OOM是线程在申请堆内存,发现堆内存空间不足时候抛出的异常。 JVM退出的条件如下: java虚拟机在没有守护线程的时候会退出。守护线程是启动JVM的线程,服务于用户线程。 我们简单说下守护线程的功能: 1.日志的记录…...

学习笔记070——Java中【泛型】和【枚举】

文章目录 1、泛型1.1、为什么要使用泛型?1.2、泛型的应用1.3、泛型通配符1.4、泛型上限和下限1.5、泛型接口 2、枚举 1、泛型 Generics 是指在定义类的时候不指定类中某个信息(属性/方法返回值)的具体数据类型,而是用一个标识符来…...

【工具变量】碳排放市场交易数据(2013-2023年)

一、时间范围:2013年8月5日到2023年1月13日 二、具体指标: 交易日期 城市名称 交易品种 开盘价 最高价 最低价 成交均价 收盘价 前收盘价 涨跌幅 总成交量 总成交额 …...

【视频生成模型】——Hunyuan-video 论文及代码讲解和实操

🔮混元文生视频官网 | 🌟Github代码仓库 | 🎬 Demo 体验 | 📝技术报告 | 😍Hugging Face 文章目录 论文详解基础介绍数据预处理 (Data Pre-processing)数据过滤 (Data Filtering)数据标注 (Data…...

基线检查:Windows安全基线.【手动 || 自动】

基线定义 基线通常指配置和管理系统的详细描述,或者说是最低的安全要求,它包括服务和应用程序设置、操作系统组件的配置、权限和权利分配、管理规则等。 基线检查内容 主要包括账号配置安全、口令配置安全、授权配置、日志配置、IP通信配置等方面内容&…...

uniapp跨端适配—条件编译

在uniapp中,跨端适配是通过条件编译实现的。条件编译允许开发者根据不同的平台(如iOS、Android、微信小程序、百度小程序等)编写不同的代码。这样可以确保每个平台上的应用都能得到最优的性能和用户体验。 以下是uniapp中条件编译的基本语法…...

【Java基础面试题013】Java中静态方法和实例方法的区别是是么?

回答重点 静态方法 使用static关键字修修饰的方法属于类随着类的加载而加载,随着类的卸载而消失可以通过类名直接调用,也可以通过对象调用,但是这种方式不推荐,会混淆意义,也不利于后期维护与扩展 class Example {st…...

C语言入门(一):A + B _ 基础输入输出

前言 本专栏记录C语言入门100例,这是第(一)例。 目录 一、【例题1】 1、题目描述 2、代码详解 二、【例题2】 1、题目描述 2、代码详解 三、【例题3】 1、题目描述 2、代码详解 四、【例题4】 1、题目描述 2、代码详解 一、【例…...

Vue日历组件FullCalendar使用方法

FullCalendar &#xff08;全日历&#xff09;Vue组件的使用 FullCalendar官方文档地址 FullCalendar日历组件支持Vue React Angular Javascript Vue2的框架示例&#xff1a; npm install --save fullcalendar/core fullcalendar/vue<template><div class"cal…...

TinyML在OBD-II边缘设备上燃油类型分类的实现与优化

论文标题&#xff1a;TinyML Implementation and Optimization for Fuel Type Classification on OBD-II Edge Device&#xff08;TinyML在OBD-II边缘设备上燃油类型分类的实现与优化&#xff09; 作者信息&#xff1a;Miguel Amaral, Morsinaldo Medeiros, Matheus Andrade, …...

vue3 中 defineProps 声明示例

1、直接声明 // 1、直接使用 defineProps(["tableData", "acceptType"]); 2、运行时声明方式不使用TypeScript类型注解&#xff0c;而是使用JavaScript对象&#xff0c;使用 type 来定义props // 2、运行时声明方式不使用TypeScript类型注解&#xff0c;…...

SpringBoot整合MybatisPlus报错Bean不存在:NoSuchBeanDefinitionException

报错信息&#xff1a; Exception in thread “main” org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.feng.mybatisplusdemo.dao.UserMapper’ available 解决办法&#xff1a; 将原来引入的MybatisPlus依赖&#xff1a…...

异步电机的控制是否还有研究的必要,是不是已经非常成熟了?

随着工业现代化和自动化进程的加快&#xff0c;异步电机作为最为常见的电动机之一&#xff0c;广泛应用于各类机械设备和工业自动化系统中。异步电机因其结构简单、成本低廉、维护方便等优点而备受青睐。 异步电机的基本原理与应用 异步电机&#xff0c;又称感应电机&#xf…...

【Android】解决 ADB 中 SELinux 设置与 `Failed transaction (2147483646)` 错误

解决 ADB 中 SELinux 设置与 Failed transaction (2147483646) 错误 在使用 ADB 进行开发和调试时&#xff0c;经常会遇到由于 Android 系统安全策略&#xff08;SELinux&#xff09;引起的权限问题&#xff0c;尤其是在执行某些操作时&#xff0c;可能会遇到类似 cmd: Failur…...

企业车辆管理系统(源码+数据库+报告)

一、项目介绍 352.基于SpringBoot的企业车辆管理系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块 二、项目技术 编程语言&#xff1a;Java 数据库&#xff1a;MySQL 项目管理工具&#xff1a;Maven 前端技术&#xff1a;Vue 后端技术&a…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

k8s从入门到放弃之Pod的容器探针检测

k8s从入门到放弃之Pod的容器探针检测 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;容器探测是指kubelet对容器执行定期诊断的过程&#xff0c;以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...