Lucky 反向代理实用教程:5 步把家里的多台服务收进统一入口
2026/9/20 15:34:08 网站建设 项目流程

Lucky 反向代理实用教程:5 步把家里的多台服务收进统一入口

【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky

家里的 NAS、博客、摄像头各自跑在不同 IP 和端口上,外网想逐个访问就得记一堆192.168.1.x:端口。用Lucky 反向代理,只需一个监听端口加上几条域名规则,就能让nas.example.comblog.example.com直接指向对应的内网服务。本文按"一条主规则 + 若干域名子规则"的思路,带你从零配出一条可用的 Lucky 反向代理,再叠加认证、IP 过滤和日志排查,全程只在 Web 界面操作。

本篇覆盖的功能点

功能点对应界面位置说明
主规则与监听端口反向代理规则列表决定对外的入口地址和端口
默认目标地址主规则的"默认子规则"行未匹配任何域名时的兜底后端
域名子规则规则列表中的"自定义子规则"行按前端域名分流到不同后端
后端负载均衡子规则的后端地址同一域名填多个地址自动轮询
Basic 认证 / IP 白名单 / UA 过滤子规则的"安全设置"列三层访问控制
访问日志每行"日志 - 查看"排查后端不通、认证失败

前提准备

开始之前确认这几点,能避免大部分问题:

  • Lucky 已部署并登录:服务进程正常运行,浏览器能打开 Lucky 管理界面(默认 Web 端口 13666)。
  • 后端服务已在本机可访问:用curl http://后端IP:端口在内网验证目标服务存活,确认 Lucky 能直接访问到它们。
  • 端口未被占用:打算监听的端口(如 80、8080)没有跑其他进程。
  • 域名已解析到本机(可选):如果后端服务是走公网访问的,先把nas.example.com等域名 A 记录指向 Lucky 所在主机;纯内网演示时也可以先用IP:端口加 Host 头访问验证。
  • HTTPS 场景:如需启用 TLS,先在 Lucky 的 SSL 证书模块里导入证书或完成 ACME 签发,反向代理的 TLS 开关会直接调用这些证书。

核心流程:配出一条能用的反向代理

反向代理的配置分两层:主规则(监听地址 + 端口)和子规则(按域名分流的后端)。界面长这样:

第 1 步:新建主规则

进入"反向代理"菜单,点击添加规则,填两项核心参数:

  • 监听地址:留空表示监听所有网卡 IP;只对内网暴露时填具体 IP。
  • 监听端口:HTTP 服务填80,HTTPS 填443,内网演示可用 8080 等。
  • 启用 TLS:有证书且对外提供 https 访问时打开,否则保持关闭。
  • 保存后,打开该行最左侧的关,规则即开始监听。

常见问题:端口冲突。保存或启用时若报监听失败,多半是端口被占用。先确认本机没有其他服务(包括 Lucky 自己的 Web 端口)占了这个端口,换一个空闲端口即可。

第 2 步:设置默认目标地址

主规则的第一行是默认子规则,处理所有"没匹配到任何域名"的请求:

  • 在"后端地址"填入主服务地址,如http://192.168.1.100:8080
  • 如果只想让特定域名生效、其余请求一律拒绝,这里留空即可——没有后端地址时请求会被直接中止,并在日志里记录"没有对应后端地址"。

第 3 步:添加域名子规则

点击主规则下的"添加自定义子规则",每行对应一个域名分组:

  • 规则名称:写业务名,如NAS服务,方便在列表里定位。
  • 前端域名:填nas.example.com,一行支持多个域名,空格分隔。
  • 后端地址http://192.168.1.100:5000,即该域名实际要转到的内网服务。

按同样方式继续添加blog.example.comhttp://192.168.1.101:80cam.example.comhttp://192.168.1.102:8080

常见问题:域名冲突。同一个前端域名只能属于一条子规则,重复填写会导致规则初始化报错"前端域名冲突"。给新服务分配域名前先检查已有子规则。

第 4 步:逐条验证

用浏览器或 curl 带 Host 访问,确认分流正确:

curl -H "Host: nas.example.com" http://本机IP:80/

返回内容来自 NAS 服务即说明该子规则生效。接着打开该行"日志 - 查看",正常转发会记录"指向后端地址"以及完整请求信息。

