虚拟机网络配置,要连内网,更要连外网

困难从来不会因为你绕过去,它就自动没有了。

摘要

最近在学习部署的相关内容,包括 Linux、Nginx、Docker、MySQL 等一系列知识。但本人对 Linux 不熟悉,特别是对虚拟机上的系统配置不熟悉。这篇文章,就是用来记录我解决虚拟机 CentOS7 与宿主系统 Windows10 及外网进行网络通联的过程。如果这篇文章能启迪你解决你遇到的问题,那这篇文章就没白写。

环境

宿主系统:Windows10

虚拟机环境:VirtualBox6.1

虚拟机系统:CentOS7

步骤

  1. 选中 CentOS7 系统,并确保系统已关机。然后选择菜单 管理 > 全局设定 > 网络,新建一个 Nat 网络网卡如下并确定:

  2. 继续选中 CentOS7 系统,然后选择菜单 管理 > 主机网络管理,如果不存在仅主机网络网卡,则新建一个,配置如下:

  3. 有了 Nat网卡 和 仅主机网卡 后,就可以对网络网卡进行配置了。在选中 CentOS7 系统后,选择菜单 控制 > 设置 > 网络,并分别为 网卡1 和 网卡2 设置成如下:

    (其中 MAC 地址记得刷新两次,以确保网卡配置生效)

  4. 网卡硬件配置好以后,我们就可以开机了。进入操作系统,我们执行 ip addr 命令后就能看到 lo、enp0s3、enp0s8 三个网络适配器了:

  5. 其中 enp0s3 的适配器配置文件已存在,我们可以使用命令 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 对其进行修改,其配置如下:

  6. 而 enp0s8 的配置文件,一开始可能是不能存在的,我们可以执行 cd /etc/sysconfig/network-scripts 进入到 network-scripts 目录中。再用 cp ifcfg-enp0s3 ifcfg-enp0s8 把 ifcfg-enp0s3 复制一份成为 ifcfg-enp0s8,然后使用 vi ifcfg-enp0s8 对其进行编辑,其配置如下:

    你们可能会疑惑,HWADDR 和 UUID 这两个参数是如何得到的。

    其中,HWADDR 即 MAC 地址(由 12 个十六进制字符组成,用冒号两两隔开),可查看步骤 3 得到,或者通过命令 ip addr 得到

    UUID 则可以使用命令 nmcli con 获得

  7. 到此,我们完成了网卡适配器的配置。先执行 systemctl restart network 刷新网络,然后执行 ping www.baidu.com 可以看到我们已经能访问外部网络:

    在 CentOS7 中再执行 ping 192.168.0.66 访问宿主系统,可以看到也是 OK 的(如果没 ping 通,你可以临时把宿主系统 Windows10 的防火墙关闭,看看是否由于宿主系统的防火墙入站规则太过严格导致请求被拦截):

  8. 如果是宿主系统需要访问虚拟机系统的内部服务器,则可以在 网卡1(即 NAT 网卡) 的端口转发进行配置:

    同时,把必要的端口添加到 CentOS7 的防火墙白名单中,如:

    bash 复制代码
    # 把 81 端口永久添加到防火墙白名单
    firewall-cmd --add-port=81/tcp --permanent
    
    # 重新加载防火墙规则
    firewall-cmd --reload

    假设 CentOS7 运行了 Nginx 服务,服务的端口为 81,则用户可以在 Windows10 的浏览器中输入 192.168.56.102:81 来访问虚拟机中的 Nginx 网页了

总结

到这篇文章为止,很多内容都是属于技巧性的,没有体现出系统性。接下来写一些体系化的内容,是重中之重。

相关推荐
林太白12 小时前
ofd文件
前端·后端
学烹饪的小胡桃12 小时前
WGCAT工单系统 v1.2.7 更新说明
linux·运维·服务器·网络·工单系统
BigBigHang12 小时前
【docker】离线设备安装镜像
运维·docker·容器
学好statistics和DS12 小时前
Docker文件与本地文件,系统
运维·docker·容器
demo007x12 小时前
在国内也能使用 Claude cli给自己提效,附实操方法
前端·后端·程序员
liuc031712 小时前
docker下安装SearXNG
运维·docker·容器
开心猴爷12 小时前
iOS App的tcp、udp数据包抓取在实际开发中的使用方式
后端
云飞云共享云桌面12 小时前
非标自动化工厂的设计云桌面为什么要选云飞云智能共享云桌面?
大数据·运维·服务器·网络·自动化·负载均衡
JavaGuru_LiuYu12 小时前
Spring Boot 整合 SSE(Server-Sent Events)
java·spring boot·后端·sse
xuejianxinokok12 小时前
如何在 Rust 中以惯用方式使用全局变量
后端·rust