我们的目标是实现类似于桥接模式的那种局域网虚拟机主机互通并且能够访问外网的网络模式,以满足我们日常架设本地服务器测试环境的需求。但是又不想使用桥接模式,因为会占用真实局域网的 IP 地址,这点对于管理严格一点的公司内网来说非常棘手;切换网络容易产生 IP 冲突,就要针对虚拟机更改 IP 配置,非常的麻烦。
那哪种模式才能满足我们的需求呢?
以上介绍的单纯任何一种模式都无法满足,就算能满足也要做相应的设置,而不是默认配置完就能支持。比如 Host-only 模式就可以通过配置宿主机物理网卡和虚拟的网卡之间进行网络共享实现。但是考虑到不通操作系统(例如:Mac OS X、Windows)设置的方式肯定存在差异,没法做到跨平台,换一个操作系统部署同一套环境免不了学习成本,所以这种方式不予考虑。
那还有没有其他方式呢?
答案是有的,不过需要结合几种网络模式来实现。
这里我们采用 双网卡+Host-only+NAT 网络模式来实现。
虚拟机管理软件是支持定制硬件的(当然这里所说的硬件是指软件模拟的),所以添加网卡就可以满足。
假设你已经拥有了一台安装好 CentOS 7.x 的虚拟机
Virtual Box 侧边栏选中你要配置的虚拟机,我这里是 centos7-origin ,点击右边的设置
选中侧边栏的网络一栏,点击”网卡1“标签页,配置连接方式为“仅主机网络”,界面名称选默认的就好
点击“网卡2”标签页,配置连接方式为“网络地址转换”,注意要勾上“启用网络连接”的选框。如果有需要,你也还可以配置“网卡3”、“网卡4”。这里我们只需要配置两张网卡
按以上步骤添加好网卡启动虚拟机
输入 ip addr 命令,此时能看到两张网卡,依次为前面我们设置的 Host-only 、 NAT 模式
cd /etc/sysconfig/network-scripts &&ls 可以看到存在 ifcfg-enp0s3 这个网卡的配置文件,后缀对应的就是前面看到的网卡名
cp ifcfg-enp0s3 ifcfg-enp0s8 拷贝 ifcfg-enp0s3 命名 ifcfg-enp0s8 (对应前面的第二张网卡名)
nmcli con show (使用这个命令需要 NetworkManager 这个服务是开启的)查看网卡的 UUID 并通过 nmcli con show >~/uuid.txt 记录到文件以备修改网卡配置用(这里文件名和路径自己定,也可以同我一样放在家目录,因为我没有用 ssh 工具连接虚拟机,到时候给网卡设置上对应的 UUID 没法复制粘贴,输入会比较麻烦,所以先把查看到的 UUID 信息输出到文件,修改网卡配置文件时可以读入文件的内容方便编辑)
我们采用静态 IP 的方式配置Host-only模式的网卡,也就是 enp0s3 这块
回到Virtual Box主界面点击菜单管理->主机网络管理器,弹出对话框如下
这里采用固定 IP 配置,网络选项卡->手动配置如上
配置虚拟机 Host-only 模式的网卡 vi ifcfg-enp0s3
注意,网段需要跟上面主机网络配置的网卡处于同一网段,网关地址这里设置为主机网络配置的网卡地址一致
接着编辑 enp0s8 这张网卡, vi ifcfg-enp0s8 命令模式下光标移动到最后一行读入我们之前保存的网卡 UUID 文件 : r ~/uuid.txt 方便修改。因为这里是NAT模式,所以只要修改以上四个地方。
systemctl restart network 重启网络
ip addr 查看网卡是否配置成功,如上说明配置没问题
依次测试 Host-only 模式访问宿主机、 NAT 模式访问宿主机、访问外网
测试宿主机访问虚拟机
这样,整个网络便搭建好了,接着就可以欢乐的搭建本地服务器测试环境了
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)