【粉丝问答11】如何实现内网穿透


问题描述

起因:最近公司要做一个4G模块带GNSS(全球导航卫星系统)定位功能的产品,上传传感器数据和设备定位数据到服务器上,我们选择了simcom7600G一个支持全球通的4G模块,首先在阿里云的远程桌面搭建了一个TCP服务器,完成了服务器和4G模块的TCP通信。

但是服务器毕竟是要收费的,于是就想到在自己在电脑上搭建一个本地服务器测试平台,方便与4G模块通过公网进行数据通信。

软件环境:

windows 10

  1. 花生壳内网穿透客户端
  2. SocketTool
  3. 串口调试助手

实现步骤

下面是具体操作步骤,图文并茂:

第一步

先到花生壳的官网下载花生壳内网穿透客户端,链接是,https://hsk.oray.com/download/
【粉丝问答11】如何实现内网穿透
【粉丝问答11】如何实现内网穿透

如上图,点击免费下载。

第二步

如上图我们选择安装到D盘,接下来依次按步骤安装完成,安装完成后,

点击立即进入

【粉丝问答11】如何实现内网穿透

【粉丝问答11】如何实现内网穿透

【粉丝问答11】如何实现内网穿透
点击立即注册会弹出网页:
【粉丝问答11】如何实现内网穿透

填写信息,通过手机获取验证码。选择个人用户,点击注册即可。

【粉丝问答11】如何实现内网穿透

【注意上述注册的域名和后续的截图上的域名有所差异,后续操作以下面的信息为准】

然后登录进入,如下图:
【粉丝问答11】如何实现内网穿透

第三步

如上图所示,这是我已经创建好了的一个TCP测试例程。
【粉丝问答11】如何实现内网穿透

第四步

如上图所示,如果已经创建好了测试例程,则可点编辑可以修改测试具体细节,如果是第一次使用,则点击右下角的+号,进入创建页面:

【粉丝问答11】如何实现内网穿透

第五步

如上图所示,名字随便取,这里我们取名为TCP测试1,应用类型选择TCP,别的可以自己尝试,但是HTTP好像是要收几元认证费用的。

选择不使用模块,外网域名是软件自动生成的,外网端口我们选择随机端口,固定端口要收费的。

内网端口就是你创建的服务器绑定的端口,这里我事先用TCP/UDP socket测试工具在IP地址为192.168.1.112的主机上创建了一个端口为20000的TCP服务器,内网IP地址可通过cmd行工具查看。

【粉丝问答11】如何实现内网穿透

如上图,在命令行输入 ipconfig 显示出本机内网IP地址是 192.168.1.112,将其复制到内网主机方框。然后点击保存,创建完成。

第六步

接下来下载TCP/UDP socket测试工具,下载链接是:http://www.xitongzhijia.net/soft/110847.html
这是一个绿色软件,解压后,直接打开软件。
【粉丝问答11】如何实现内网穿透

第七步

如上图,先选中TCP Server,然后监听端口我们选择20000,然后点击确定,就创建完成,非常简单。
【粉丝问答11】如何实现内网穿透

第八步

如上图在创建完TCP测试的花生壳客户端上点击诊断:

【粉丝问答11】如何实现内网穿透

花生壳做了两件事情:

  1. 将无线路由器的WAN口地址103.46.128.45和域名x3720160v0.wicp.vip进行了绑定
  2. 所有发送给wlan的wan口目的端口号为30854的数据包全部转发给ip地址为192.168.1.112的内网的pc,交给该pc上绑定端口号为20000的进程

第九步

如上图所示:必须要显示连接转发服务器成功和局域网服务器连接成功后,才算真正的可用,如果本地服务器没有搭建好,局域网服务器会显示连接失败。

【粉丝问答11】如何实现内网穿透

第十步

如上图:第一次创建好测试项目,客户端会提示你进入后面网页管理页面,这个更好用,后台管理链接是https://console.hsk.oray.com/forward,

【粉丝问答11】如何实现内网穿透

第十一步

如上图,接连接好simcom7600g 4G模块,打开串口调试助手,波特率选择为115200,具体不同的4G模块会有不同,串口调试助手网上也有很多个,自己选择合适自己的就行.

首先让4G模块注册到基站网络,然后打开4G模块网络,查询分配到的IP地址,接下来就可以创建TCP连接了, 输入AT命令

AT+CIPOPEN=0,"TCP","x3720160v0.wicp.vip",30854

  • 0 表示创建的套接字序号,本模块支持0-9共10个进程。
  • 通信协议选择TCP,
  • 域名选择花生壳生成的免费送的域名,
  • 端口号选择花生壳生成30854,

特别注意端口号不能写自己创建的服务器端口号20000,因为花生壳可能进行了端口重映射的,目的可能是为了安全。

【粉丝问答11】如何实现内网穿透

第十二步

如上图所示,我们先用4G模块给服务器发送1234754321,服务接收正常,接着服务器向4G模块发送ABCDEF,串口助手显示 RECV

FROM:103.46.128.45:30854+IPD6
ABCDEF

至此,测试完成!!

总结

组网环境图

【粉丝问答11】如何实现内网穿透

如上图所示,详细访问步骤:

  1. 4G模块通过AT指令,访问域名x3720160v0.wicp.vip,目的端口号是30854
  2. DDNS这个协议会将该域名对应的IP地址102.46.128.45返回给该4G模块,4G模块就可以访问到家里的无线路由器的wan口
  3. 4G模块发送的所有的数据包最终会到达家用无线路由器
  4. 无线路由器会把目的端口号是30854的所有数据包转发给内网IP地址为192.168.1.112这个pc的绑定了20000端口号的进程
  5. 于是TCP/UDP Socket测试工具就会收到4G模块发送的数据
上一篇:海思Hi3516EV300开发板防雷防静电图


下一篇:苹果x用了2年了,当前4G信号时有时无,大家有遇到过么?