VirtualBox(Ubuntu主机/Windows虚拟机)使用host-only方式与访并共享外网

本文详细介绍了如何在Ubuntu主机上使用VirtualBox设置host-only网络,以便与Windows虚拟机共享外网并实现两者的互相通信。通过新建host-only网络,禁用DHCP,设置静态IP,以及开启Ubuntu的网络转发,最终实现虚拟机访问外网及双机互ping的功能。

说实话,我现在工作都是用的Ubuntu Linux(只有家里的组装PC机装了WIN7,用来玩游戏。。。),不过,公司内部用了恶心的263,用wine跑不起来……只好装了VirtualBox,跑了个Win7系统(系统还没破解,这一两天一直弹出激活提示,呃……)。

以前用Windows工作的时候也跑过虚拟机,习惯用host-only+网络共享的方式让虚拟机访问外网,而且主机和虚拟机间可以相互通信。在Ubuntu里一直找不到这种配置方法,所以用了好长一段时间NAT方式共享外网,还好一直没用到需要主机虚拟机相互通信的情况。

今日心血来潮,一定要搞定host-only方式!费了一上午查资料测试,终于搞定,总结记录如下:

1.vbox全局设置

新建host-only网络。一般网络名会是vboxnet0,默认IP地址为192.168.56.1,子网掩码:255.255.255.0。


为了方便之后相互通信,需要虚拟机使用静态IP,因此将DHCP服务器禁用。



2.虚拟机设置

打开虚拟机之前先修改下虚拟机的网络设置,修改网卡1的连接方式为仅主机(Host-only)适配器,界面名称选择前面新建的vboxnet0,

在 **Host-Only 模式**下,默认情况下虚拟机无法访问互联网,因为该模式仅用于虚拟机主机之间的私有网络通信,而不连接到外部网络(如物理网卡连接的网络或互联网)。 但如果你希望虚拟机Host-Only 模式下也能访问互联网,可以通过以下几种方式实现: --- ## ✅ 方法一:使用 NAT + Host-Only 双网卡配置 这是最常见也是推荐的做法,你可以为虚拟机添加两个网卡: - 一个使用 **Host-Only 模式**,用于主机通信。 - 一个使用 **NAT 模式**,用于访问互联网。 ### 📌 示例:VMware / VirtualBox 设置双网卡 #### 1. **在虚拟机设置中添加两个网卡** - 网卡1:Host-Only 模式 - 网卡2:NAT 模式 #### 2. **在虚拟机系统中查看网络接口** Linux 下使用: ```bash ip a ``` 你会看到两个网卡,例如: - `eth0`(Host-Only- `eth1`(NAT) #### 3. **配置默认路由通过 NAT 网卡** 查看路由表: ```bash ip route ``` 添加默认路由(假设 `eth1` 是 NAT 网卡): ```bash sudo ip route add default via <NAT网关IP> dev eth1 ``` 通常 NAT 网关是虚拟化软件自动分配的,比如 VMware 中可能是 `192.168.x.2`,你可以通过 `ip route` 查看已有默认路由。 --- ## ✅ 方法二:主机开启 NAT 转发(共享网络) 如果你坚持只使用 Host-Only 模式,希望虚拟机通过主机访问互联网,可以配置主机虚拟机提供 NAT 网络共享。 ### 📌 步骤如下(以 Linux 主机为例): #### 1. 启用 IP 转发 ```bash sudo sysctl -w net.ipv4.ip_forward=1 ``` #### 2. 配置 iptables 做 NAT 转发(假设主机网卡是 `eth0`,虚拟机网卡是 `vboxnet0`): ```bash sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o vboxnet0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i vboxnet0 -o eth0 -j ACCEPT ``` #### 3. 在虚拟机中设置默认网关为主机Host-Only IP 地址 假设主机 Host-Only 地址是 `192.168.56.1`,则在虚拟机中: ```bash sudo ip route add default via 192.168.56.1 ``` --- ### 📌 Windows 主机使用 Internet 连接共享(ICS) 1. 打开“网络共享中心” > 更改适配器设置。 2. 右键点击你正在使用网络连接(如 Wi-Fi 或以太网) > 属性。 3. 切换到“共享”选项卡。 4. 勾选“允许其他网络用户通过此计算机的 Internet 连接来连接”,选择 Host-Only 网卡作为共享目标。 --- ## ✅ 示例:Ubuntu 虚拟机双网卡配置 ```bash # 查看当前网卡 ip a # 添加默认路由(假设 eth1 是 NAT 接口) sudo ip route add default via 192.168.122.1 dev eth1 # 测试是否能访问互联网 ping 8.8.8.8 ``` --- ## ✅ 总结对比 | 方法 | 优点 | 缺点 | |------|------|------| | 双网卡(Host-Only + NAT) | 简单、稳定、适合开发测试 | 需要配置两个网卡 | | 主机做 NAT 转发 | 只使用 Host-Only,适合特定网络隔离需求 | 需要手动配置 iptables 或 ICS | | 使用桥接模式 | 虚拟机直接接入物理网络 | 虚拟机会获得独立 IP,可能受网络限制 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值