使用内网穿透工具NATAPP实现TCP通信
一、背景
通过使用python写的客户端和服务端,它们之间实现通信功能。首先是在自己电脑pycharm上写一个客户端、一个服务端,然后在自己电脑上(本地)进行测试(交流通信),紧接着想实现两台电脑之间的通信(同一局域网、所有人),这就需要用到内网穿透了。而使用内网穿透有两种方式:一是通过第三方内网穿透工具,二是自己使用自己服务器搭建内网穿透工具。
二、使用教程
内网穿透原理:将本地ip映射到公网ip上,从而实现公共网络上的用户能访问到本地的ip(主机)
注:先大概介绍几个内网穿透工具的优缺点,Ngrok现在实名收费可以有免费通道使用,它可以绑定自己的域名是比较好的。natapp可以免费使用两个通道,不能免费绑定自己的域名,需要实名认证,有一定局限性。花生壳不能使用web功能,可以使用TCP/UDP协议、远程控制等,免费通道。
这里使用NATAPP工具、Windows为例
-
注册账号:https://natapp.cn/register
-
登录账号:https://natapp.cn/login
-
进入实名认证界面进行实名认证,这是必须实名认证后才能使用的
-
购买隧道 --> 免费隧道
-
选择你需要的类型 设置端口
有三种类型
选择需要的一种即可,注意只有免费的两条通道慎重选择。
-
下载客户端 —> 解压至任意目录,得到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 非代理上网用户请务必留空
如图所示:
- 取得authtoken
- 在网站后台,我的隧道处,可以看到刚才购买的隧道
- 运行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
本文来自博客园,作者:所遇所思,转载请注明原文链接:https://www.cnblogs.com/mynxg/p/17989313