解决方案:使用Windows自带的netsh映射解决,下面详细解释一下netsh的常用指令用法。
netsh interface portproxy add v4tov4 listenaddress=监听IP listenport=监听端口 connectport=目标端口 connectaddress=目标IP
假设我的Hyper-V虚拟机内网IP是192.168.137.101,需要远程连接桌面,默认端口为3389。那么powershell使用指令 netsh interface portproxy add v4tov4 listenport=10001 connectport=3389 connectaddress=192.168.137.101
即可使用外网10001端口进行访问。
提示:监听IP如果不输入默认为“*”,也就是本地IP。
netsh interface portproxy delete v4tov4 listenaddress=监听IP listenport=监听端口
如果我要删除上述所添加的外网连接端口为10001的远程端口映射,那么使用powershell执行指令 netsh interface portproxy delete v4tov4 listenport=10001
即可删除。
提示:监听IP如果不输入默认为“*”,也就是本地IP。
netsh interface portproxy show all
如果只想看v4tov4的列表:
netsh interface portproxy show v4tov4
一开始其实也接触过netsh,但是最主要的问题就是分不清监听和连接哪个是映射方哪个是被映射方,最近才搞明白,所以才写下来这篇文章,避免自己忘掉。。listen属于映射方,也就是主机,connect属于被映射方,一般都是虚拟机。