使用内网穿透工具NATAPP实现TCP通信

一、背景

通过使用python写的客户端和服务端,它们之间实现通信功能。首先是在自己电脑pycharm上写一个客户端、一个服务端,然后在自己电脑上(本地)进行测试(交流通信),紧接着想实现两台电脑之间的通信(同一局域网、所有人),这就需要用到内网穿透了。而使用内网穿透有两种方式:一是通过第三方内网穿透工具,二是自己使用自己服务器搭建内网穿透工具。

二、使用教程

内网穿透原理:将本地ip映射到公网ip上,从而实现公共网络上的用户能访问到本地的ip(主机)
注:先大概介绍几个内网穿透工具的优缺点,Ngrok现在实名收费可以有免费通道使用,它可以绑定自己的域名是比较好的。natapp可以免费使用两个通道,不能免费绑定自己的域名,需要实名认证,有一定局限性。花生壳不能使用web功能,可以使用TCP/UDP协议、远程控制等,免费通道。
这里使用NATAPP工具、Windows为例

  1. 注册账号:https://natapp.cn/register
    使用内网穿透工具NATAPP实现TCP通信_第1张图片

  2. 登录账号:https://natapp.cn/login
    使用内网穿透工具NATAPP实现TCP通信_第2张图片

  3. 进入实名认证界面进行实名认证,这是必须实名认证后才能使用的
    使用内网穿透工具NATAPP实现TCP通信_第3张图片

  4. 购买隧道 --> 免费隧道
    使用内网穿透工具NATAPP实现TCP通信_第4张图片

  5. 选择你需要的类型 设置端口
    有三种类型
    使用内网穿透工具NATAPP实现TCP通信_第5张图片
    选择需要的一种即可,注意只有免费的两条通道慎重选择。
    使用内网穿透工具NATAPP实现TCP通信_第6张图片

  6. 下载客户端 —> 解压至任意目录,得到natapp.exe
    注意:在natapp.exe同级目录下,创建config.ini文件,粘贴一下代码修改authtoken即可

#将本文件放置于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 非代理上网用户请务必留空

如图所示:
使用内网穿透工具NATAPP实现TCP通信_第7张图片

  1. 取得authtoken
  2. 在网站后台,我的隧道处,可以看到刚才购买的隧道
  3. 运行natapp
    这些都可以根据官方文档来操作,具体教程可以推荐看这篇 NATAPP使用教程

三、总结

使用内网穿透的工具的方式都是相似的,主要需要知道它的功能,了解它的原理。自己也可以尝试搭建内网穿透工具,说不定什么时候就用到了呢。还有注意事项,隧道协议的选择,想访问静态资源就使用Web,想进行通信可以使用TCP。在测试的时候可能开始跑不通,这就需要多试几次了。

附件

NATAPP官网: https://natapp.cn/
NATAPP配置教程:https://natapp.cn/article/natapp_newbie
NATAPP中客户端config.ini配置:https://natapp.cn/article/config_ini
推荐几款实现内网穿透的实用工具:https://blog.csdn.net/m0_46991388/article/details/117084209

你可能感兴趣的:(Java,tcp/ip,网络,网络协议)