需求:
想使用 电脑A (本机)连接 电脑B(宿主机) 中的虚拟机有两种方式 (电脑A和B必须在同一网络环境下)。
- 方式一:通过配置windows防火墙中的入站规则,以开放端口的形式访问。缺点:在电脑A中无法配置电脑B中虚拟机的域名映射。
- 方式二:通过更改虚拟机的网络连接模式,并且要修改虚拟机的IP地址,网段要和主机的网段保持一致。缺点:存在IP冲突的风险。
本文采用方式一。
原理:
在NAT模式下,虚拟机 只能跟 宿主机 进行通信,所以如果我的本机需要访问这个虚拟机,需要通过宿主机(windows)的转发端口来访问 虚拟机。
即设置宿主机的端口映射到虚拟机的端口上,本机通过连接宿主机的转发端口,实现连接虚拟机的效果。
一、在宿主机配置虚拟机
1、虚拟机 ==》 编辑 ==》虚拟网络编辑器 ==> 更改设置 ==> NAT设置 ==> 添加映射传入端口
说明:
- 主机端口: 配置在宿主机中开放的对应端口,需要确保端口不冲突;
- 虚拟机IP地址: 宿主机的虚拟机IP地址;
- 虚拟机端口: 虚拟机中服务对应的端口。比如,虚拟机中mysql服务的端口号为3306;
以连接电脑B中的虚拟机中的MySQL为例,主机端口和虚拟机端口都设置为3306。修改完完之后,记得点击“确认”两次。
二、设置宿主机防火墙
搜索控制面板 – Windows防火墙 --> 高级设置 --> 入站规则 --> 新建规则 --> 端口 --> 下一步 --> 特定本地端口 --> 填写端口号。一直下一步保存就可以了
注意:
特定本地端口号:要和NET编辑中的“主机端口”的配置一样。比如之前设置的连接Mysql的本机端口号为3306,这里也设置为3306。
之后一直点击下一步,保存即可。
三、连接另外一台电脑的虚拟机
在本机中连接服务填写ip地址时。主机ip填写的是宿主机(电脑B)的ip 地址,而不是虚拟机ip。服务连接的用户名和密码是虚拟机的用户名/密码。
查看电脑B(windows)的ip地址
代码语言:javascript复制ipcongfig
以在电脑A(Mac)中连接Mysql为例,其他连接类似。
注意:
如果是运行项目,项目中的ip地址需要修改,比如之前使用的是虚拟机IP地址:192.168.150.101,需要修改为宿主机(电脑B)的ip地址:192.168.0.118。
邀请人:“Michel_Rolle”
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!