ubuntu22.04静态ip设置(桥接模式、only-host+NAT模式)

news2024/12/26 21:27:20

在创建一台虚拟机后,默认的方式往往是通过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: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.2/24]
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
          metric: 100
      nameservers:
        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: 2
  renderer: NetworkManager
  ethernets:
    # nat network
    enp0s3:
      dhcp4: no
      addresses: [10.0.2.101/24]
      routes:
        - to: 0.0.0.0/0
          via: 10.0.2.2
          metric: 100
      nameservers:
        addresses: [8.8.8.8]
    # only-host static network
    enp0s8:
      dhcp4: no
      addresses: [192.168.56.101/24]

其中only-host是不指定网关的。

另外,由于nat网络内的机器被隐藏了,即这些机器可以主动向外发送信息,因为外部机器的端口对这些机器来说是可见的,但内部机器的端口却被NAT主机隐藏了,所以外部机器不能随意和这些机器通信。不过也可以设置NAT的端口转发规则暴露内部机器的部分端口。所以在使用ssh连接这些机器时,不能通过nat网络进行连接(如前所述,其实也可以设置nat端口转发规则),而是需要通过only-host网络。在这里即enp0s8网络接口,对应ip地址为192.168.56.101。

virtualbox最多支持4个网络接口,读者也可以尝试把这些接口全部开启尝试实验。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/546781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis集群之hash槽分析算法

上文提过了 hash取余算法和hash一致性算法 一致性hash算法是为了减少节点数目发生改变时尽可能的减少数据迁移 将所有的存储节点排在首位相连的Hash环上,每个key在计算hash后会顺时针找到临近的存储节点。 而当有节点加入或退出时,仅影响该节点在hash环上…

chatgpt赋能Python-python3求平均值

Python3求平均值-从基础到实践 Python3作为一种广泛使用的编程语言,被广泛应用于不同的领域。今天我们将探讨如何使用Python3求平均值。求平均值在数学和统计学中非常常见,使我们能够了解数据的中心趋势,并简化数据分析过程。让我们深入了解…

DELPHI7实现XP菜单风格

在DELPHI7中不使用任何第三方控件,实现放在工具栏上可拖动的XP风格菜单 今天有点空闲时间,顺便写点东西,不是什么深奥的东西,但实用,对于不想第三方控件但又想加点效果的朋友可能有点用.实现的效果如图: 步骤一:把Win32面板上把CoolBar组件加到窗体上 步骤二:把Additional面板上…

VBA 密码删除软件 4n6.VBA Password Remover 1.2 Crack

VBA 密码删除软件 软件评级(基于 1541 条评论的平均评分 4.8) 该工具是完美的软件,可以解锁任何类型的受密码保护的 VBA 文件。用户可以轻松使用此 VBA 密码删除软件并从 VBA 文件中删除密码保护。 兼容所有 Office 文件格式:.d…

Linux线程5——生产消费模型

生产消费模型 1个交易场所:超市 2种角色:生产者/消费者 3种关系:生产者和生产者(竞争关系也叫互斥关系),消费者和消费者(竞争关系同样是互斥关系),生产者和消费者(互斥,同步关系:生产完再消费或消费完再生产)。 以上是生产消费模型遵守的“321”原则。 生产者和消…

RocketMQ Connect 核心知识点概述

一、概览 RocketMQ Connect是RocketMQ数据集成重要组件,可将各种系统中的数据通过高效,可靠,流的方式,流入流出到RocketMQ,它是独立于RocketMQ的一个单独的分布式,可扩展,可容错系统&#xff0…

英文文本情感分析textblob模块sentiment方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 英文文本情感分析 textblob模块 sentiment方法 [太阳]选择题 关于下列代码说法错误的是? from textblob import TextBlob myText"Textblob is amazingly simple to us…

chatgpt赋能Python-python3绝对值

Python3绝对值——学习Python3编程的基础 Python3是一种非常流行的编程语言,可以应用于各种不同的场景,例如数据科学、机器学习、网络编程、自动化脚本、游戏开发等。在Python3编程中,绝对值是一个基础的概念。 什么是绝对值? …

【网络编程】实现UDP/TCP客户端、服务器

