本文介绍了一项关于金蝶软件客户端使用外网地址直连服务器的技术实验。实验发现V14.0版本成功连接,而V15.0版本失败。原因是V15.0在连接过程中使用了临时端口,导致外网映射无法成功。实验还对比了直接连接与远程软件在本质上的区别,并分析了端口占用情况。
本次实验纯粹是为了技术研究,并不具有很大实际可操作的价值。
本次实验对象分为专业版V14.0 、 V15.0
本次实验目的:异地金蝶软件客户端使用外网地址直连金蝶软件服务器。
本次实验的原理:金蝶软件验证注册信息是通过TCP端口通讯来实现的,因此金蝶软件连接的关键点就是端口号。我们一般都是通过局域网访问,局域网内默认是端口开放的(端口号从0-65535),所以局域网内是不需要端口映射的。但是使用客户端在外网直接访问,就需要在路由器里面开放端口了。 端口介绍:https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3%E5%8F%B7/10883658?fr=aladdin
本次实验与使用远程软件本质的区别:
本次实验的本质是使用金蝶软件客户端直接连接服务器端,这个方式需要在远程操作端也安装金蝶客户端程序,并且读写的是真实的数据,因此以前的14.0使用这种方式能连接,但是也会非常慢(受网络速度限制)
远程软件的本质是将服务器上界面投影到客户机上,客户机也不需要安装金蝶软件客户端程序,用户所操作的实质上都是像素点,远程程序通过把鼠标位置、键盘的操作等传递到服务器上,服务器上的远程软件再将这些操作进行转换,即得到了与在本地操作一致的体验。
因此,两者是有本质的区别的。
本次实验结果:V14.0=成功 V15.0=失败
以下为实验过程:
1.实验准备:安装有金蝶软件KIS专业版V14.0、V15.0的电脑各一台(同时安装了客户端和服务器),路由器及管理员用户密码,外网需是公网IP
2.路由器端口映射:通过金蝶官方渠道获知金蝶专业版V14.0所必须端口为1433,6988 V15.0为1433 、6987、10002
3.查找外网IP或使用域名解析软件,我使用的域名解析软件,域名为:szKingdee.nat123.cc (域名也会解析为对应的IP地址,所以两者是一个东东)
4.开始连接,在登录界面的服务器处输入服务器外网IP或域名 ,然后回车,就能看到效果了。14.0可以出现帐套并登录 , 15.0会提示:服务器不是有效的。即失败。
5.由上可知,14.0可以使用外网IP直接登录金蝶软件,15.0则不支持。
到此,本次实验是不是该结束了呢,不,作为一个研究技术的,我们应该知道为什么一个可以一个不可以。
接下来准备一个工具:360安全卫士(这些其实都是些流氓软件,大家自己喜欢用哪个都行) 使用这个工具主要用来动态监控端口的占用情况。
具体使用的工具: 功能大全 - 网络优化 - 流量防火墙 - 网络连接
打开这个工具后,可以看到当前电脑所有在运行的进行,及所占用的端口。
然后重新使用域名登录金蝶,这个时候可以看到工具中,出现了多个金蝶的系统管理及客户端记录。实际上是一个程序占用了多个端口。
如图:
上图中,各列说明:1=进程名 2=是否安全 3=使用协议 4=本地地址 5=本地端口 6=连接地址 7=连接端口
系统管理进程所在的第一行,连接地址为0.0.0.0 说明是个侦听端口,本地端口为6987 ,这个与金蝶官方提供的一致。第二行,可以看到连接地址为一个公网IP,通过路由器查看到正是我目前的公网IP。留意下连接的端口:12721.
再看客户端进程,有四行,第一行,连接地址为0.0.0.0 说明是个侦听端口,所占用的端口为59886 (一般端口大于10000的都是临时占用端口),然后下面三行的连接地址处,均为系统管理所在公网IP地址,然后端口也正好是金蝶官方提供的端口,然后还看到一个本地端口:12721,正好跟上面系统管理的连接端口:12721一致。由此怀疑,是否12721是否为一个固定的端口(因为一般端口大于10000的都是临时占用端口)。
为了验证12721是否为动态端口,我们再连接一次服务器,会发现端口监控处又会多出新的记录。我们就大概断定,这个是个临时端口。为了彻底死心,我们在路由器里面也开放12721这个端口。再连接服务器,依旧报错。由此断定,这个是个临时的端口。也正是这个临时端口的原因,导致了金蝶软件15.0通过外网IP无法正常访问,因为动态端口无法映射。
推荐阅读