Windows下实现端口映射
想必大家在windows下最常用的虚拟机大多是VMware了,那么是否有想过在连接虚拟机的时候出现的端口映射问题,自己使用的情况下还好,有没有想象过在一个局域网中接受虚拟机的远程连接呢?或者你会说,使用桥接模式不就可以了么!是的,桥接模式是可以解决这个问题的,但是在公司的环境下,这样做会造成ip地址的极大浪费,我们需要一个更好的办法,下面我们来看两种方法:
方法一:
1)使用VMware自带的NAT模式进行映射:
1.打开虚拟机的虚拟网络编辑器
2.选择VMnet8 NAT模式的网卡,点击NAT设置进行编辑:
3.选择添加,进行配置:
4.配置 主机端口(物理机:192.168.1.101:13800)、虚拟机IP地址(192.168.19.128)、虚拟机端口(22) 的对应关系:
配置完成后点击确定进行保存即可。
5. 测试连接,这里使用putty
6.测试效果
可以看见,连接到了19.128的虚拟机上。
要实现以上的功能,需要保证vmnet8这张网卡没有被禁用掉,注意防火墙开放相关的端口。
方法二:
其实在windows系统下,包括xp 2003,2008等,都自带了一个叫做netsh的工具,它自带portproxy的功能。但是只支持tcp协议的端口转发,另外,值得注意的是,作为portproxy的主机需要安装IPV6(必需的),安装后可以不启用IPV6。
1.安装IPV6:
同上面的例子一样,假设我需要通过192.168.1.101的13800号端口连接192.168.19.128的22号端口,则需要在192.168.1.101主机的命令行键入如下命令:
1 |
netsh interface ipv6 install //如果已经安装IPV6,则可以不执行 |
2.设置端口映射关系:
1 2 |
netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=13800 connectaddress=192.168.19.128 connectport=22 netsh interface portproxy add v4tov4 listenport=13800 connectaddress=192.168.19.128 connectport=22 //简单的写法 |
如果windows开启了防火墙,需要设置放行TCP 13800的入站规则。
3.取消现有的端口映射关系:
1 |
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.101 listenport=13800 |
4.查看现有的端口映射关系:
1 |
netsh interface portproxy show v4tov4 // 或者是show all |
今天就写到这里啦,希望对大家有帮助。
内容很好,如果代码显示再简洁一点,就更好