Lucky反向代理教程:3步为内网服务配好域名统一入口
【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky
团队服务器上常跑着一批只有内网 IP 加端口才能访问的服务,把 IP 和端口一个个发给同事,记不住、也不好维护。Lucky 的反向代理功能就是来解决这个问题的:它监听一个固定端口,按请求携带的域名把流量分发到不同的后端服务,一条规则就能收敛整组入口。
一句话讲清原理
Lucky 的反向代理本质上是一个"前台导引员":来访者(请求)只报出要访问的域名,前台判断该带谁去哪个房间(后端地址);没报上号的,统一带去默认房间(默认子规则)。
典型适用场景:
- 多台内网机器各自跑着不同 Web 服务,对外只暴露一个统一入口
- 同一个服务部署了多个实例,希望请求轮流落到不同实例上
- 对外发布的页面需要加认证或来源限制,不想在每个后端服务里单独开发
第一条反向代理规则设置
下面用一组固定数据走通最短路径:Lucky 装在服务器 10.20.30.10 上,后端 Wiki 跑在 10.20.30.11 的 3000 端口。
第 1 步:新建一条规则。打开 Lucky 管理页面,在左侧菜单「反向代理」下进入「反向代理规则列表」,点击页面右下角悬浮的「添加反向代理规则」按钮,弹出「反向代理规则添加」对话框。
第 2 步:填写监听信息与默认目标地址。对话框顶部是规则名称、规则开关、「监听类型」(IPv4 / IPv6 复选框)、「监听地址」(留空表示所有地址)和「监听端口」;展开「默认子规则」,在「默认目标地址」里填入:
http://10.20.30.11:3000第 3 步:启用规则。确认「规则开关」为启用状态,点击保存。返回列表后你会看到新规则的「规则操作」列有一个大的开/关开关,此时应显示为开。
第 4 步:验证生效。用浏览器或 curl 访问http://10.20.30.10(监听端口不是 80 时加上端口号),应能看到 Wiki 页面;再点规则卡片里「日志」列的「查看」按钮,访问日志中会多出一条指向默认后端地址的记录,说明流量已被正确接走。
注意一个匹配机制:请求先按域名匹配自定义子规则,匹配不上才落到默认子规则。所以上面这条规则里,默认目标地址就是唯一真正生效的转发目标,务必填写正确。
按域名区分多服务:配置子规则
【适用情况】多台内网服务共用同一个监听端口,靠域名区分。比如 Wiki 在 10.20.30.11:3000,API 网关在 10.20.30.12:8000。
【怎么配】编辑规则,在「反向代理子规则列表」里新增一条子规则:「前端域名」填一行一条,填wiki.acmetech.cn;「后端地址」填http://10.20.30.11:3000。再加一条子规则,域名填api.acmetech.cn,后端地址填http://10.20.30.12:8000。
【生效表现】访问http://wiki.acmetech.cn只命中 Wiki 后端,访问http://api.acmetech.cn只命中 API 网关;两个域名走同一端口,互不串流。
多实例轮询分发:设置负载均衡
【适用情况】单个服务实例不够用或单点风险高,已部署多个相同实例。
【怎么配】子规则的「后端地址」支持一行填一条,依次填入:
http://10.20.30.21:8000 http://10.20.30.22:8000默认子规则的「默认目标地址」同样支持多行。
【生效表现】Lucky 按轮询方式依次把请求分发到各后端,连续访问时页面来源会在两台实例间交替;某个实例宕机不会中断整个入口(但不会自动剔除坏实例,见下文排错表)。
给敏感页面加门禁:启用 Basic 认证
【适用情况】后台、运维页面不想对所有人开放,又没打算在后端服务里单独做登录体系。
【怎么配】编辑目标子规则,在「安全设置」区块把「BasicAuth认证」开关拨到启用,下方出现「HTTP BasicAuth 用户名」和「HTTP BasicAuth 密码」两个输入框,填入账号密码后保存。该设置在默认子规则和每条自定义子规则下各自独立。
【生效表现】直接访问该域名时,浏览器弹出标准的账号密码输入框;凭据正确才放行,错误则返回 401,且请求不会到达后端服务。
按来源拦截:IP 与 UA 过滤
【适用情况】只希望公司网络内的人访问某个入口,或想挡掉常见爬虫。
【怎么配】子规则「安全设置」下有两个过滤维度。「IP过滤模式」选「白名单」,即可限制只允许指定 IP 或网段访问(名单维护在左侧菜单「白名单设置 / 白名单列表」);「UserAgent过滤模式」选「黑名单」,在「UserAgent过滤内容」中每行填一个特征,如curl,UA 命中任意一行即拒绝。
【生效表现】白名单外的 IP 连接被直接中止,访问日志里会留下IP[xx]禁止访问记录;UA 命中黑名单的客户端同样被拦,并记录UA禁止访问。
自助排错
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 启用规则时提示「端口已被占用」 | 本机已有其他服务占用了监听端口 | 换一个空闲端口,或停掉冲突服务 |
| 访问超时或后端不可达 | 后端服务未启动,或 Lucky 与后端网络不通 | 在 Lucky 所在机器上直接curl后端地址确认连通性 |
| 请求落到了别的子规则 | 访问用的域名与子规则「前端域名」不一致,走了默认目标地址 | 核对 DNS 解析的域名与子规则配置的域名是否完全一致 |
| 启用 TLS 后实际仍是 HTTP | SSL 证书模块下没有可用证书 | 先到「SSL证书」菜单添加证书,再重启该规则使其生效 |
| 某台后端实例频繁报错 | 轮询仍会把请求打到故障实例 | 临时把该地址从后端列表里删掉,修复后再加回 |
常见误解澄清:
- IP 过滤看的是「直接连接 Lucky 的 IP」。前面还挂着 CDN 或负载均衡时,需启用「优先从Header头部获取」客户端 IP,并填好信任的代理网段和
X-Forwarded-For等头部字段,过滤才按真实来源生效。 - 负载均衡是轮询分发,不是健康检查,它不会自动摘除挂掉的实例。
- 修改子规则后无需重启 Lucky,保存后规则会自动重新加载;但更换证书后需要重启对应规则。
规则本身的字段定义见 module/reverseproxy/ 目录,界面字段与之一一对应。
把入口、认证和访问控制集中在一条 Lucky 反向代理规则里维护,是比逐个改后端服务更省心的做法。现在就给自己的 Wiki 入口加上 Basic 认证,五分钟就能完成。
【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考