Hyper-V Ubuntu 虚拟机配置双网卡

文章目录

    • 背景介绍
    • 目标与原理
    • 双网卡的配置步骤
    • 验证

背景介绍

在学习Kubernetes集群的时候遇到了联网与SSH连接的矛盾。

Hyper-V平台有一个缺省的虚拟交换机叫做Default Switch,并且给宿主机安装了连接到Default Switch的虚拟网卡vEthernet (Default Switch),两者都是不可删除的,其作用是保证虚拟机具备能连接到互联网的保底能力。

然而,虚拟机的虚拟网卡连接到Default Switch后,执行的是DHCP策略,导致其IP地址会经常变化,非常不利于SSH连接,因为每次连接都要查一次IP。

为了方便SSH连接,我们新建了一个模式为Internal的虚拟交换机,叫做Internal Switch,同时宿主机也被安装了连接到Internal Switch的虚拟网卡vEthernet (Internal Switch)。而对于虚拟机,就可以将其网卡的IP固定下来了,从而不需要每次连接前都查一次IP了。

然而,这个模式还是有一些缺点的。首先就是默认情况下并不具备访问互联网的能力,必须先在宿主机那里配置网络共享,让宿主机可联网的网卡,向共享虚拟网卡共享网络连接,这样之后连接到Internal Switch交换机的虚拟机集群才能联网。其次就是每次共享连接之后,宿主机的虚拟网卡的IP都会被系统改为192.168.137.1,导致整个子网就变成了192.168.137.0/24,这样的话就导致所有虚拟机都必须是这个网段下的才能正常连接。最后就是这种共享连接的办法很麻烦,如果前一晚做完实验忘记取消联网共享,那么第二天开机后你会发现,虽然SSH还能上,但是已经不能联网了,必须先取消共享,然后再次共享,相当麻烦。

截至目前,所有Linux虚拟机都是采用第二种模式。

目标与原理

为了达成以下目标:

  • 虚拟机固定IP方便SSH连接
  • 无需人工再次配置即可联网

有前辈想到了给虚拟机配置双网卡的办法,链接:关于Hyper-V网络设置经验总结(Default Switch/固定IP/SSH),应该是红帽系的发行版。

本文以安装了Ubuntu 20.04.6的虚拟机为例,其使用的netplan组件,会将Hyper-V给虚拟机设定的网卡,按照在虚拟机配置菜单里的顺序,分配eth0、eth1等的名字。而要配置这些网卡,只需要修改netplan的配置文件就行。

现在假设:

  • eth0:是虚拟机连接到Default Switch的网卡,采用DHCP模式,不需要其他配置了;
  • eth1:是虚拟机连接到Internal Switch的网卡,采用静态IP模式,需要手动配置IP、网段、DNS等;
  • vEthernet (Default Switch):是宿主机连接到Default Switch的网卡,一切保持默认状态;
  • vEthernet (Internal Switch):是宿主机连接到Internal Switch的网卡,需要手动配置IP与网段;
  • 要求vEthernet (Internal Switch)与eth1处于同一子网下。

那么,只要虚拟机需要发起任何连接时都走eth0,这样虚拟机就可以通过eth0联网了;并且能保证eth1可以接受宿主机发起的连接,这样宿主机就可以通过eth1向虚拟机建立SSH连接了。

至于路由的配置,只要保证不存在一个默认的路由,netplan就会自动识别并配置路由,保证能联网。

双网卡的配置步骤

假设vEthernet (Internal Switch)的IP地址是192.168.137.1,并且没有配置DNS;期望将eth1的IP地址设为192.168.137.2,可按照如下步骤配置双网卡:

  1. 为已有的虚拟机创建一个检查点,以备不测。

  2. 正常打开并访问该虚拟机。

  3. 在虚拟机正在运行的情况下,打开其Hyper-V设置菜单:

    1. 首先,删掉原有的那一个网卡,确保当前没有配置任何网卡;

    2. 然后,新建第一个网卡,选择连接到Default Switch;

    3. 最后,新建第二个网卡,选择连接到Internal Switch。

  4. 备份原有的单网卡netplan配置文件:

    sudo mv /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
    
  5. 重建双网卡配置文件:

    sudo vim /etc/netplan/00-installer-config.yaml
    

    然后粘贴:

    network:
      ethernets:
        eth0:
          addresses: []
          dhcp4: true
          nameservers:
            addresses:
            - 119.29.29.29			# Tencent DNS
            - 223.5.5.5				# Aliyun DNS
            - 8.8.8.8				# Google DNS
            search: []
        eth1:
          addresses:
          - 192.168.137.2/24
      version: 2
    

    保存并退出:

    :wq
    
  6. 应用新的netplan配置:

    sudo netplan apply
    
  7. 此时不必重启系统,即可实现Hyper-V虚拟机双网卡。

验证

如前文所述,netplan apply命令会使新配置立即生效。此时即可使用ip addr、ip route、nslookup、ping等命令来验证能否访问固定ip以及能否联网了。

下面是最终验证的步骤:

  1. 关掉虚拟机;
  2. 重启宿主机;
  3. 启动虚拟机;
  4. 查看宿主机的vEthernet (Default Switch)的IP是否更新;
  5. 查看虚拟机的eth0的IP是否更新;
  6. 使用ip addr、ip route、nslookup、ping等命令来验证能否联网。

全文完。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 自定义日志输出

Python 有着内置的日志输出模块:logging 使用也很方便,但我们今天不说这个,我们用文件读写模块,实现自己的日志输出模块;这样在项目中,可以存在更高的自由度及更高的扩展性; 先来看看日志输出…

