ubuntu22.04静态ip设置(桥接模式、only-host+NAT模式)
在创建一台虚拟机后,默认的方式往往是通过DHCP动态的进行分配,DHCP服务器会告知创建的虚拟机分配到的ip地址,网关地址等信息。所以在创建好虚拟机之后,这些信息都不需要我们来配置,我们直接用就好了。
但是,当虚拟机重启时,它会向DHCP服务器发送DHCP请求,请求分配一个IP地址。DHCP服务器会检查IP地址池中是否有可用的IP地址,并为虚拟机分配一个新的IP地址,而且是随机地址,这在有些情况下会造成不便。比如我想通过ssh来连接一台虚拟机,如果地址变动的话,那我每次连接虚拟机的时候,还得先去看一下虚拟机的新ip地址,然后再进行连接。这是很麻烦的。
这时我们可以为虚拟机设置静态的ip地址,把DHCP关掉,关掉DHCP之后要怎么做呢?
让我们回顾一下DHCP的作用,它可以设置三项网络信息①分配DNS服务器地址;②分配ip地址;③告知网关地址。这三项信息我们可以手动设置,这并不是一件难事。
对于DNS服务器地址: 这个我们可以直接设置为8.8.8.8(当然,这不一定是最佳选项,你可以通过其他方式获取当前机器的最佳dns服务)。
对于ip地址和网关地址: 由于我们关闭了DHCP服务,所以机器的地址需要手动分配,这个地址需要和网关处于同一个网络中。通过ip route show
可以查看当前机器的网关地址,输出信息如下:
default via 192.168.1.1 dev enp0s3 proto dhcp metric 100
169.254.0.1/16 dev enp0s3 scope link metric 1000
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.111 metric 100
第一行信息表示默认网关为192.168.1.1;第三行信息中,192.168.1.0/24表示当前所在的子网,192.168.1.111则是当前机器的ip地址。那么根据子网为192.168.1.0/24,可以得出子网的掩码为255.255.255.0
。
ip地址则可以分配为除网关外,192.168.1.2~192.168.1.255的任意地址。(当我们关闭DHCP后,ip地址池是由我们自己管理的,所以在分配地址时,注意子网中的ip地址不能重复)。在我的机器中,可以选择192.168.1.2。
那么至此三项重要信息就都确定了:①DNS为8.8.8.8;②ip地址为192.168.1.2/24;③网关为192.168.1.1。随后我们开始手动设置。
从Ubuntu 17.10版本开始,Ubuntu使用了Netplan作为网络配置工具,我们可以通过编辑/etc/netplan/
下的配置文件来设置网络:sudo nano /etc/netplan/01-netcfg.yaml
(也可能不叫01-netcfg.yaml文件,不同机器中名字可能有差异,但都在/etc/netplan/
目录下),向文件中添加如下配置信息:
network:version: 2renderer: networkdethernets:enp0s3:dhcp4: noaddresses: [192.168.1.2/24]routes:- to: 0.0.0.0/0via: 192.168.1.1metric: 100nameservers:addresses: [8.8.8.8]
其中"to: 0.0.0.0/0"是一个路由规则,它表示将所有目的地IP地址都路由到指定的网关。这个路由规则通常被称为默认路由或默认网关。
随后,我们通过sudo netplan try
来检验当前的Netplan配置,该命令会显示配置的错误或警告信息。如果没有警告或错误,我们可以通过sudo netplan apply
来应用新的配置。如果配置后网络不能正常联网了,那把ethernets:
下面的内容全部删掉,执行sudo netplan apply
恢复成默认的就好了。
如果你是通过ssh来设置静态ip的,那当你更改ip地址后ssh连接会断掉,用新地址重连就好了。
此外,在配置k8s集群时,很多教程并不采用桥接网络,而是采用nat网络+only-host网络的模式,我的理解是这nat和only-host模式的网络能隐藏虚拟机的网络,避免了外部网络的访问,可能这样更加安全吧。
在nat网络+only-host网络模式中,配置静态ip和上面的过程相同,需要注意的是不要搞混了网络接口,比如在这种模式下通过ip route show
的输出如下:
default via 10.0.2.2 dev enp0s3 proto static metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.101
192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.101
这里有两个不同的网络接口,enp0s3和enp0s8,其中网关是enp0s3网络接口,那enp0s3对应nat网络,而enp0s8对应only-host网络。
这是因为only-host将主机作为了网关,而nat网络中会单独虚拟出一个网关,在这里即为10.0.2.2。
对应的配置文件如下:
# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManagerethernets:# nat networkenp0s3:dhcp4: noaddresses: [10.0.2.101/24]routes:- to: 0.0.0.0/0via: 10.0.2.2metric: 100nameservers:addresses: [8.8.8.8]# only-host static networkenp0s8:dhcp4: noaddresses: [192.168.56.101/24]
其中only-host是不指定网关的。
另外,由于nat网络内的机器被隐藏了,即这些机器可以主动向外发送信息,因为外部机器的端口对这些机器来说是可见的,但内部机器的端口却被NAT主机隐藏了,所以外部机器不能随意和这些机器通信。不过也可以设置NAT的端口转发规则暴露内部机器的部分端口。所以在使用ssh连接这些机器时,不能通过nat网络进行连接(如前所述,其实也可以设置nat端口转发规则),而是需要通过only-host网络。在这里即enp0s8网络接口,对应ip地址为192.168.56.101。
virtualbox最多支持4个网络接口,读者也可以尝试把这些接口全部开启尝试实验。
相关文章:

