[TOC] #### 1. 前言 --- natapp 官网:<https://natapp.cn> 我的邀请码:6B4B762E(购买隧道时使用该邀请码可享九折优惠) natapp 是基于 ngrok 的国内高速内网映射工具,也就是内网穿透工具 内网穿透:简单来说就是将内网外网通过 natapp 隧道打通,让内网的数据可以通过外网访问 作为程序员,我使用 natapp 的最多场景是:本地项目演示、微信本地开发调试(公众号网页授权登录、支付回调) #### 2. 下载 --- Windows 和 Mac 客户端下载后都是一个压缩包 Windows 的压缩包中只有一个 natapp.exe 文件,Mac 压缩包中只有一个 natapp 文件  #### 3. 运行 --- 1分钟快速新手图文教程:<https://natapp.cn/article/natapp_newbie> natapp 支持两种运行方式:config.ini、终端命令参数 ##### config.ini 在 natapp(Mac) 或 natapp.exe(Windows) 同级目录创建 config.ini 文件,文件内容如下所示 ```bash #将本文件放置于 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 非代理上网用户请务必留空 ``` 在 Mac 和 Linux 中,需要给 natapp 执行权限,执行以下命令即可。【Windows 跳过这一步】 ``` chmod a+x natapp ``` Mac OS 运行以下命令 ``` ./natapp ``` Windows 运行以下命令或双击 natapp.exe 文件都可以 使用技巧:因为直接双击 natapp.exe 文件就可以启动 natapp,所以可将 natapp 放在某个盘符中,创建 natapp.exe 文件的快捷方式到桌面,在桌面双击运行即可 ``` natapp ``` ##### 终端命令参数 Mac OS 同样给予可执行权限后,然后再运行 natapp 命令 ```bash # 给予可执行权限 chmod a+x natapp # 运行 natapp ./natapp -authtoken=xxxx ``` Windows 终端进入 natapp.exe 目录,执行以下命令 ```bash natapp -authtoken=xxxx ``` #### 4. 多开 --- 普通多开:打开多个终端窗口,每个终端窗口开始一个隧道,Mac、Windows 都适用 弊端:每次都要运行多个窗口,还要手动复制多个 authtoken,这种方式有点麻烦,继续往下看,有更好的方案 ```bash # 隧道1 natapp -authtoken=xxxx # 隧道2 natapp -authtoken=xxxx ``` Windows 可以创建 bat 文件实现多开,文件内容如下所示 将 bat 文件放于 natapp.exe 同级目录,双击运行 bat 文件即可实现同时打开多个 natapp ```bash start natapp -authtoken=xxxx start natapp -authtoken=xxxx ``` 在 Mac 系统中,可通过 Shell 脚本实现单条命令多开 natapp 隧道 单命令多开方案: + 通过 `&` 符号实现后台并行运行多个隧道 + 自动生成可执行脚本,后续只需运行该脚本即可实现一键多开 ```bash # 创建并运行多开脚本 echo './natapp -authtoken=xxx &\n./natapp -authtoken=xxx &' > natapp.sh # 可执行权限 chmod +x natapp.sh # 运行脚本,开启多个隧道 ./natapp.sh ``` 关闭隧道 ```bash # 查看 natapp 进程 ps -ef | grep natapp # 结束指定隧道的进程,即可关闭隧道 kill -9 PID ```