使用lucky插件,通过ipv6访问本地服务器
摘要
本文介绍在Ubuntu 24.04服务器上利用Cloudflare Tunnel(通过Lucky插件)实现可道云盘的域名穿透访问。该方法无需客户端,速度优于frp,但需本地宽带支持IPv6。主要步骤包括:配置主路由IPv6、安装Lucky插件、在Cloudflare添加IPv6解析与SSL证书、设置Web服务规则及防火墙转发。
前言
我有一台刷了 Ubuntu 24.04 系统的家庭服务器,上面部署了可道云盘,之前一直靠 frp 内网穿透实现在外网用域名访问本地文件。
这次换一种更优的思路:用 Cloudflare Tunnel(通过 Lucky 插件)+ IPv6 直连来访问内网服务。
这种方案的优势很明显:
相比 Tailscale / ZeroTier:无需在访问端安装任何客户端,浏览器打开域名就能用。
相比 frp:不需要一台有公网 IP 的中转服务器,数据不绕路、速度更快,因为走的是你本地宽带的 IPv6 公网直连。
限制条件:本地宽带需要有 IPv6 公网地址(现在大多数运营商已默认支持,但也有部分宽带只给了 IPv4 或 NAT 后的地址,需要先确认)。
为什么 IPv6 能"不中转"
这是整篇方案的立足点,搞懂了后面每一步都顺。
IPv4 时代,一个家庭宽带通常只有一个公网 IP(甚至没有),所以内网几十台设备只能共用它——要让人从外面访问其中一台,就得靠端口映射或者中转服务器(frp)。
IPv6 的地址空间大到几乎无限。运营商给家庭宽带下发的通常不是"一个地址",而是一整段前缀(比如 /56 或 /64),你家路由器再把这段前缀分配给内网每台设备。结果是:
你家里的每一台设备,都拥有一个真实可路由的公网 IPv6 地址。
既然设备本身就是公网可直达的,那"从外面访问"就回归成了最简单的事——直接连过去就行,不需要中转、不需要端口映射、不需要买服务器。这就是它比 frp 快的原因:数据走的是运营商骨干网的直连路径,而不是"先绕到别人的服务器再绕回来"。
但这里有两个必须知道的副作用:
① 前缀会变。 家宽的 IPv6 前缀是运营商动态分配的,重拨号、重启光猫、甚至运营商侧调整都可能导致前缀变化——一变,设备的 IPv6 地址就全变了,域名解析也就失效了。所以IPv6 同样需要 DDNS(很多人误以为 IPv6 是固定的,这是个常见误解)。
② 有公网地址 = 公开可扫。 IPv6 里没有 NAT 这层"天然遮挡",设备一旦有公网地址,就等于直接站在公网上。它不会因为"地址长、记不住"就安全——扫描器是按前缀整段扫的,根本不关心你的地址好不好记。所以这篇教程里的安全加固部分(防火墙、WAF、认证)不是可选项。
准备:确认宽带支持 IPv6
先验证本机是否有 IPv6 公网:用浏览器百度搜索"IPv6 测试",打开在线测试页,如果结果显示你有 IPv6 地址,说明宽带环境 OK。

主路由检查:进入路由器的
网络 → 接口,看是否自动出现一个pppoe-wan对应的wan_6接口,并且IPv6-PD(前缀委派)有拿到地址。这一步决定了局域网里的设备能否获得可用的公网 IPv6。

看
IPv6-PD这一项就够了。 PD 是"Prefix Delegation"(前缀委派)的缩写——它代表运营商有没有真的把一段公网前缀交给你的路由器。只要这里拿到了地址,你的设备就有望拿到公网 IPv6;如果这里是空的或有报错,后面所有步骤都无从谈起,先去运营商那边确认。
主路由安装 Lucky 插件
Lucky 是一个集 DDNS、反向代理、端口转发、WAF 等于一体的国产工具,很适合当这个"外网入口"。可以通过路由器应用商店安装,也可以去官网下载安装包手动安装。
官网地址:https://lucky666.cn/,官网云盘(安装包)也提供下载:https://545c.com/d/44547821-55537427-a5525e?p=16601

配置 Lucky 访问本地服务
在 Cloudflare 添加一条 IPv6 解析记录:为你要用的二级域名(如
yun.1day.vip)添加一条 AAAA 记录,指向你本地服务器的 IPv6 地址。

AAAA 就是 IPv6 版的 A 记录。 记法很形象:IPv4 的解析记录叫
A,而 IPv6 地址占的位数是它的 4 倍,所以叫AAAA(四个 A)。看到 AAAA 就当"IPv6 地址"理解即可。其中 IPv6 地址要填本地服务器的公网 IPv6。查询方法:在主路由的
路由表里找本机对应的地址,或直接登录服务器终端执行ifconfig,找到带公网前缀的那条 IPv6 地址。

在 Lucky 里添加动态域名(DDNS):因为家用宽带的 IPv6 前缀会变化,需要用 DDNS 自动把域名解析更新到最新的 IPv6 地址。

