虚拟机ip不停地变每次使用ssh不好登录?有手就行!

2024-04-01 18:52

本文主要是介绍虚拟机ip不停地变每次使用ssh不好登录?有手就行!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

虚拟机ip不停地变每次使用ssh不好登录?有手就行!

    • 桥接模式下固定ip?No
    • Avahi服务,你值得拥有
    • Avahi解决方案
    • 虚拟机中配置Avahi服务
    • 配置成功展示
    • 测试成功

桥接模式下固定ip?No

如果你的机器是在一个不变的IP段,比如192.168.0.*,那么使用这种方式是完全可以的

也就是选定桥接模式之后,设置一下固定ip就行。

但是对于你的ip段变的话,比如公司的ip是192.168.10.#的IP段,回家后热点是172.20.10.#,比如说我,那我就得想个办法了,不然我每次使用ssh登还得不停地修改ip

Avahi服务,你值得拥有

Avahi基础知识:

1. 定义:

Avahi是一个开源的零配置网络服务发现工具,旨在提供在局域网中自动发现网络服务的能力。它基于Zeroconf协议(也称为Bonjour或mDNS)实现,允许设备在局域网中自动注册和发现服务,而无需手动配置。

2. 基本概念:

  • Zeroconf协议: Zeroconf是一组协议,包括mDNS(多播DNS)和DNS-SD(DNS服务发现)。这些协议允许设备在没有专门服务器的情况下自动配置网络和发现服务。

  • mDNS: mDNS允许设备通过在局域网内广播其主机名和IP地址的方式,实现本地域名解析,而不需要中央DNS服务器。这有助于在没有预先配置的情况下发现其他设备。

  • DNS-SD: DNS服务发现允许设备在网络上广告和查找可用的网络服务。设备可以向局域网广播它们提供的服务,并且其他设备可以查询局域网中的可用服务。

  • Avahi服务: Avahi是一个实现Zeroconf协议的开源软件。它在Linux和类Unix系统中广泛使用,为设备提供自动发现服务和本地域名解析的功能。

  • 服务类型和服务实例: 在Avahi中,服务类型是描述服务的规范,而服务实例是特定设备上运行的实际服务。例如,打印机服务类型可以有多个打印机实例。

使用Avahi在虚拟机环境中的应用:

在虚拟机环境中,Avahi可以用于:

  1. 自动发现服务: 虚拟机可以通过Avahi广播其提供的服务,其他设备可以通过查询来发现这些服务,无需手动配置。

  2. 本地域名解析: 虚拟机可以使用Avahi来提供简单的本地域名解析,使设备能够通过主机名而不是IP地址相互访问。

  3. 简化网络配置: Avahi通过自动发现服务和提供本地域名解析,简化了虚拟机在局域网中的网络配置,使得设备更容易集成到网络中。

总的来说,Avahi为虚拟机提供了零配置网络服务发现的功能,使得在虚拟化环境中更加方便地实现设备之间的通信和服务发现。

Avahi解决方案

虚拟机网络面临的挑战:

  1. 网络隔离: 虚拟机通常需要与主机和其他虚拟机进行通信,但有时也需要隔离以确保安全性。

  2. 网络配置复杂性: 手动配置虚拟机网络参数,如IP地址和子网掩码,可能会变得繁琐,特别是在复杂的网络拓扑中。

  3. 服务发现: 虚拟机和其他设备之间的服务发现通常需要额外的配置,而且在动态网络环境中可能变得复杂。

  4. 设备即插即用: 随着虚拟机的动态创建和销毁,确保新虚拟机能够即插即用,即立即在网络中可用,是一个挑战。

Avahi在虚拟化环境中的解决方案:

  1. 自动服务发现: Avahi使用Zeroconf协议,特别是mDNS和DNS-SD,允许虚拟机自动广播和发现服务。这解决了虚拟机和其他设备之间的服务发现问题,使得设备能够自动了解网络上的可用服务。

  2. 简化网络配置: Avahi通过提供零配置网络服务发现的能力,减轻了虚拟机网络配置的复杂性。虚拟机不再需要手动配置网络参数,而是通过Zeroconf协议自动获取IP地址和域名。

  3. 局域网内部本地域名解析: Avahi可以提供简单的本地域名解析,使设备能够使用主机名而不是IP地址相互访问。这在动态网络环境中尤其有用,当虚拟机的IP地址可能变化时,使用主机名可以更方便地进行通信。

  4. 灵活的网络隔离: Avahi可以根据网络需求配置虚拟机的隔离程度。通过使用Avahi提供的服务发现功能,虚拟机可以在需要时与其他设备通信,同时保持必要的网络隔离。

  5. 即插即用支持: 由于Avahi提供了自动服务发现和本地域名解析的功能,新创建的虚拟机可以立即在网络中可用,实现了即插即用的支持。

总体而言,Avahi在虚拟化环境中通过其零配置网络服务发现的能力,解决了虚拟机网络面临的诸多挑战。它简化了网络配置、提供了灵活的网络隔离,使得虚拟机能够更轻松地融入复杂的网络拓扑中。

虚拟机中配置Avahi服务

在虚拟机中部署Avahi服务通常涉及以下步骤,这里以基于Debian/Ubuntu系统为例:

步骤 1: 安装Avahi服务

sudo apt-get update
sudo apt-get install avahi-daemon

这将安装Avahi服务并启动它。安装完成后,Avahi会自动运行,并监听局域网上的mDNS请求。

步骤 2: 配置Avahi服务

Avahi的配置文件通常位于 /etc/avahi/avahi-daemon.conf。你可以根据需要进行修改,但默认配置通常已经足够。

sudo nano /etc/avahi/avahi-daemon.conf

确保 publish-workstation=yes,这将确保虚拟机能够在局域网上广播其服务。保存并退出。

步骤 3: 重启Avahi服务

sudo service avahi-daemon restart

这会重新启动Avahi服务,以便应用新的配置。

步骤 4: 测试服务发现

你可以使用avahi-browse工具来测试Avahi服务的可用性。首先,确保已安装avahi-utils

sudo apt-get install avahi-utils

然后运行以下命令来查看局域网上的Avahi服务:

avahi-browse -a

这将列出在局域网上广播的所有服务和设备。你应该能够看到虚拟机的服务(例如SSH服务)。

这就是在虚拟机中部署Avahi服务的基本步骤。请注意,具体的步骤可能会因系统的不同而有所不同。确保按照你虚拟机所使用的操作系统的相关文档进行适当的调整。

配置成功展示

在这里插入图片描述

测试成功

image-20240309131823026

这篇关于虚拟机ip不停地变每次使用ssh不好登录?有手就行!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867894

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画