virtualbox结合nat和host-only设置固定ip的环境

摘要:
网卡具有唯一的mac地址。查看第二个仅限主机的网卡的mac地址。看看虚拟机网络ipaddr。您可以看到,与第二个网卡mac地址对应的设备是enp0s8。然后编辑的文件应为ifcfg-enp0s8BOOTPROTO=static##更改为静态静态ipIPADDR=1192.168.56.104##设置静态ipNETMASK=255.255.255.0#设置子网掩码注意:IPADDR和NETMASK应与主机的网络设置相匹配;我自己的笔记本电脑IP是192.168.56.1,因此上面虚拟机的IP地址只能设置为192.168.56。x此IP段用于从笔记本(主机)ping虚拟机!可以以相同的方式设置其他虚拟机,或者在配置完完整的虚拟机环境后,直接使用virtualbox复制和更改IP地址更容易

需求

平时在做一些实验或学习的时候,比如rocketmq、kafaka、zookeeper等,需要在虚拟机上创建几个虚拟机组成集群来做实验;一般有几个要求:

  • 虚拟机能访问网络,需要下载安装东西
  • 虚拟机的ip需要固定;不然在虚拟机重启或者电脑从家里拿到办公室的时候,ip变了,又要一个个进命令行去看ip,然后改代码里的配置,麻烦的很
  • 虚拟机之间能互相访问,集群/主从架构节点需要互相通信

网络连接方式选择

可以访问网络的连接方式:

  • nat(网络地址转换)
  • 桥接

但是,

  • NAT不支持静态IP、虚拟机之间不能互相访问
  • 桥接的话会占用局域网的ip,在自己屋里还好,设备少,可以避开,要是拿到办公环境就容易和其他机器的ip冲突了

多块网卡 NAT + Host Only

直接用桥接模式,倒是能满足需求,但是也不大好; 但是我们这是用的虚拟机,有多个网卡
image

我们可以通过多个网卡,设置不同的网络连接方式,达到目标;

  • 第一个网卡选择 NAT 模式使得虚拟机能访问网络
  • 第二个网卡选择 Host Only 使多个虚拟机之间能互相通信并且还能设置静态ip

1. 第一块网卡设置NAT

首先 VirtualBox 使用 NAT 模式,需要先开始一个全局设置 (管理 -> 全局设置)
virtualbox结合nat和host-only设置固定ip的环境第2张
nat网络明细

然后网络连接设置为 NAT
image

ping 一下网络试试
image

2. 第二块网卡设置 Host Only

image

设置静态ip

进入网卡配置目录 cd /etc/sysconfig/network-scripts
ifcfg- 开头的文件, 由于现在有多个网卡,ifcfg的文件有多个
image

那么编辑哪个呢?网卡有唯一的 mac 地址,看看第二块host only 的网卡mac地址为
image

看看虚拟机网络 ip addr
image
可以看到,第二块网卡mac地址对应的设备为 enp0s8

那么编辑的文件应该是 ifcfg-enp0s8

BOOTPROTO=static  ## 改为static静态ip
IPADDR=192.168.56.104 ##设置静态ip
NETMASK=255.255.255.0 ## 设置子网掩码

注意:IPADDR 和 NETMASK 要和宿主机的网络设置匹配;我自己的笔记本 ip是 192.168.56.1 所以上面虚拟机的ip地址只能设置成 192.168.56.x 这个ip段
image

从笔记本(宿主)ping一下虚拟机试试
image

成功! 其他台虚拟机可以用一样的方式去设置,或者再配置完整个虚拟机环境(网络、基本的java环境、zookeeper节点)后,直接利用virtual box复制后改改ip 更省事

免责声明:文章转载自《virtualbox结合nat和host-only设置固定ip的环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇钽电容封装大全及技术参数Vue或JS的浮点型乘除法无法精确计算下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java性能分析神器--VisualVM Launcher[1]

Java性能分析神器1--VisualVM Launcher VisualVM 当你日复一日敲代码的时候,当你把各种各样的框架集成到一起的时候,看着大功告成成功运行的日志,有没有那么一丝丝迷茫和惆怅:这TM起的是什么玩意?每一行日志背后代表的是什么东西??他为什么就能跑起来了呢???? 这种时候不要慌,给大家推荐一款功能强大的插件:VisualVM Lau...

windows 8.1 启用hyper-v导致vmware 无法使用的问题解决方案(兼顾WP8.1模拟器和vmware)

最近搭建了windows phone 8.1开发环境,为了开机就可以进行WP8.1开发,就使用了 bcdedit /set {BCD ID} hypervisorlaunchtype auto 命令将Hyper-V随机启动,现在需要在vmware中运行linux系统,打开虚拟机就提示以下错误: vmware workstation and hyper-v...

jvm之java类加载机制和类加载器(ClassLoader),方法区结构,堆中实例对象结构的详解

一.类加载或类初始化:当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤。 二.类加载时机: 1.创建类的实例,也就是new一个对象 2.访问某个类或接口的静态变量,或者对该静态变量赋值 3.调用类的静态方法 4.反射(Class.forName("com...

java基础-构建命令行运行的java程序简要注意

 今天编写了一个运行在服务端的java工具类,才发现自己以前很少关注运营方面的内容,导致在服务端部署一个java的工具变得异常困难,其实这也是自己对java的了解不够造成的。   首先,当代码编写完成之后,在主类中必须要有main函数,其中的参数非常重要。根据一位同事的说法,除正常的执行程序之外,其中至少要包含两种参数:-v(软件版本,以及作者等介绍信息...

Docker学习のWindows下安装Docker

一、docker最初只支持linux的,因此在windows下运行需要虚拟机。 利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端 利用Windows的Hyper-v虚拟化技术,直接在Windows上安装docker服务端和客户端。(在windows10和windows server2016) WIndow...

深入理解java虚拟机

第四章:java虚拟机命令行工具 1:jps命令行进程状况工具      jps [options] [hostid] C:Userslenovo>jps -l13824 sun.tools.jps.Jps14224 org.jetbrains.jps.cmdline.Launcher8528 org.jetbrains.idea.maven.ser...