【技术备忘录】广和通ADP-L610-Arduino模块实现基于内网穿透的TCP通信

前言

​ 在使用ADP-L610开发板进行开发过程中,如果需要使用TCP通信,那么往往需要本地机器具有公网IP或者是准备一台具有公网IP的云服务器(或者VPS),这往往是需要成本的。现在公网IPv4地址资源紧张,个人宽带或是校园网内取得公网IP是很难的;购买云服务器进行配置不仅需要收费,而且也需要一定的精力。现在,我们有了新的解决方案——利用内网穿透软件NATAPP,来解决没有公网IP条件下TCP通信调试的问题。

工具与材料

1. 广和通ADP-L610-Arduino开发板

2. NATAPP账号

3. NATAPP客户端

4. SSCOM 串口/网络数据调试器V5.13.1

5. 广和通 TCP/UDP Server V1.0.9

内网穿透原理简介

​ 由于现阶段IPv4地址池的枯竭,越来越多的设备使用局域网接入互联网,这就带来了一个问题:处在异地的设备之间存在多层网关设备进行间隔,不同的设备属于不同的子网,互相之间无法直接通信,因为对于一个接入互联网的设备来说,它获得的数据帧中的源IP只是其上层网关的地址,这个IP并不指向发送这个数据帧的原设备,仅仅通过它是无法给原设备回信的。比如我们利用无线路由器上网,接入WLAN的设备IP地址是192.168.x.x的C类地址,而互联网上是没有这个C类地址对应的设备的,没有接入你的WLAN内网的设备是无法直接访问你的设备的。ADP-L610模块利用LTE数据拨号上网,也即我们常说的4G,它本身获得的IP地址也是10开头的运营商内网地址,所以通过L610模块与电脑进行TCP通信属于外网访问,无法直接访问我们自己处于WLAN内网的电脑。而内网穿透就是利用第三方IDC具有固定公网IP地址的服务器做一个中转站,在互联网上打通一条点对点的专用隧道用来转发数据,从而使得处于不同子网之间的设备进行直接通信成为可能。需要注意的是,这里两个设备之间的通信仍然是走原来的物理通路,只是它们互相之间做好了一个约定,通过一个共同的可以直接访问到的有公网IP的服务器来进行数据交换,数据交换的物理通路并没有发生变化。
在这里插入图片描述

简单设备拓扑与内网穿透服务器关系图

操作步骤

  1. 进入NATAPP官网http://natapp.cn/。

  2. 点击右上角注册账号并登录。
    在这里插入图片描述

  3. 完成实名认证
    在这里插入图片描述

  4. 购买免费隧道(注意事项已经在图上标注)
    在这里插入图片描述

  5. 查看隧道信息
    在这里插入图片描述

    ​ 然后点击右侧“配置”按钮进入隧道配置页面,配置隧道如下(主要就是本地地址的修改):
    在这里插入图片描述
    修改完成后点击页面下方的“修改”按钮保存修改即可。

  6. 下载客户端
    在这里插入图片描述

  7. 客户端配置

    ​ 在下载解压后的客户端同文件夹下,用记事本新建一个config.ini文件,内容格式如下(“#”号后的为注释):

#将本文件放置于natapp同级目录 程序将读取 [default] 段

\#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置

\#命令行参数 -config= 可以指定任意config.ini文件

[default]

authtoken=           #对应一条隧道的authtoken

clienttoken=          #对应客户端的clienttoken,将会忽略authtoken,若无请留空,

log=none            #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none

loglevel=ERROR         #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG

http_proxy=           #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

然后按照自己的隧道authtoken,将其复制填入“authtoken=”一行后,等号后有没有空格是无影响的。保存并退出。

  1. 这里以Windows系统为例,双击运行natapp.exe,等待内网穿透启动如下图:
    在这里插入图片描述

​ 图中高亮选中部分即为内网穿透启动后分配给我们的公网服务器的域名和端口号。域名是不会变化的,但是每次启动内网穿透,冒号后的端口号都会发生变化,因此每次调试都需要我们改变SSCOM中连接的端口号。

  1. 将ADP-L610开发板连接电脑,打开广和通 TCP/UDP Server V1.0.9,然后按照刚才的配 置填写“本地主机”和“端口”:
    在这里插入图片描述

  2. 打开SSCOM,修改配置如下图:
    在这里插入图片描述

  3. 点击“连接服务器”,即可看到连接成功,TCP Server中出现了客户端:
    在这里插入图片描述

  4. 接下来就可以通过TCP通信任意发送数据进行通信了。
    在这里插入图片描述

总结

​使用NATAPP提供的免费内网穿透可以解决没有公网IP条件下的TCP通信调试问题。它提供的服务是免费的,但是有速率上限为1Mbps的限制。需要注意的是,由于是免费服务,所以每次重新开启NATAPP客户端时,分配到的端口号一般都会发生变化的,所以我们每次进行TCP通信调试的时候都需要确认TCP服务器的端口号。如果NATAPP客户端不关闭,则其分配的端口号不会改变。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值