电脑连接virtualbox虚拟机的方法

背景

在用vmware虚拟机的时候发现对amd的cpu支持不是很友好,于是转用了virtualbox平台。

虚拟机的网络需求主要有2点:1.能够上外网;2.个人电脑能够连接到虚拟机。

方案1:用桥接

这样虚拟机的网段跟电脑一致,能够上外网,个人电脑也能直接连到虚拟机。

**优点:**单张网卡

**缺点:**如果是笔记本,电脑换个网络,虚拟机的ip就会变。不够方便

方案2:NAT+仅主机网络

NAT负责连外网,仅主机网络用来电脑连接虚拟机

**优点:**仅主机网络ip不会变,个人电脑换个地方能直接连到虚拟机

**缺点:**双网卡,感觉不够完美。

我的方案:NAT+端口转发

**优点:**单张网卡;IP不会变;能上外网;个人电脑能够直接连。

其实就是只用一张NAT网卡,利用“端口转发”的功能来实现个人电脑连接到虚拟机。

这样实现了:只用一张不变IP的网卡,又能上网,电脑又能轻松连接。

设置路径:VirtualBox–管理(左上角)-- 网络 --选中一张网卡 – 端口转发。做配置。
在这里插入图片描述

命令行添加端口转发的方法

VBoxManage.exe,在VirtualBox安装目录下

创建端口转发规则如下:(powershll中)

 .\VBoxManage.exe  natnetwork modify  --netname NatNetwork  --port-forward-4 "ssh:tcp:[]:20094:[10.0.9.4]:22"
 其中部分参数需按实际情况来修改
  --netname 是nat网卡的名称,VirtualBox--管理(左上角)--网络 中看到的名称
  ssh是端口转发任务的名称
  20094是本地的端口
  10.0.9.4是虚拟机的ip
  22是虚拟机的ssh端口
命令行批量添加端口转发的方法

直接整个端口全添加了,后续创建虚拟机后就可以直接用了。

在gitbash中执行如下命令:(具体网络名称,ip地址根据自己的实际情况修改)

for i in {
    
    001..255}
do
j=`echo $i|sed 's/^0//g' | sed 's/^0//g'`
./VBoxManage.exe  natnetwork modify  --netname NatNetwork  --port-forward-4 "ssh${i}:tcp:[]:20${i}:[10.0.9.${j}]:22"
done

一次性添加了这么多端口转发,怎么删除呢?

答案:直接删网卡,重新建个nat网卡(跟删除的保持名称,网段一致)。

成果展示

通过ssh访问127.0.0.1:20004端口,可正常访问到虚拟机
在这里插入图片描述

业务访问怎么办

比如,要访问某个虚拟机的80端口。

方法1:加仅host访问的网卡,直接用该网卡的ip访问

方法2:添加端口映射

猜你喜欢

转载自blog.csdn.net/sinat_24354307/article/details/123291776