banner
约 1,800 字
6 分钟

使用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

  1. 先验证本机是否有 IPv6 公网:用浏览器百度搜索"IPv6 测试",打开在线测试页,如果结果显示你有 IPv6 地址,说明宽带环境 OK。

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

blog image

看 IPv6-PD 这一项就够了。 PD 是"Prefix Delegation"(前缀委派)的缩写——它代表运营商有没有真的把一段公网前缀交给你的路由器。只要这里拿到了地址,你的设备就有望拿到公网 IPv6;如果这里是空的或有报错,后面所有步骤都无从谈起,先去运营商那边确认。

主路由安装 Lucky 插件

Lucky 是一个集 DDNS、反向代理、端口转发、WAF 等于一体的国产工具,很适合当这个"外网入口"。可以通过路由器应用商店安装,也可以去官网下载安装包手动安装。

官网地址:https://lucky666.cn/,官网云盘(安装包)也提供下载:https://545c.com/d/44547821-55537427-a5525e?p=16601

blog image

配置 Lucky 访问本地服务

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

blog image

AAAA 就是 IPv6 版的 A 记录。 记法很形象:IPv4 的解析记录叫 A,而 IPv6 地址占的位数是它的 4 倍,所以叫 AAAA(四个 A)。看到 AAAA 就当"IPv6 地址"理解即可。

其中 IPv6 地址要填本地服务器的公网 IPv6。查询方法:在主路由的路由表里找本机对应的地址,或直接登录服务器终端执行 ifconfig,找到带公网前缀的那条 IPv6 地址。

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

blog image

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

blog image

关于这个 Token 的权限,值得认真对待。 Cloudflare 有全局 API Key 和细粒度 API Token 两种凭据。一定用 Token,不要用全局 Key:全局 Key 等于你账号的万能钥匙,一旦泄露,别人能改你所有域名的解析、甚至整个账号的配置。

创建 Token 时按最小权限来:

  • 权限只给 Zone → DNS → Edit(只需要改解析,不需要别的)

  • 适用范围限定到具体那一个域名,不要选 "All zones"

这样即使 Token 泄露,对方也只能动你这一个域名的解析,损失可控。

  1. 申请 SSL 证书:用同一个 Cloudflare 令牌为你的域名申请免费 SSL 证书,这样访问走的是 HTTPS,更安全。令牌权限记得勾选对应的域名和 DNS 编辑权限。

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

blog image

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

blog image

⚠️ 这里有个特别容易踩的坑:Cloudflare 的橙色小云朵要关掉(改成灰色 DNS only)。

CF 的 AAAA 记录默认可能是"代理模式"(橙云),意思是流量先过 CF 的 CDN 再回你的源站。但代理模式只支持固定的几个端口(80、443、8443 等)。你用的 6677 这种自定义端口不在支持列表里,开着橙云就会出现"域名 ping 得通、但浏览器死活打不开"的诡异现象。

我们是 IPv6 直连方案,本来就不需要 CF 帮你加速或隐藏源站,保持灰云(仅 DNS)即可。这个点如果不知道,能在这一步卡很久。

  1. 配置完成后,外网就能访问 https://域名:端口 了。如果打不开,优先排查两处:

  • 主路由的防火墙转发是否开启(Lucky 只在主路由做转发,很多路由器默认关闭 WAN→LAN 转发,需要手动放行对应端口);

  • 服务器自身的防火墙是否放行了该端口(Ubuntu 若有 ufw/firewalld,记得允许入站)。

blog image

⚠️ 一个必须重视的安全问题

前面说过: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 那类走中转的方案了。

最后提醒一句:这套方案的便利来自"设备直连公网",而风险也正来自同一处。用之前请想清楚——哪些服务值得对外,以及它有没有资格对外。把上面那三条加固按需配上,这套方案才能长期安心地用下去。

END