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

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

摘要

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

总结

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

相关推荐
落幕8 分钟前
C语言-进程
linux·运维·服务器
bing_15815 分钟前
简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
spring boot·后端·简单工厂模式
天上掉下来个程小白40 分钟前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
chenbin5201 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯1 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
AI服务老曹1 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
Asthenia04121 小时前
基于Jackson注解的JSON工具封装与Redis集成实战
后端
编程星空2 小时前
css主题色修改后会多出一个css吗?css怎么定义变量?
开发语言·后端·rust
sszdzq2 小时前
Docker
运维·docker·容器
book01212 小时前
MySql数据库运维学习笔记
运维·数据库·mysql