Lucky反向代理:3步把内网服务安全挂到外网的完整实操
【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky
用 Lucky反向代理,一条规则就能把内网服务安全暴露给外网。无论是手机上访问家里 NAS,还是一个域名指向多台后端,Lucky网关都帮你把转发、HTTPS、访问控制一次搞定,不用手写任何 nginx 配置。
💻 两个场景,一个中间人
场景一:家里 NAS 上有个服务跑在 5000 端口,想用手机流量直接访问,但公网 IP 加端口又长又难记,还得担心直接裸奔出去不安全。场景二:博客和 API 分别跑在不同机器上,希望共用一个主域名——blog.example.com 走博客,api.example.com 走 API。这两个需求的形状一样:需要在入口放一个中间人,接过所有进来的请求,再按请求里的域名把它派到正确的机器上。这个中间人,就是 Lucky 自带的反向代理。
🏠 Lucky反向代理配置:一条规则跑通三步
打开 Web 端面的「反向代理」菜单,点添加规则,按顺序填三样东西:
- 监听端口:填 80。Lucky 会在这个端口上收请求,用户访问到的就是它。
- 前端域名:填用户要访问的域名,比如 nas.example.com。
- 后端地址:填真正的内网服务,比如 http://192.168.1.100:5000。
等价的配置长这样:
rule_name: nas_gateway listen_port: 80 sub_rules: - domain: nas.example.com target: http://192.168.1.100:5000界面上还有一行「默认子规则」:任何没被具体域名命中的请求都会落到它指的后端。规则下方直接挂着实时访问日志,每次请求的源 IP、命中的后端一目了然,排障时非常顺手。
主规则与子规则怎么分工:一个总门禁加 N 把独立钥匙
Lucky反向代理配置是「主规则 + 子规则」两层结构,像一栋楼:主规则是楼下的总门禁,决定这栋楼占哪条街(监听地址和端口)、大门装不装 HTTPS 锁(TLS 开关);子规则是每层的独立钥匙,各自决定「拿着某个域名来的请求」送到哪台机器。主规则还可以配一个默认子规则,没对上任何域名的访客统一由它兜底。最小配置如下:
rule_name: web_gateway listen_ip: 0.0.0.0 listen_port: 80 enable_tls: true default_target: http://192.168.1.100:5000 sub_rules: - domain: blog.example.com target: http://192.168.1.101:80 - domain: api.example.com target: http://192.168.1.102:3000开启 TLS 后,Lucky 会自动从自己的 SSL 证书模块里挑证书,不用单独部署。字段细节可看 module/reverseproxy/conf/reverseproxy.go。
⚖️ Lucky负载均衡设置:一条规则多个后端
单机扛不住时,在子规则的「后端地址」里填多个地址即可,Lucky 会按轮询把请求轮流分给它们。算法选型对照一下:
| 算法 | 适用场景 | 配置值 |
|---|---|---|
| 轮询 | 后端性能接近 | 多填地址,自动轮流 |
| 最少连接 | 请求耗时差异大 | 优先派给连接最少的实例 |
| IP 哈希 | 需要会话保持 | 按来源 IP 固定路由 |
sub_rule: domain: app.example.com targets: - http://192.168.1.100:8080 - http://192.168.1.101:8080 - http://192.168.1.102:8080小提示:哪台后端挂了,日志里会冒出 502 或连接被拒的记录,先把问题机器从列表里摘掉,再慢慢查它。
🔒 Lucky白名单加固:开门之前先上三道锁
服务挂到公网,就得把门锁好。Lucky 提供三种控制,前两种建议必开:
| 控制方式 | 配置要点 | 生效层级 |
|---|---|---|
| IP 白名单 | CIDR 格式,如 192.168.1.0/24,可设有效期 | 网络层 |
| Basic 认证 | 账号密码,按子规则单独配 | 应用层 |
| UA 过滤 | 黑/白名单加关键字匹配 | 应用层 |
白名单在「安全」菜单统一管理:单 IP 或 CIDR 网段都能加,可以设成永久有效,也可以限定时间窗口。反向代理子规则选择「IP 白名单模式」后,只有名单内的 IP 请求会被转发,其余直接拦下。
UA 过滤用来挡爬虫和脚本:子规则选「UA 黑名单」并填关键字,命中的请求一律拒绝。Basic 认证则给子规则再加一道账号密码,访客就算摸到入口也得先过身份验证。
🔍 排障与日常运维:不好使时先看日志
不好使的时候先看规则日志,每条请求记录里这几个字段最有用:
- timestamp:请求时间,用来对上你测试的时刻
- client_ip:客户端真实 IP,判断是不是被白名单拦了
- host:请求里的域名,判断命中了哪条子规则
- upstream:实际转发到的后端地址,判断目标有没有填错
- status_code:响应状态,502 基本是后端不通,401 是认证没过
平时盯四个指标,就能判断系统健不健康:
- 请求吞吐量:每分钟请求量有没有异常下跌
- 响应时间:延迟变大先怀疑后端,别急着怪代理
- 后端健康:目标机器上的服务是不是真的活着
- 并发连接数:一直贴着上限,说明该加后端了
配置管理养成三步习惯:
- 备份:动手改之前,把当前规则导出一份
- 变更记录:每次修改顺手记一句改了什么、为什么
- 回滚:出问题时先恢复上一份备份,再慢慢查原因
收口:挂出去之前的三条心法
- 渐进式:先挂一个服务、一条子规则,确认日志正确后再逐步加域名和后端。
- 数据驱动:按日志和指标调规则,而不是凭感觉。
- 安全前置:能加白名单和认证就先加,服务稳定了再谈放开。
规则保存、开关打开,服务就已经在外面了。门开了,记得偶尔翻翻日志。
【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考