如何实现内网穿透?

本文最后更新于:几秒前

微信/手机APP本地开发调试
穿透防火墙
快速项目DEMO演示TCP/UDP转发,连接能想象的一切

image-20241105180748137

1. 注册并获取 Token

  1. 访问 natapp 官网: https://natapp.cn
  2. 注册并登录账户。
  3. 登录后,在个人中心页面获取 Token,这是你使用 natapp 客户端时需要用到的认证信息。

2. 下载并安装 natapp 客户端

  1. 根据你的操作系统下载 natapp 客户端:
    • Windows: 下载 .exe 安装包
    • macOS: 下载 .tar.gz 压缩包
    • Linux: 下载对应的 .tar.gz.deb
  2. 解压并安装客户端:
    • Windows 用户:解压后可以直接在命令行中使用 natapp.exe
    • Linux/macOS 用户:解压后进入解压目录并将客户端放到系统的可执行路径下(如 /usr/local/bin/)。

3. 配置 natapp 客户端

  1. 将下载的客户端文件解压并进入该目录。

  2. 在命令行中执行以下命令来启动 natapp 客户端:

    1
    ./natapp -authtoken=<Your-Token>

    其中 <Your-Token> 是在第一步中获取的 Token。这个命令启动了 natapp 客户端并连接到 natapp 服务器。

  3. 如果你需要指定本地端口进行内网穿透,可以在命令中加上 -localip-localport 参数:

    1
    ./natapp -authtoken=<Your-Token> -localip=127.0.0.1 -localport=8080

    其中,-localip 是你本地服务的 IP 地址(通常是 127.0.0.1),-localport 是你本地服务的端口号(如 8080)。

4. 配置协议和隧道类型

方式1

个人中心直接编辑配置 我的隧道

方式2:

  1. HTTP 或 HTTPS 隧道:如果你的本地服务是一个 Web 应用,可以通过 HTTP 或 HTTPS 协议映射到公网。命令如下:

    1
    ./natapp -authtoken=<Your-Token> -localport=8080 -http

    这样会将你本地的 8080 端口映射为公网的 HTTP 地址。

  2. TCP 隧道:如果你需要穿透的是一个 TCP 服务(例如 MySQL 或其他网络服务),可以使用 TCP 隧道:

    1
    ./natapp -authtoken=<Your-Token> -localport=3306 -tcp

    这会将你本地的 3306 端口映射到公网,适用于数据库等 TCP 协议服务。

  3. 自定义域名:如果你在 natapp 中购买了域名服务,可以使用自定义域名进行访问:

    1
    ./natapp -authtoken=<Your-Token> -localport=8080 -http -subdomain=your-subdomain

    这会将本地 8080 端口映射到 your-subdomain.natapp.cn,并且每次启动时使用相同的子域名。

5. 查看公网地址

启动 natapp 客户端后,你会看到类似以下的输出:

image-20241105180941089

6. 高级配置

  • 多端口映射:如果需要同时映射多个端口,可以在命令行中使用多个 -localport 配置:

    1
    ./natapp -authtoken=<Your-Token> -localport=8080 -localport=3306 -http -tcp
  • 配置文件:如果不想每次都输入长命令,可以通过配置文件来简化启动过程。将 authtoken 和其他参数写入配置文件 config.ini,然后直接执行:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #将本文件放置于natapp同级目录 程序将读取 [default] 段
    #在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
    #命令行参数 -config= 可以指定任意config.ini文件
    [default]
    authtoken=e3fd8 #对应一条隧道的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 非代理上网用户请务必留空

7. 监控和管理

natapp 提供了 Web 控制台,可以通过登录官网进行隧道管理和状态监控。在控制台中,你可以查看活动隧道、访问日志以及控制隧道的开启或关闭。

访问隧道指定的端口号即可~

image-20241105181342178

8. 停止使用 natapp

如果不再需要内网穿透服务,只需要在客户端的命令行中按 Ctrl + C 停止客户端进程,或通过任务管理器结束进程。


如何实现内网穿透?
https://yan-sheng-li.github.io/blog/posts/26131.html
作者
李延胜
发布于
2024年11月5日
许可协议