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

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

摘要

最近在学习部署的相关内容,包括 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 网页了

总结

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

相关推荐
行百里er8 分钟前
轻量级 Spring 监测工具——Spring Insight 发布了
spring boot·后端·监控
程序员阿黄36 分钟前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设
光影少年43 分钟前
Koa 为什么使用洋葱模型
后端·node.js·koa
用户298698530141 小时前
Python 如何实现 Word 与 RTF 文档互转
后端·python·api
打工仔折腾 AI1 小时前
用 Shell 脚本自动部署 mysqld_exporter 并接入 Prometheus 远程抓取
人工智能·后端·python·性能优化·ai agent 实战
毅炼1 小时前
不写多语言 SDK,怎么让 Python、Go、Node 服务接入注册中心?
java·后端·系统架构·gateway
Methy1 小时前
IoTHub半个月崩了五次?都是裸rethrow惹的祸
服务器·c++·后端
我不会起名字3221 小时前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go
回家路上绕了弯1 小时前
AI 编程助手为什么反复读取同一份上下文?如何减少无效重复
后端
Lost of 程序猿1 小时前
用 Quartz.NET 优雅地处理 .NET 定时任务:从选型到 Docker 部署全记录
后端·c#·asp.net