1. 虚拟机的网络连接
- 虚拟机的网络连接是指虚拟机与外部网络(如物理网络、互联网)或其他虚拟机之间建立通信的方式。不同的虚拟化软件(如 VMware Workstation、VirtualBox 等)提供了多种网络连接模式,以下是详细介绍常见的网络连接模式及其特点和应用场景。
1.1. VMware Workstations网络连接模式
1.1.1. 桥接模式(Bridged)
- 原理:虚拟机直接连接到物理网络,就像一台独立的物理设备一样。它通过宿主机的网卡与外部网络进行通信,虚拟机和宿主机处于同一局域网中,会从局域网的 DHCP 服务器获取 IP 地址。
- 特点
虚拟机可以获得与宿主机同一网段的独立 IP 地址,方便与局域网内的其他设备进行通信。
网络配置相对简单,只要宿主机能正常访问网络,虚拟机一般也能正常访问。 - 应用场景:适合需要让虚拟机像真实物理机一样直接参与局域网的场景,例如在虚拟机中搭建服务器供局域网内其他设备访问。
- 配置示例:在 VMware Workstation 中,选择虚拟机设置 -> 网络适配器,将连接方式选择为 “桥接模式”。
1.1.2. NAT 模式(Network Address Translation)
- 原理:虚拟机通过宿主机的网络地址转换功能访问外部网络。宿主机充当网关,虚拟机使用私有 IP 地址,通过宿主机的 IP 地址与外部网络进行通信。
- 特点
虚拟机可以访问外部网络,但外部网络无法直接访问虚拟机(除非进行端口映射)。
虚拟机无需配置复杂的网络参数,会自动从 NAT 服务中获取 IP 地址。 - 应用场景:适合只需要虚拟机访问外部网络,而不需要外部网络直接访问虚拟机的场景,如在虚拟机中进行上网测试、开发调试等。
- 配置示例:在 VMware Workstation 中,选择虚拟机设置 -> 网络适配器,将连接方式选择为 “NAT 模式”。
1.1.3. 仅主机模式(Host - Only)
- 原理:虚拟机只能与宿主机进行通信,不能直接访问外部网络。它使用虚拟的仅主机网络,虚拟机和宿主机通过虚拟网卡进行通信。
- 特点
提供了一个相对安全的网络环境,适合进行一些对网络安全性要求较高的测试。
可以方便地在虚拟机和宿主机之间共享文件和数据。 - 应用场景:适合在虚拟机中进行一些独立的开发、测试工作,不希望虚拟机与外部网络有直接连接的场景。
- 配置示例:在 VMware Workstation 中,选择虚拟机设置 -> 网络适配器,将连接方式选择为 “仅主机模式”。
1.2. VirtualBox 网络连接模式
1.2.1. 网络地址转换(NAT)
- 原理:与 VMware 的 NAT 模式类似,虚拟机通过 VirtualBox 的 NAT 引擎访问外部网络,虚拟机使用私有 IP 地址,通过宿主机的 IP 地址进行网络通信。
- 特点:配置简单,虚拟机可以方便地访问外部网络,但外部网络无法直接访问虚拟机。
- 应用场景:常用于需要虚拟机访问互联网进行软件下载、更新等操作的场景。
- 配置示例:在 VirtualBox 中,选择虚拟机设置 -> 网络 -> 连接方式,选择 “网络地址转换(NAT)”。
1.2.2. 桥接网卡
- 原理:与 VMware 的桥接模式类似,虚拟机直接连接到物理网络,获取与宿主机同一网段的 IP 地址,可与局域网内的其他设备直接通信。
- 特点:虚拟机可以像独立的物理设备一样参与局域网,方便与其他设备进行网络交互。
- 应用场景:适用于需要将虚拟机作为局域网中的一个节点,提供服务或进行网络测试的场景。
- 配置示例:在 VirtualBox 中,选择虚拟机设置 -> 网络 -> 连接方式,选择 “桥接网卡”,并选择对应的物理网卡。
1.2.3. 仅主机(Host - Only)网络
- 原理:虚拟机只能与宿主机进行通信,通过 VirtualBox 创建的虚拟网卡实现。
- 特点:提供了一个隔离的网络环境,适合进行一些独立的开发和测试工作。
- 应用场景:常用于在虚拟机中进行安全测试、软件开发等,不希望虚拟机与外部网络有直接连接的场景。
- 配置示例:在 VirtualBox 中,选择虚拟机设置 -> 网络 -> 连接方式,选择 “仅主机(Host - Only)网络”。
1.2.4. 内部网络
- 原理:虚拟机之间可以相互通信,但与宿主机和外部网络隔离。多个虚拟机可以组成一个独立的内部网络。
- 特点:提供了一个完全隔离的网络环境,适合进行多虚拟机之间的网络测试和模拟。
- 应用场景:例如在虚拟机中模拟一个小型的局域网,进行网络拓扑结构的测试和研究。
- 配置示例:在 VirtualBox 中,选择虚拟机设置 -> 网络 -> 连接方式,选择 “内部网络”,并指定一个内部网络名称。
2. VMware workstations 连接操作实例
2.1. NAT 模式
- 设置虚拟网络编辑器:打开 VMware,点击 “编辑” 中的 “虚拟网络编辑器”。若提示需要管理员权限,点击 “更改设置”。选择 NAT 模式,点击 “NAT 设置”,记住网关地址。再点击 “DHCP 设置”,记住起始和结束 IP 地址,这是设置网络 IP 的范围。设置完成后点击 “确定” 退出。
- 配置 CentOS 网络:在 CentOS 系统中,点击右上角的有线连接图标或开关机键,选择 “有线设置”。打开有线连接,点击齿轮图标,选择 “IPv4”,方法选择 “手动”。在地址栏填写在刚才 IP 范围内的地址,子网掩码一般为 255.255.255.0,网关填写之前记住的网关地址,DNS 可填写 8.8.8.8 和 114.114.114.114(中间用空格隔开),点击 “应用” 返回。
- 设置网络适配器:点击虚拟机的标签,选择 “设置”,点击 “网络适配器”,选择 “自定义”,然后选刚才设置的 NAT 模式的名字,点击 “确定”。
- 重启网络服务:在终端输入命令 “systemctl restart network.service” 来重启网络服务,即可完成联网操作。
2.2 桥接模式
- 查看物理机网络:在物理机上运行 “cmd”,命令行录入 “ipconfig”,查看物理机网络信息,记录 IP 地址、子网掩码、网关等信息。
- 设置虚拟网络编辑器:在 VMware 中,找到 “编辑”→“虚拟网络编辑器”,设置网络连接 “类型” 为 “桥接模式”,即选择网络名称 “VMnet0”,在 “桥接到” 右边的倒三角,选择与物理机相同的网卡,点击 “应用”“确定”。
- 配置虚拟机网络适配器:在 VMware 中,找到 “虚拟机”→“设置”,选择 “硬件”,设置网络适配器为桥接模式。
- 配置 CentOS 网络参数:在 CentOS 系统中,点击 “应用程序”→“系统工具”→“设置”,选择 “网络”。点击 “有线” 后的设置标志,选择 “IPv4”,选择 “手动”,设置 IP 地址、子网掩码、网关与物理机一致,DNS 可以设置一个或多个,设置完成后,点击右上角的 “应用”。
- 重启网络服务:在终端执行 “systemctl restart network” 命令重新启动网络服务,即可完成从 NAT 模式到桥接模式的转换。
3. 一般故障检查
3.1物理机相关检查
- 物理机网络连接
确保物理机本身能正常访问互联网,可通过打开网页进行验证。 - 物理机安全软件
物理机上的防火墙、杀毒软件等可能会阻止 VMware 虚拟机的网络访问,可暂时关闭这些安全软件进行测试。 - VMware服务状态
在物理机的 “服务”(可通过在 “运行” 中输入 services.msc 打开)中,确保 VMware DHCP Service 和 VMware NAT Service 服务正在运行,若未运行则右键选择 “启动”。
3.2 VMware网络基础配置检查
- VMware 虚拟网络编辑器
打开 VMware 软件,点击 “编辑” 菜单下的 “虚拟网络编辑器”,确保 VMnet8(默认 NAT 模式的虚拟网络)已启用。
点击 “NAT 设置”,确认网关地址正常显示,且格式正确,一般为 192.168.x.2 这种形式。
点击 “DHCP 设置”,查看 DHCP 服务是否开启,地址范围是否合理。若设置有改动,点击 “应用” 和 “确定” 保存。 - 虚拟机网络适配器设置
右键点击虚拟机,选择 “设置”,进入 “硬件” 选项卡,点击 “网络适配器”,确保已选择 “NAT 模式”。
虚拟机内部网络检查 - IP 地址获取情况
在 CentOS 虚拟机的终端中,使用 ip addr 命令查看网络接口的 IP 地址。若没有分配到有效的 IP 地址(通常在 VMnet8 的 DHCP 地址范围内),可尝试手动释放和重新获取:
sudo dhclient -r # 释放当前 IP 地址
sudo dhclient # 重新获取 IP 地址
- 网络配置文件
网络配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,常见的文件名如 ifcfg-ens33 (网卡名可能不同)。确保文件内容类似如下配置(以 DHCP 自动获取 IP 为例):
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
修改后,使用 sudo systemctl restart network
命令重启网络服务。
- 防火墙与 SELinux 检查
- 防火墙设置
防火墙可能会阻止网络访问,可暂时关闭防火墙来测试:
sudo systemctl stop firewalld # 停止防火墙服务
sudo systemctl disable firewalld # 禁止防火墙开机自启
若关闭后能联网,说明需重新配置防火墙规则以允许网络访问。
- SELinux 状态
SELinux 可能限制网络连接,使用 sestatus 命令查看其状态。若处于 “enforcing” 状态,可临时设置为 “permissive” 模式:
sudo setenforce 0
- DNS 配置检查
DNS 配置文件
编辑 /etc/resolv.conf 文件,添加公共 DNS 服务器地址:
nameserver 8.8.8.8
nameserver 114.114.114.114
保存后尝试联网。