需要在 Cloudflare 后台申请一个区域 DNS 令牌(API Token),给 Lucky 用来自动改解析记录。

关于这个 Token 的权限,值得认真对待。 Cloudflare 有全局 API Key 和细粒度 API Token 两种凭据。一定用 Token,不要用全局 Key:全局 Key 等于你账号的万能钥匙,一旦泄露,别人能改你所有域名的解析、甚至整个账号的配置。
创建 Token 时按最小权限来:
权限只给 Zone → DNS → Edit(只需要改解析,不需要别的)
适用范围限定到具体那一个域名,不要选 "All zones"
这样即使 Token 泄露,对方也只能动你这一个域名的解析,损失可控。
申请 SSL 证书:用同一个 Cloudflare 令牌为你的域名申请免费 SSL 证书,这样访问走的是 HTTPS,更安全。令牌权限记得勾选对应的域名和 DNS 编辑权限。

添加 Web 服务规则:这里的"监听端口"就是域名后面要加的那个端口。比如我的可道云地址是
https://yun.1day.vip:6677,那么监听端口就填6677。

子规则列表里可以建立多条相同端口的二级域名,例如 https://yun.1day.vip:6677 和 https://sync.1day.vip:6677 可以同时存在——每条子规则前端填解析好的二级域名,后端地址填对应的容器/内网服务地址。

⚠️ 这里有个特别容易踩的坑:Cloudflare 的橙色小云朵要关掉(改成灰色 DNS only)。
CF 的 AAAA 记录默认可能是"代理模式"(橙云),意思是流量先过 CF 的 CDN 再回你的源站。但代理模式只支持固定的几个端口(80、443、8443 等)。你用的
6677这种自定义端口不在支持列表里,开着橙云就会出现"域名 ping 得通、但浏览器死活打不开"的诡异现象。我们是 IPv6 直连方案,本来就不需要 CF 帮你加速或隐藏源站,保持灰云(仅 DNS)即可。这个点如果不知道,能在这一步卡很久。
配置完成后,外网就能访问
https://域名:端口了。如果打不开,优先排查两处:
主路由的防火墙转发是否开启(Lucky 只在主路由做转发,很多路由器默认关闭 WAN→LAN 转发,需要手动放行对应端口);
服务器自身的防火墙是否放行了该端口(Ubuntu 若有 ufw/firewalld,记得允许入站)。

⚠️ 一个必须重视的安全问题
前面说过:IPv6 直连意味着你的设备直接站在公网上,没有 NAT 帮你挡一层。 服务能访问的那一刻,它同时也对全网扫描器开放了。
很多人会想"我用的端口是 6677,不是 80/443,扫不到吧"——改端口只是降低被命中的概率,不构成安全措施。端口扫描可以覆盖全 65535 个端口,只是时间和流量成本问题。
真正有效的加固有几条,都是这个方案的必要补充:
① 给 IPv6 配防火墙。 家宽 IPv6 一般默认是整个前缀都对外开放的。你可以在路由器/防火墙上只放行需要对外的那一台设备的特定端口,其余一律拒绝。具体做法(利用 IPv6 地址的固定后缀来精确定位单台设备)我写在飞牛开启 EUI64 功能,实现主路由 IPv6 防火墙单设备放行这篇里,思路对任何支持 IPv6 防火墙的路由器都通用。
② 给服务加认证。 如果服务本身没有登录功能,就给它套一层。用 Lucky 就能做,见用 Lucky 给自己的服务增加手机二次验证——GitHub OAuth + TOTP 动态码,配置不复杂,效果立竿见影。
③ 上 WAF / IP 过滤。 如果服务需要长期对公网开放,值得再叠一层应用层的防护(拦截扫描器和恶意 payload)。Lucky 自带这套能力,配置见用 Lucky 保护你的飞牛:开启 WAF 防火墙、设置 IP 过滤。
这三条不重叠:防火墙决定"哪些 IP 能连",认证决定"谁能进来",WAF 决定"进来的请求是什么内容"。 按你服务的敏感程度选配,别一个都不做。
小结
整套流程可以归纳为:确认宽带 IPv6 → 主路由装 Lucky → Cloudflare 加 AAAA 解析 + 申请令牌/证书 → Lucky 配置 DDNS 和 Web 转发规则 → 放行防火墙。
相比 frp 需要一台公网中转机,这个方案一旦把 IPv6 链路打通,就是"直连"体验——速度快、不依赖第三方中转服务器的带宽。适合家里宽带已支持 IPv6、又不想掏钱买中转服务器的朋友。如果本地没有 IPv6 公网,就只能退回 frp 那类走中转的方案了。
最后提醒一句:这套方案的便利来自"设备直连公网",而风险也正来自同一处。用之前请想清楚——哪些服务值得对外,以及它有没有资格对外。把上面那三条加固按需配上,这套方案才能长期安心地用下去。