将Hyper-V虚拟机内MySQL数据库3306端口暴露在局域网中

/ LonelyMan / 2阅读 / 0评论 / 分类: 笔记

起因

需要将自己的数据库共享给局域网内他人使用,但是自己的数据库装在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

文章链接:https://blog.lonelyman.site//archives/jiang-hyper-vxu-ni-ji-nei-mysqlshu-ju-ku-3306duan-kou-bao-lu-zai-ju-yu-wang-zhong

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论