将Hyper-V虚拟机内MySQL数据库3306端口暴露在局域网中
起因
需要将自己的数据库共享给局域网内他人使用,但是自己的数据库装在Hyper-V的虚拟机内,只能在虚拟交换机内的主机上访问
解决方案
虚拟机网络环境配置见此
本机在虚拟交换机中的IP地址为10.10.0.1
,虚拟机在虚拟交换机中的IP地址为10.10.0.100
,本机在局域网内的IP地址为192.168.14.77
先添加NAT映射
Add-NetNatStaticMapping -NatName "vNAT" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 10.10.0.100 -InternalPort 3306 -ExternalPort 3306
将虚拟机10.10.0.100
的3306端口映射到本机的10.10.0.1
的3306端口
再添加本机的端口代理
netsh interface portproxy add v4tov4 listenport=3306 listenaddress=192.168.14.77 connectaddress=10.10.0.100 connectport=3306
将本机在虚拟交换机中的10.10.0.1
的3306端口映射到本机在局域网中的192.168.14.77
的3306端口
用同局域网内的其他设备连接192.168.14.77:3306
便可以成功连接到虚拟机内的数据库
PS:可以在使用完后用以下命令删除相关配置
netsh interface portproxy delete v4tov4 listenaddress=192.168.14.77 listenport=3306
Remove-NetNatStaticMapping
参考
https://www.christchen.top/archives/porttunnel
https://wbuntu.com/hyper-v-vm-port-expose/
https://docs.microsoft.com/en-us/powershell/module/netnat/?view=windowsserver2019-ps
#Mysql(4)#虚拟机(2)#Hyper-V(2)文章作者:LonelyMan
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论