什么是 STUN 内网穿透
STUN(Session Traversal Utilities for NAT)内网穿透技术可以帮助解决因 NAT(Network Address Translation)技术所带来的网络连接问题。
STUN 技术允许 NAT1 用户获取公网端口,通过路由端口转发或者 LUCKY 内置转发,将内网服务端口暴露到外网,从而实现内网穿透的目的。
NOTENAT1 是指 NAT 类型为 1 的设备,即全锥型 NAT。
STUN 的公网端口变化频率不固定,可以搭配 DDNS 食用。
开始前的准备
1. 网络环境检查
大部分的运营商 NAT 都是全锥型的,而在家庭网络环境下,通常会存在多层 NAT 转换。
这时再去测试 NAT 类型,很有可能显示为 端口受限锥形 NAT
但这并不影响我们使用 STUN 内网穿透,你可以使用下面这篇文章介绍的方法去优化网络:网络环境检测和优化
2. 准备好你的设备
本教程使用 Ubuntu 22.04 作为演示,使用 Docker Compose 部署 Lucky,设备直连光猫。
开始搭建 STUN 内网穿透
1. 安装 Docker
按顺序执行下面的命令:
# 切换到 root 用户sudo -i
# 安装 Dockercurl -fsSL https://get.docker.com | sh
# 启动 Docker 服务并设置为开机自启sudo systemctl enable docker --now接下来配置国内源,打开 /etc/docker/daemon.json 文件:
vim /etc/docker/daemon.json添加下面的内容:
{ "registry-mirrors": [ "https://docker.1ms.run", "https://hub.rat.dev", "https://docker.m.daocloud.io", "https://docker.1panel.live" ]}重启 Docker 服务:
sudo systemctl restart docker2. 启动 LUCKY 容器
我们在 / 目录下,创建一个新的文件夹 lucky,并进入该文件夹:
# 创建文件夹mkdir /lucky
# 进入刚刚创建的文件夹中cd /lucky在 /lucky 目录下,创建一个新的文件 docker-compose.yml,并添加下面的内容:
services: lucky: image: gdy666/lucky container_name: lucky volumes: - ./goodluck:/goodluck network_mode: host restart: always启动 Lucky:
docker-compose up -d3. 修改默认的账号密码
使用浏览器打开 http://你设备的ip:16601,即可进入 Lucky 的 Web 界面。
默认账号密码均为 666
左侧下拉,找到 设置,在右边设置你的安全入口和账号密码。

设置完成后,页面拉到底部,点击 保存配置 即可。

4. 配置 STUN 内网穿透
点击左侧的 STUN内网穿透,在右边的页面中,点击 添加穿透规则。


添加后等待几秒,即可在下方看到你的公网 IPv4 连接地址。

复制公网地址,我们来测试一下:

🎉 完美,恭喜你成功实现了公网 IPv4 访问
NOTESTUN 内网穿透的公网端口变化频率是不固定的,因此我们还需要使用其他方法来实现公网 IPv4 地址和端口的动态更新。
我会在之后的文章中,介绍如何在公网服务器上,使用 Nginx 实现访问域名可以自动跳转到最新的公网地址,做到公网 IPv4 地址和端口的实时更新。