k8s拉取不了私有镜像问题

报错 kubectl describe pod run-nfs-client-provisionercrictl pull 172.24.4.59/library/spark_lijia:3.5.1报错问题:“k8s拉取不了私有镜像” 可能是由于以下几个原因造成的:认证问题:私有镜像库可能需要用户名和密码才能拉取镜像。网络问…

vue3.2+vite+unocss原子化配置

1、安装unocss:npm install unocss 2、vite.config.ts中配置: 3、创建unocss自己的ts文件:uno.config.ts 根路径下创建, 4、在创建好的uno.config.ts文件中编写如下代码: // uno.config.ts import {defineConfig,prese…

985、211之后,“101计划”来了

日前,教育部部署基础学科系列“101计划”推进工作在京展开。 在985、211之后,“101计划”以锐不可当的气势重新进入高等教育大众的视野。 图 |基础学科系列“101计划”工作推进会暨计算机“101计划”成果交流会在京召开 缘起 一直以来,我国办…

您用来登录计算机的密码与登录密钥环里的密码不再匹配

您用来登录计算机的密码与登录密钥环里的密码不再匹配 问题描述解决方法 问题描述 在使用ubuntu系统时,打开程序显示“您用来登录计算机的密码与登录密钥环里的密码不再匹配“ 解决方法 1.在终端中输入 seahorse ,打开密钥管理 2.删除程序登陆密钥 3.打…

elaticsearch windows安装

es下载地址 https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads/past-releases#elasticsearch 在这里插入图片描述 下载直接解压,解压后目录 双击bin目录下的elasticsearch.bat开启服务 注意:9300 端口为 Elas…

我们不可能永远都在救火 ——Scrum中技术债

一、定义 技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt)、代码负债(code debt),是编程及软件工程中的借鉴了财务债务的系统隐喻。指…

智慧图书管理|基于SSM+vue的网上服装商城系统(源码+数据库+文档)

智慧图书管理目录 基于SSMvue的网上服装商城系统 一、前言 二、系统设计 三、系统功能设计 1.1 服装列表 1.2 公告信息管理 1.3 公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#xff1…

springboot拦载器

1、拦载器 package com.Interceptor;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.security.auth.login.Log…

Kingbase(人大金仓数据库)使用教程(下载、安装、JDBC连接、MyBatis-Plus应用)

Kingbase(人大金仓数据库)使用教程(下载、安装、JDBC连接、MyBatis-Plus应用) 下载JDBC的jar包 下载数据库安装文件 点击链接,下载授权文件(开发版365天),如果后续许可过期&#…

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测 目录 回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索算法…

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法 最近刚上线的由影视剧改编的游戏《阿斯达年代记三强争霸》可谓是在游戏圈内引起了轩然大波,这是一款由网石集团与龙工作室联合开发的MMORPG游戏,游戏背景设定在一个名为阿斯大陆的区域&…

docker部署prometheus

概述 Prometheus是一个开源的服务监控系统和时序数据库,专为云计算环境设计。它提供了通用的数据模型和快捷的数据采集、存储和查询接口。Prometheus的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的目标中拉取数据。当新拉取到的…

Java设计模式 _创建型模式_工厂模式(普通工厂和抽象工厂)

一、工厂模式 属于Java设计模式创建者模式的一种。在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 二、代码示例 场景:花店有不同的花,通过工厂模式来获取花。 1、普通工厂模式 逻辑步骤&#…

maven-安装maven

解压 修改配置文件 apache-maven-3.6.1\conf\settings.xml 新建文件夹mvn_repo为仓库 配置镜像 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url><…

手动在Ubuntu22.04上部署LAMP环境

简介 LAMP环境是常用的Web开发环境之一&#xff0c;其中LAMP分别代表Linux、Apache、MySQL和PHP。本文介绍如何在Ubuntu操作系统的ECS实例内部署LAMP环境。 准备工作 该实例必须满足以下条件&#xff1a; 实例已分配公网IP地址或绑定弹性公网IP&#xff08;EIP&#xff09;。…

电脑运行Omniverse卡顿?试试赞奇云工作站

无论是创造能够表达原始情感的逼真数字人&#xff0c;还是构建身临其境的虚拟世界&#xff0c;全球设计、工程、创意和其他行业的人士都在通过3D工作流&#xff0c;突破技术壁垒并拓展创意可能&#xff0c;让虚拟世界和现实世界交融与观众产生共鸣。在众多连接未来创作内容的平…

【Canvas与艺术】 绘制五星红旗

【注意】 该图中五星定位和大小都是按 https://www.douyin.com/note/7149362345016380710 精确绘制的。 【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8&q…

Spring AOP详解,简单Demo

目录 一、Spring AOP 是什么&#xff1f; 二、学习AOP 有什么作用&#xff1f; 三、AOP 的组成 四、 Spring AOP 简单demo 一、Spring AOP 是什么&#xff1f; Spring AOP&#xff08;Aspect-Oriented Programming in Spring&#xff09;是Spring框架中的一个重要组件&…

python部署linux

项目做完了&#xff0c;就涉及到了部署 部署 Python的打包部署方式有多种&#xff0c;具体取决于项目的需求、规模以及所使用的工具。以下是几种常见的Python打包部署方式&#xff1a; 使用pip安装&#xff1a;对于小型的Python库或工具&#xff0c;通常可以直接通过pip进行安…
最新文章