一 背景描述
1.1 需求描述
B机器windows10 的机器ip为: 172.16.71.13 在其上的虚拟机中安装了mysql,虚拟机的ip为
192.168.152.141 。
A机器的ip为:172.16.71.14 ;
需求: A机器想访问 B机器172.16.71.13 这台机器的虚拟机中mysql,该怎么实现呢?
二 解决办法
2.1 关闭win10的防火墙
1.控制面板->系统和安全->Windows Defender防火墙->启用或关闭Windows Defender防火墙->
2.2 虚拟网络和真实网络之间绑定
1.需要保证电脑A能连接电脑B,在物理网络 bonc-wifi上选择虚拟网络8进行绑定
2.3 端口转发的配置
1.选择NAT
2.端口转发的配置
1)主机端口:即网络中其它机器访问此物理机的端口。可以任意设置为9999,此端口是对外提供转发功能的端口。
2)虚拟机IP地址:也就是NAT模式下,分配给虚拟机的IP地址,这里是192.168.152.141。
3)虚拟机端口:是虚拟机设置的供外部访问的端口,默认为22。
在主机A中通过Xshell连接主机B中的虚拟机。B的机器为:172.16.71.13,端口号为9999,也就是在刚才NAT设置里面设置的端口号,此端口是对外提供转发功能的端口。
通过主机B的IP和9999端口,访问到NAT设置的虚拟网卡,然后NAT对该请求进行转发到IP为192.168.152.141(虚拟机ip),端口22进行处理。
192.168.152.141:22 为NAT模式下的真实虚拟机的IP和端口。
2.4 方式1:通过navicate进行连接
需要在机器A:172.16.71.14 上通过navicate插件进行连接机器B 172.16.71.13
2.4.1 配置ssh协议的连接
新建连接,选择SSH,然后勾选使用SSH通道
,然后输入要远程连接的地址(即主机B的ip地址)
,端口为NAT中设置的端口号, 继续输入登陆linux系统的账号
和密码(
root/root-123)
,这一步相当于远程连接虚拟机中的linux系统。
2.4.2 配置常规连接
这里填写主机B中虚拟机的ip地址,填写登陆mysql的账号和密码,这一步相当于登陆mysql数据库。canal/boc123
测试结果:
3.新建数据库,数据表
1)新建库:zs
2) 新建表:new_table
2.5 方式2:通过命令行进行连接
1.通过cmd命令行进行连接,开启ssh隧道
其中ssh的语法是这样的:
ssh -fN -L(要绑定到的本地端口):(服务器B虚拟主机的Host):(服务器B虚拟主机上要访问的数据库端口号) -p(服务器B的转发的端口,默认为22) (服务器B的账户):(服务器B的Host)
ssh -fN -L3307:192.168.152.141:3306 -p9999 root@172.16.71.13
2.登录访问
再新启一个cmd窗口
mysql -h 127.0.0.1 -P 3307 -ucanal -pboc123