ubuntu22.04静态ip设置(桥接模式、only-host+NAT模式)
在创建一台虚拟机后,默认的方式往往是通过DHCP动态的进行分配,DHCP服务器会告知创建的虚拟机分配到的ip地址,网关地址等信息。所以在创建好虚拟机之后,这些信息都不需要我们来配置,我们直接用就好了。 但是࿰…...
深度模型中的正则化、梯度裁剪、偏置初始化操作
最近调试代码,发现怎么调试都不行,就想着用一些优化方式,然后又不是很清楚这些优化方式的具体细节,然后就学习了一下,这里记录下来,方便以后查阅。 深度模型中的正则化、梯度裁剪、偏置初始化操作 正则化常…...

设计模式之装饰模式
定义 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 模式特点 (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对…...

华为OD机试真题 Java 实现【最佳对手】【2023Q1 200分】
一、题目描述 游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。 给定 n 个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距 d内,则可以匹配。 要求在匹配队伍最多的情况下匹配出的各组…...

IOS证书制作教程
IOS证书制作教程 点击苹果证书 按钮 点击新增 输入证书密码,名称 这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务…...

【人工智能】蚁群算法(密恐勿入)
蚁群算法(密恐勿入) 蚁群算法--给你一个感性认识 蚁群算法(密恐勿入)1. 算法简介1.1 基本原理1.1.1 模拟蚂蚁在简单地形,寻找食物1.1.2 模拟蚂蚁在复杂地形,找到食物1.2 算法应用 2. 算法解析3.算法应用——…...

VONR排查指导分享
不能注册或呼叫到SIP服务器端30秒挂断呼叫的黄金法则咬线或摘机状态单通或无语音收到400 bad request收到413,513 Request Entity Too Large或Message Too Large消息收到408, 480或者487 消息483 - Too Many Hops488 – Not Acceptable Here语音质量和思…...

Daftart.ai:人工智能专辑封面生成器
前言 Daft Art AI是一款使用人工智能技术来帮助您制作专辑封面的软件,它可以让您在几分钟内,用简单的编辑器和精选的美学风格,为您的专辑或歌曲创建出惊艳的高质量的艺术品。Daft Art AI有以下几个特点:简单易用:您只…...

ZigBee案例笔记 - 定时器
文章目录 1.片内外设I/O2.定时器简介3.定时器1寄存器4.定时器1操作自由运行模式模模式正计数/倒计数模式 5.16位计数器定时器1控制LED 示例 6.定时器3概述自由运行模式倒计数模式模模式正/倒计数模式 7.定时器3寄存器定时器3控制LED闪烁 1.片内外设I/O 定时器这样的片内外设也…...

GE H201TI 全系统自检和自诊断
Hydran 201Ti是一个小型在线预警发射器。它永久安装在变压器上,将为工作人员提供各种故障气体复合值的单一ppm读数,以提醒他们潜在的问题。 可以下载该值,并且可以将警报设置在预定水平,以提醒人员并能够监控发展中的故障状况。 …...

这个屏幕录制太好用了!
哈喽,大家好!今天给各位小伙伴测试了一屏幕录制的小工具——ApowerREC。它是一款专业同步录制屏幕画面及声音的录屏软件。界面简洁,操作简单,支持实时编辑屏幕录像、创建计划任务、录制摄像头高清视频等功能。废话不多说ÿ…...

初识redis【redis的安装使用与卸载】
一.redis的概念 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在redis官网中对redis的描述是这样的&#…...

接口测试总结及其用例设计方法整理,希望可以帮到你
目录 接口测试的总结文档 第一部分: 第二部分: 接口测试用例设计 接口测试的总结文档 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做…...
基于FPGA的多功能数字钟的设计
摘要 数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常 生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的•种方 案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。 关键词数字钟、分频器、译码器、计数器、校时电路、…...

第四十二天学习记录:C语言进阶:笔试题整理Ⅲ
问:解释一下int(*a[20])(int)是什么? ChatAI答: int (*a[20])(int) 是一个数组,该数组中每个元素都是一个指向函数的指针,该函数具有一个int类型的参数,并返回一个int类型的值。 具体来说,a是一…...
GLSL 代码规范
文件 文件顶点,片段,几何和计算着色器文件应该分别有 _vert, _frag, geom 和 _comp 后缀(例如: eevee_film_fragg.glsl)。Shader文件名必须是唯一的,并且必须以它们所属的模块作为前缀(例如: workbench_material_lib.glsl eevee_film_lib.glsl)。一个 shader 文件必须包含且…...

红黑树封装map和set
文章目录 红黑树封装map和set1. 改良红黑树1.1 改良后的节点1.2 改良后的类分别添加仿函数代码 3. 封装map和set3.1 set3.2 map 3. 迭代器3.1 begin 和 end3.2 operator()和operator--()3.3 const迭代器set的迭代器map的迭代器 4. map的operator[]的重载5. 完整代码实现5.1 RBT…...

python序列
在Python中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。 字符串也是一种常见的序列,它也可以直接通过索引访问字符串内…...

LeetCode35. 搜索插入位置(二分法入门)
写在前面: 题目链接:LeetCode35. 搜索插入位置 编程语言:C 题目难度:简单 一、题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会…...

macOS Ventura 13.4 RC3(22F66)发布
系统介绍 5 月 17 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.4 RC 3 更新(内部版本号:22F66),本次更新距离上次发布隔了 5 天。 macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力等功能。其中&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
linux设备重启后时间与网络时间不同步怎么解决?
linux设备重启后时间与网络时间不同步怎么解决? 设备只要一重启,时间又错了/偏了,明明刚刚对时还是对的! 这在物联网、嵌入式开发环境特别常见,尤其是开发板、树莓派、rk3588 这类设备。 解决方法: 加硬件…...

MySQL 数据库深度剖析:事务、SQL 优化、索引与 Buffer Pool
在当今数据驱动的时代,数据库作为数据存储与管理的核心,其性能与可靠性至关重要。MySQL 作为一款广泛使用的开源数据库,在众多应用场景中发挥着关键作用。在这篇博客中,我将围绕 MySQL 数据库的核心知识展开,涵盖事务及…...