VirtualBox NAT 方式下和宿主机的连接

本文解决使用VirtualBox设置为NAT模式后,宿主机与虚拟机无法正常通信的问题。通过调整网络设置,将另一网卡设为Host-Only模式,成功解决了此问题。

以前用 VMware 采用 NAT 方式, 宿主机和虚拟机是可以通信的.

今天用 VirtualBox 设置为 NAT, 宿主机和虚拟机不能正常通信, 以为是配置的问题.  

VirtualBox三种网络设置说明(Nat Host Bridge)  中提到 VirtualBox 这样设置宿主机不能访问到虚拟机.

看了下 VirtualBox 的网络设置, 发现支持多网卡, 这就很容易解决. 将另外一网卡设为 "Host-Only" 模式即可.


### 配置 VirtualBox 网络以实现虚拟机宿主机互通 为了使 VirtualBox 中的虚拟机与宿主机能够互相访问,可以采用双网卡模式。以下是具体的配置方法: #### 1. 设置两块网卡 在 VirtualBox 的虚拟机设置中,添加两块网卡: - **第一块网卡 (NAT)** 将其设置为 NAT 模式,用于虚拟机连接外部网络并访问互联网[^1]。 - **第二块网卡 (Host-Only Adapter)** 添加一块 Host-Only Adapter 类型的网卡,这将允许虚拟机与宿主机之间的本地通信[^2]。 #### 2. 宿主机上的网络适配器配置 如果尚未创建 Host-Only Network,在 VirtualBox 的全局设置中完成此操作: - 打开 `File -> Preferences -> Network`。 - 创建一个新的 Host-Only Network,默认会分配一个 IP 地址范围(如 `192.168.56.0/24`),也可以手动修改该地址池。 #### 3. 虚拟机内的网络接口配置 进入 CentOS 或其他 Linux 发行版的虚拟机后,编辑对应的网络接口文件来启用这两张网卡。 对于 NAT 接口 (`enp0s3`) Host-Only 接口 (`enp0s8`),分别进行如下配置: ##### 编辑 NAT 网卡配置文件 打开 `/etc/sysconfig/network-scripts/ifcfg-enp0s3` 文件,并确保以下参数存在: ```bash BOOTPROTO=dhcp ONBOOT=yes ``` 保存退出后重启网络服务: ```bash sudo systemctl restart network ``` ##### 编辑 Host-Only 网卡配置文件 打开 `/etc/sysconfig/network-scripts/ifcfg-enp0s8` 文件,并填写以下内容: ```bash DEVICE=enp0s8 BOOTPROTO=static IPADDR=192.168.56.101 NETMASK=255.255.255.0 GATEWAY= DNS1= ONBOOT=yes ``` 注意:这里的 `IPADDR` 应当位于 Host-Only Network 的子网范围内,且与其他设备冲突[^3]。 再次重启网络服务以应用更改。 #### 4. 测试连通性 确认虚拟机宿主机均能正常工作之后,尝试通过命令测试两者间的连通性: - 在宿主机上运行: ```bash ping 192.168.56.101 ``` - 在虚拟机上运行: ```bash ping 192.168.56.1 ``` 成功返回 ICMP 数据包即表明配置生效。 ```python # 示例 Python 脚本验证 Ping 连接状态 import os def test_ping(ip_address): response = os.system(f"ping -c 1 {ip_address} > /dev/null 2>&1") return "Reachable" if response == 0 else "Unreachable" print(test_ping("192.168.56.1")) # 替换为目标 IP 地址 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值