2023-06-30 virtualbox利用双网卡实现固定ip + 外网访问

如何使用virtualbox 虚拟机配置双网卡实现固定IP + 外网访问

软件环境:deepin+virtualbox7+centos7 mini

需求描述:因为本人想要使用一台centos7虚拟机进行生产和代码测试,一开始使用的是桥接模式+固定ip,这样虽然在公司网络下既能上网又能通过固定IP使用finalshell连接虚拟机,但是我下班电脑带回家,结果finalshell就连不上。这是因为,我在宿舍里使用是自己接的局域网,桥接模式下使用的固定ip在宿舍局域网下是不存在的(没有动态分配新的ip,且就算分配了新的ip,宿主机和虚拟机ip网段不一致也白搭),而且此时宿主机和虚拟机网段不一样。所以能不能固定一个ip,让finalshell能够一直连接得上虚拟机,且当宿主能够上网时虚拟机也能够上网?

所以本文就是实现这么一个需求:以下就是Linux下virtualbox以及centos7虚拟机的对应设置

参考文章1 玩转虚拟机VirtualBox- NAT网络配置访问外网和本地访问-蒲公英云

参考文章2 CentOS报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock32 error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknown error” - Mr.毛小毛 - 博客园

1、virtualbox全局设置
  1. 首先管理-全局设置中添加主机模式网卡

    在这里插入图片描述

    个人理解其中:ipv4地址:192.168.56.1对应的是宿主机使用的一张虚拟网卡,这两者是直连。宿主机下使用ipconfig或者ip addr能够进行查看,有一张vboxnet0虚拟网卡,宿主机使用这张网卡与虚拟机进行网络数据交互,所以虚拟机在主机模式下对应ip的应该设置为192.168.56.xxx(除了1、0、255外都可以)。

    原因:默认情况下Host-only networking网络环境利用VirtualBox虚拟出的DHCP服务器,为在Host-only networking中的虚拟网卡分配参数:
    IP地址 192.168.56.2 — 254
    子网掩码 255.255.255.0
    广播地址 192.168.56.255
    默认网关 无
    DNS服务器 无
    DHCP服务器 192.168.56.100

  2. 设置NAT网络

    在这里插入图片描述

2、centos7虚拟机网络设置

点击自己的虚机配置网络(记得关机)

在这里插入图片描述

NAT的MAC地址记下来

在这里插入图片描述

3、启动虚拟机,修改内部网络配置文件
  1. cd /etc/sysconfig/network-scripts/
    在这里插入图片描述

  2. ifcfg-enp0s3 配置

在这里插入图片描述

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=a831e7f1-9ebf-4cc0-9d53-801ad692082d
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.15
  1. ifcfg-enp0s8 配置

在这里插入图片描述

HWADDR=08:00:27:7D:0E:03
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=bcb74149-4138-46d0-b86e-5fe95168d5f8
DEVICE=enp0s8
ONBOOT=yes
4、测试
  1. 虚拟机访问外网

在这里插入图片描述

  1. 本地访问虚机

在这里插入图片描述

5、补充

windows下VirtualBox虚拟机ping不通主机,但是主机可以ping通虚拟机:
解决办法:
打开Windows控制面板 -> 系统和安全 -> Windows Defender 防火墙
点开 “允许应用或功能通过Windows Defender防火墙”
“虚拟机监控”选项,专用和公用点击允许。
重新ping一遍,虚拟机成功ping通宿主机。

关于CentOS报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock32 error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"问题,已解决

1、检查网络配置是否正常

在linux下ping一下看看是不是网络链接正常。出现这种原因就是一般网络没链接好。那修改一下dns,找到/etc/sysconfig/network-scripts/ifcfg-ensxxx
注意一下,ifcfg-ens后面的数字是随机产生的

在这里插入图片描述

将onboot改为yes,重新启动网络,service network restart,然后ping www.baidu.com如果通了的话,就证明链接成功。这样就可以正常yum update了

2、检查有没有配置/etc/resolv.conf

解决方法:

vi /etc/resolv.conf

在这里插入图片描述

:wq保存退出即可,之后再执行yum操作,成功!

3、如果还不行 更新yum源

  1. 备份当前的yum源

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 下载新的CentOS-Base.repo 到/etc/yum.repos.d/

    CentOS 5
       wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
       或者
       curl -o /etc/yum.repos.d/CentOS-Base.repo 
      
    CentOS 6
       wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
       或者
       curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
     
     CentOS 7
       wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
       或者
       curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
  3. 清空并生成缓存

    yum clean all

    yum makecache

    yum 会把下载的软件包和header存储在cache中(默认路径/var/cache/yum/),而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all全部清除。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值