常见问题:后端 502。日志若出现"后端地址转换出错"或连接超时,先在本机直连后端验证服务是否存活、地址协议(http/https)是否写对;后端只监听 IPv6 或特定网卡时,注意后端地址里的 IP 要与 Lucky 实际出口一致。

进阶能力

多实例负载均衡

某个服务有多台实例(比如两台 FileBrowser 节点)时,在该子规则的后端地址里填多个地址,用逗号分隔:

http://192.168.1.100:8080, http://192.168.1.101:8080

Lucky 会在这些地址间轮询分发请求,无需额外配置。实例下线时从列表里移除即可,规则无需重启。

还原客户端真实 IP

后端应用如果记录了来源 IP,直连时拿到的是真实 IP,而经过反向代理后会变成 Lucky 的 IP。子规则里可以开启追加客户端连接 IP 到 Header(如X-Client-IP),后端据此还原真实来源。如果 Lucky 前面还挂了一层网关,再配合"可信代理网段 + 原始 IP 请求头"两项设置,只从可信网段读取请求头里的客户端 IP,防止伪造。

HTTPS 终止

主规则打开"启用 TLS"后,Lucky 使用 SSL 模块中当前有效的证书对外提供 443 服务,转发到后端时仍按你配置的后端地址(可以是内网 http),由 Lucky 负责证书续期与加解密。

安全与可观测

Basic 认证

敏感服务(管理后台优先)在子规则的"安全设置"列点击Basic认证已启用进行配置,填写用户名和密码。之后访问该域名的任何请求都会先要求认证,认证不通过的请求会被中止并写入日志,不会到达后端。

IP 白名单 / 黑名单

反向代理子规则支持 IP 过滤(白名单模式 / 黑名单模式),全局 IP 名单在"黑白名单"菜单维护,列表页可以添加 IP、设置有效时间、一键"设置永久有效"或删除:

名单本身有访问控制:在名单的"设置"页为白名单管理入口配置认证账号 / 认证密码和有效期,防止名单被随意改动:

UA 过滤

同一"安全设置"列里还可以开UA黑名单,填入要拦截的 User-Agent 关键词(如特定爬虫),匹配到的请求直接被拒,适合挡掉已知的恶意扫描流量。

日志分析

每条子规则(含默认子规则)有独立的访问日志缓冲:

  • 看分流:每条记录包含时间、客户端 IP、Host、方法、URL、UserAgent,可确认请求落到了哪条规则。
  • 看拦截:IP 过滤、UA 过滤、Basic 认证失败都会记 Warn 级日志,"禁止访问""认证不通过"字样能直接定位是哪一层拦的。
  • 看后端:后端不可达、地址格式错误都会落 Error 日志,是 502 类问题的第一排查点。

运行状态方面,规则行的开关即启停状态;想临时下线某条规则直接关开关,不影响其他规则。

验证清单

上线前对照勾选一遍:

  • 主规则开关已打开,且"监听端口"在界面无冲突报错
  • 默认子规则的后端地址正确(或确认留空以拒绝未匹配域名)
  • 每个前端域名只出现一次,无"域名冲突"报错
  • 用带 Host 头的请求验证了每个域名子规则,返回来自对应后端
  • 后端服务从 Lucky 所在主机可直连(协议、IP、端口一致)
  • 管理后台类服务已启用 Basic 认证,且用错误凭据实测被拒
  • 需要限流的域名配置了 IP 白名单/黑名单,拦截已在日志中留痕
  • 访问日志能正常滚动,日志缓冲上限(最大条数)符合排查需要
  • 如需 HTTPS:证书已签发且主规则 TLS 已启用,浏览器访问 443 无告警

延伸方向

把入口统一之后,Lucky 的其余模块可以自然衔接:DDNS负责动态域名解析,让外网也能通过域名找到这台机器;端口转发模块则处理 HTTP 之外的 TCP/UDP 服务(SSH、游戏、FTP 等),同样支持白名单模式和负载均衡——

配置逻辑可参考源码目录 module/reverseproxy/,黑白名单逻辑在 module/safe/,HTTP 接口定义见 web/reverseproxy.go。把 DNS、入口、后端三层都理顺后,家庭服务网关就基本闭环了。

【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询