利用STUN+NAT1配合重定向实现无公网的免中转内网穿透
背景介绍
随着运营商逐步回收家庭宽带的公网IPv4地址,传统基于公网IPv4的内网直连方案基本都不能用了
尽管IPv6能解决地址不足问题,但其实际部署仍存在兼容性问题(办公学校等环境还没有支持IPV6)
好在现在可以通过STUN协议探测NAT类型、NAT1/UPnP主动开放端口,且无需中转服务器就能访问内网
并结合重定向技术,实现在无公网IPv4且IPv6不完善情况下,直接穿透内网,无需第三方服务器中转
使用方法
确认NAT类
- 如果是NAT1,打开防火墙就可以穿透
- 如果是NAT2,需要打开UPNP和防火墙
- 如果是NAT3,需要打开UPNP和防火墙
- 如果是NAT4,不用尝试了,肯定不行
申请链接
申请地址:https://524228.xyz/,『目标地址』需要随便填写一个
保存内容
- 链接/s/后面的AABBCCDD是suffix网站后缀
- 更新密码要保存好,只会显示一次,无法恢复
设置Lucky
- 安装Lucky,教程:https://lucky666.cn/docs/install
- 打开Lucky——STUN穿透设置——新增设置本地地址端口:
STUN穿透设置——启用Webhook,设置Webhook 更新地址:
- 请求地址:
https://524228.xyz/p/
- 请求类型:
POST
- 请求内容:
{ "suffix": "网站后缀", "tokens": "更新密码", "typing": "http", "ipaddr": "{ip}", "porter": "{port}" }
- 请求地址:
测试Lucky
- 保存之后,等待STUN穿透和更新URL地址
- 打开:https://524228.xyz/s/XXXXXXXX
- 如果能正常打开则穿透已经成功!!!!
设置Ports(可选)
StunConnects说明
正常情况上面的步骤就可以使用了
但是STUN穿透的地址是动态变化的
并且URL重定向只支持Web协议穿透
StunConnects就是解决这个问题的
①固定本地端口 ②支持非WEB协议
StunConnects安装
- Win64/Linux:https://github.com/PIKACHUIM/StunConnects/releases
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使用
- 打开StunConnects(桌面APP)或者IP:1680(Docker)
新增连接映射:
映射备注:您自己设置一个名称
跳转链接:上一步成功的短链接
本地端口:监听本地端口,不填则随机生成
- 复制本地或者云端地址,在浏览器或软件进行测试