
2023-06-30 virtualbox利用双网卡实现固定ip + 外网访问
需求描述:因为本人想要使用一台centos7虚拟机进行生产和代码测试,一开始使用的是桥接模式+固定ip,这样虽然在公司网络下既能上网又能通过固定IP使用finalshell连接虚拟机,但是我下班电脑带回家,结果finalshell就连不上。这是因为,我在宿舍里使用是自己接的局域网,桥接模式下使用的固定ip在宿舍局域网下是不存在的(没有动态分配新的ip,且就算分配了新的ip,宿主机和虚拟机ip网段不
如何使用virtualbox 虚拟机配置双网卡实现固定IP + 外网访问
软件环境:deepin+virtualbox7+centos7 mini
需求描述:因为本人想要使用一台centos7虚拟机进行生产和代码测试,一开始使用的是桥接模式+固定ip,这样虽然在公司网络下既能上网又能通过固定IP使用finalshell连接虚拟机,但是我下班电脑带回家,结果finalshell就连不上。这是因为,我在宿舍里使用是自己接的局域网,桥接模式下使用的固定ip在宿舍局域网下是不存在的(没有动态分配新的ip,且就算分配了新的ip,宿主机和虚拟机ip网段不一致也白搭),而且此时宿主机和虚拟机网段不一样。所以能不能固定一个ip,让finalshell能够一直连接得上虚拟机,且当宿主能够上网时虚拟机也能够上网?
所以本文就是实现这么一个需求:以下就是Linux下virtualbox以及centos7虚拟机的对应设置
参考文章1 玩转虚拟机VirtualBox- NAT网络配置访问外网和本地访问-蒲公英云
1、virtualbox全局设置
-
首先管理-全局设置中添加主机模式网卡
个人理解其中: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 -
设置NAT网络
2、centos7虚拟机网络设置
点击自己的虚机配置网络(记得关机)
NAT的MAC地址记下来
3、启动虚拟机,修改内部网络配置文件
-
cd /etc/sysconfig/network-scripts/
-
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
- 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、测试
- 虚拟机访问外网
- 本地访问虚机
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源
-
备份当前的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
下载新的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
-
清空并生成缓存
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)