利用STUN+NAT1配合重定向实现无公网的免中转内网穿透

STUN穿透原理

背景介绍

随着运营商逐步回收家庭宽带的公网IPv4地址,传统基于公网IPv4的内网直连方案基本都不能用了
尽管IPv6能解决地址不足问题,但其实际部署仍存在兼容性问题(办公学校等环境还没有支持IPV6)
好在现在可以通过STUN协议探测NAT类型、NAT1/UPnP主动开放端口,且无需中转服务器就能访问内网
并结合重定向技术,实现在无公网IPv4且IPv6不完善情况下,直接穿透内网,无需第三方服务器中转

使用方法

确认NAT类

打开:https://mao.fan/mynat

  • 如果是NAT1,打开防火墙就可以穿透
  • 如果是NAT2,需要打开UPNP和防火墙
  • 如果是NAT3,需要打开UPNP和防火墙
  • 如果是NAT4,不用尝试了,肯定不行

申请链接

申请地址:https://524228.xyz/,『目标地址』需要随便填写一个
申请短域名

保存内容

  1. 链接/s/后面的AABBCCDD是suffix网站后缀
  2. 更新密码要保存好,只会显示一次,无法恢复
    保存域名信息

设置Lucky

  1. 安装Lucky,教程:https://lucky666.cn/docs/install
  2. 打开Lucky——STUN穿透设置——新增设置本地地址端口:
    新增设置本地地址端口
  3. STUN穿透设置——启用Webhook,设置Webhook 更新地址:
    设置Webhook 更新地址

    • 请求地址:https://524228.xyz/p/
    • 请求类型:POST
    • 请求内容:
    {
      "suffix": "网站后缀",
      "tokens": "更新密码",
      "typing": "http",
      "ipaddr": "{ip}",
      "porter": "{port}"
    }

测试Lucky

  1. 保存之后,等待STUN穿透和更新URL地址
  2. 打开:https://524228.xyz/s/XXXXXXXX
  3. 如果能正常打开则穿透已经成功!!!!
    穿透已经成功

设置Ports(可选)

StunConnects说明

正常情况上面的步骤就可以使用了
但是STUN穿透的地址是动态变化的
并且URL重定向只支持Web协议穿透
StunConnects就是解决这个问题的
①固定本地端口 ②支持非WEB协议

StunConnects安装

  1. Win64/Linux:https://github.com/PIKACHUIM/StunConnects/releases
  2. Docker/FNOS:

    docker run -d --network host --name porter-container pikachuim/porter:latest

    中国用户可以使用:

    docker run -d --network host --name porter-container docker.opkg.us.kg/pikachuim/porter:latest

    然后您可以通过ip:1680访问您的管理页面,您可能需要放行防火墙

StunConnects模板

创建一个docker-compose.yml

version: '3.8'  # Docker Compose 版本
services:
  porter-container: # 定义服务名称
    image: pikachuim/porter:latest  # 使用的镜像
    container_name: porter-container  # 容器名称
    network_mode: host  # 使用 Host 网络模式
    restart: unless-stopped  # 重启策略

然后启动docker:

docker-compose up -d

StunConnects使用

  1. 打开StunConnects(桌面APP)或者IP:1680(Docker)
  2. 新增连接映射:

    映射备注:您自己设置一个名称
    跳转链接:上一步成功的短链接
    本地端口:监听本地端口,不填则随机生成

添加端口映射

  1. 复制本地或者云端地址,在浏览器或软件进行测试
Last modification:March 19, 2025
If you think my article is useful to you, please feel free to appreciate