内网穿透实现4G通信测试
??此文章记录及分享在学习或工程中缺少正式应用服务器来进行4G通信测试方法,例如测试4G模块、DTU等设备。 ??首先分析正常应用环境下,我们需要利用4G通信功能来向云端服务器传输数据包,或者我们其实需要保证的是我方通信模块能正确发送数据包,服务器端需要确认能收到通信模块发送的数据包,至于解析及后续操作步骤与本部分无关。
一.简介
??内网穿透,即NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。而NAT是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。 ??此部分内容摘抄自 百度百科,勿喷,我非专业方向,仅仅在应用层角度去分享此方法。
二. 准备
??由于我是使用DTU进行测试,因此将就DTU实现方法进行阐述,了解原理后方法仍适用于4G模块等硬件。 1.通信模块 ??DTU、4G模块、WIFI模块等。 2.串口调试助手 ??用于通过USB转232/485模块,配置DTU参数,这个取决于你的通信配置方式如何,自行斟酌。 3.花生壳服务器 ??本质上我们是利用花生壳提供的免费服务器进行通信测试,只不过这个服务器资源比较有限,我们也没有必要去就着这个服务器进行开发,就可以使用内网穿透,将服务器接收到的数据转发至PC。 4.网络调试助手 ??用于接收花生壳服务器转发数据,串口调试助手大家肯定都有,部分小伙伴可能没有这个,可以去github或gitee上拉,这里我也分享一个,蓝奏云地址,密码:1234。
三.实现步骤
(1)原理
??本质上搭建模拟环境,由PC模拟数据发送(可用网络调试助手也可以直接上模块,目的是实现数据上传至云服务器),借助花生壳平台免费的资源(域名及它的服务器)模拟本项目云服务器,通过内网穿透模拟云服务器的数据访问接口或通道。这样,就可以搭建回环测试环境,以测试如通信模块是否正常、SIM卡是否可用这样的情况。
(2)开始实现
① 注册花生壳账号,每个账号都可以申请一个免费域名(这个域名不好,但是对于个人及小数据测试足够)。 ② 在管理平台中,进入内网穿透,还有你的域名列表,点进去就可以看到你之前申请的免费域名,点击下图“新增映射” ③ 按照下图进行操作,映射类型是都免费,Socks5暂时用不了,但是里面东西有的是要加钱的,外网域名这儿会自动弹出来(就是你自己申请的免费域名,这个域名是不会变的,变得是你操作的端口号,后边会提到),内网主机输入自己当前电脑IP地址,内网端口看你自己电脑有没有被占用,找一个空闲处于监听状态的就可以了(方法见下一步)。 ④ win+R左下角输入框输入cmd,弹出黑框中输入ipconfig,就可以看到自己的IP地址,花生壳上输入IPV4,IPV6都可以,如下图所示: ⑤ 如何获取PC当前端口使用情况,在cmd界面输入netstat -an可以查看当前PC端口使用情况,当然如果没有开启telnet服务是看不了的,这里不赘述,去搜开启telnet服务。找空闲的,处于监听状态的端口。 ⑥ 回到内网穿透界面,确认相关参数是否一致,1处是当前PC的IP地址与占用端口号,用于与花生壳服务器进行通信,2处是花生壳自动分配端口,相当于暴露接口给数据转发模块。 ⑧ 点击应用左下角的诊断,进行联通测试,联通了证明PC与花生壳服务器已经联通,现在暴露给外面的只有花生壳的域名、IP、端口,从这进去的数据我们都可以通过PC上的网络调试助手看到。需要注意的是:我们新建的映射开关不会有影响,但是删除重建,花生壳会重新分配暴露端口。
⑨ 可能出现的问题,在网页界面诊断时候出现连接失败,如果在帮助里面没有解决办法去你win10安装的客户端上看,这里会有详细的,比如下面这个 这个按照流程走就是了,这个一般就是你填的端口被占用了,我们需要用telnet这个服务来测试网通,然后再balabala(命令是:telnet IP 端口号)。
到这里,内网映射完成,下面进行测试
??我们可以先用两个网络调试助手来模拟这个回环测试过程: ??一个配置为客户端,连接至花生壳暴露IP、端口,这样相当于下图左侧模拟DTU等数据转发模块,通过花生壳暴露IP、端口建立TCP通信连接至花生壳服务器,将数据发送至此; ??一个配置为服务器,协议类型选择TCP Server,IP地址、端口号都是填PC本地的,如果没问题,点击连接是可以正常启动的,如果有问题,有提示。下图右侧即是通过内网IP、端口建立该服务器端与花生壳的通信。 ??本质上,左边的发送数据,通过花生壳的平台,服务器-客户端转化后将数据转发至右边的服务器。 ??通信联通后,关闭左侧客户端,到这一步我们已经确定花生壳服务器的可用性以及内网穿透的正确性,余下就是测试通信模块,保证将数据发送至指定IP地址和端口即可。
四.问题
??若两个网络调试助手测试花生壳内网穿透没有问题,但是接上通信模块无数据,以下几个点可以参考一下,有可能有影响因素: (1)配置问题 ??检查通信模块配置参数,确保数据是向花生壳映射公网IP、端口发送的。 (2)连线问题 ??可千万别在这个位置翻车奥。 (3)SIM卡问题 ??若是物联网卡,可以先拿一张自己的卡或能保证联网,有流量的卡测试,有的时候物联网卡会因为锁卡啊等原因导致不可用。 (4)更换调试助手 ??这部分就是你能很明显的感觉或者你超级怀疑是调试工具的问题,就要及时更换,排除变量法嘛,其他的没问题,现在有问题就给你换了看看。上面分享的网络调试助手还是可以的,顶起的。(这部分包含硬件、软件哈) (5)网络配置问题 ??禁用除了你使用的网络外其他网络连接,如虚拟机、WIFI等。禁用后再次尝试,此方法与(4)可能会有关联,但是也不排除有这种情况,而我就经历过这个。
??希望这篇文章对大家有所帮助,欢迎大佬们批评指正!
|