测试环境:
宿主机:Windows Server 2003 R2 Enterprise X64 Edition

虚拟机:VM10.0.2 ,装的CentOS7.4

需求背景:
宿主机系统更换麻烦,把外部请求从宿主机转发到虚拟机内的linux处理,宿主机开放端口8080,linux开放端口80,linux的ip为192.168.150.128

实现方式:
     实现的方法有以下几种:

用软件实现
                 比如经常使用的Porttunnel,还有其他类似的tcpmapping

使用windows自带的netsh
               基本命令如下:

查看所有已有的端口映射:
netsh interface portproxy show all

创建新的端口映射关系:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8080 connectaddress=192.168.150.128 connectport=80
  /这里是把本机8080的端口数据转发到192.168.150.128的80端口上去/

删除已有的端口映射关系:
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=8080

使用虚拟机配置实现
        1.在vm虚拟机菜单上点击“编辑”菜单,选择“虚拟网络编辑器”

2.在弹出窗口左上方选择“VMnet8”,然后在右边选择“NAT设置”

3.在弹出的“NAT设置”窗,中间位置点击“添加”按钮

4.在弹出的“映射传入端口”窗,按要求填入信息

这里的配置是把宿主机8080的端口数据转发到虚拟机内的linux系统192.168.150.128的80端口

小结
       通过对服务器的压测发现,在100用户并发下,通过端口映射后都会有错误率,直接在宿主机内通过linux的80端口压测则没有错误。其中用软件实现的方式的错误率最高,在60%上下,netsh次之,在30%上下;通过虚拟机配置的最好,错误率15%上下。

为什么会出现该情况,原因未查到。
————————————————
版权声明:本文为CSDN博主「vzdong1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/vzdong1/article/details/83031007