目录 一、UDP 1、Linux客户端、服务器 1.1udpServer.hpp 1.2udpServer.cc 1.3udpClient.hpp 1.4udpClient.cc 1.5onlineUser.hpp 2、Windows客户端 二、TCP 1、单进程版的TCP客户端、服务器 1.1tcpServer.hpp 1.2tcpServer.cc 1.3tcpClient.hpp 1.4tcpClient.cc …

K8s进阶1——kubeadm工具搭建K8s高可用集群

文章目录 一、资源清单二、系统初始化2.1 所有服务器配置2.2 master节点配置 三、nginxkeepalived3.1 主备机器上进行3.2 配置主节点3.3 配置备节点3.4 启动服务 四、部署etcd集群4.1 资源清单4.2 生成Etcd证书4.3 部署Etcd集群 五、安装Docker/kubeadm/kubelet5.1 安装docker5…

ESP32-C3入门教程 问题篇⑱——VSCode ESP-IDF Monitor device 波特率不对导致乱码

文章目录 一、前言二、发现问题三、分析问题一、前言 本文基于VS Code IDE进行编程、编译、下载、运行等操作 基础入门章节请查阅:ESP32-C3入门教程 基础篇①——基于VS Code构建Hello World 教程目录大纲请查阅:ESP32-C3入门教程——导读 二、发现问题 升级了VSCode,没注意…

GDB调试无行号,报dwarf error问题解决

背景 近期我开发的一个C程序,在生产环境产生了coredump,但是在调试该core文件时,打出的debug信息并不全。 这种debug信息丢失,其实说白了,就是符号表丢失。一般由两种情况造成,一种是编译的时候没有加-g参…

EasyRecovery16适用于Windows和Mac的专业硬盘恢复软件

无论你对数据恢复了解多少, 我们将为您处理所有复杂的流程并简化恢复!适用于Windows和Mac的 专业硬盘恢复软件 硬盘数据无法保证绝对安全。有时会发生数据丢失,需要使用硬盘恢复工具。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数…

类似于ChatGPT的优秀应用notion

notion 是一款流行的笔记应用。不过功能实际远超笔记,官方自己定义是:“将笔记、知识库和任务管理无缝整合的协作平台”。其独特的 block 概念,极大的扩展了笔记文档的作用,一个 block 可以是个数据库、多媒体、超链接、公式等等。…

如何把Docker容器变成物理机系统

如何把容器变成物理机 本文的主题是把容器变成物理机,根据所学的知识。以及通过各种搜索引擎。他们都告诉我们,这是不可能的。这真的是不可能的吗?我不信,那我就要创造奇迹。请继续往下看。本文将教你如何把容器变成物理机。作品…

PBDF8WN、FPBJXDN、FPBMXDN插装式比例阀放大器

PBHB8WN、PBFB8WN、PBDB8WN、PBHF8WN、PBFF8WN、PBDF8WN、PBJB8WN、RPEILAN、RBAPXAN、RBANXAN、FPBGXDN、FPBDXDN、FPBJXDN、FPBMXDN、FPBFXDN、FPBIXDN、FREPXAN比例插装阀一种高精度液压控制元件,其采用了先进的比例控制技术,可以根据控制信号快速地调…

linux介绍

/ 是所有目录的源点目录结构整体是一棵倒挂的树bin:存放二进制可执行文件boot:存放系统引导时使用的各类文件dev:存放设备文件etc:存放系统配置文件home:存放系统用户的文件lib:存放系统运行所需的共享库和…

传输层:TCP协议

传输层中有两个重要的协议:TCP协议和UDP协议。本博文分享的是TCP协议,不仅分享其协议格式,特点等等,还有应答机制、超时传送机制、连接管理机制、滑动窗口、阻塞控制等等。 TCP协议 TCP全称为 "传输控制协议(Transmission C…

Python中的自定义函数创建方法和应用举例

Python中的自定义函数创建方法和应用举例 在Python语言中,函数是一组能够完成特定任务的语句模块,可分为内置函数、第三方模块函数和自定义函数。其中,内置函数是Python系统自带的函数;模块函数是NumPy等库中的函数。 1.自定义函…

Java【网络原理2】TCP 协议的三次握手和四次挥手到底是什么意思?

文章目录 前言一、三次握手三次握手的作用 二、四次挥手总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结构: 顺序表, 链…