十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Lucky反向代理实战指南:从一条规则到安全上线

Lucky反向代理实战指南:从一条规则到安全上线 Lucky反向代理实战指南从一条规则到安全上线【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky你的NAS跑在路由器后面外网根本访问不到。Lucky 的反向代理模块就是解决这个的它按域名把流量转发到内网后端还能挂 TLS、做负载均衡、控访问权限。这篇文章带你从零建好一条规则再讲清楚哪些进阶功能值得开、哪些不用碰。场景与原理速览先说两个真实场景你有一台群晖里面跑着 Emby 和 WebDAV想把emby.example.com指到内网的 8096 端口或者你跑了一个 Git 服务想把git.example.com和gitea.example.com两个域名都挂到同一台机器上。传统做法是在路由器或宿主机上写 Nginx每次加域名都要改配置、重启服务出问题还得翻日志定位。简单说就是Lucky 反向代理可以把它理解成一个按域名分流的总机。它监听一个端口收到请求后先看 Host 里带的域名命中哪条子规则就转给哪条子规则配置的后端没命中的请求如果设置了默认子规则就走默认后端没设置就直接空响应。转发前会先过三道检查IP 黑白名单、UserAgent 过滤、Basic 认证。维度不用 Lucky用了 Lucky新增域名改 Nginx 配置并重启Web 界面加一行子规则立即生效多后端分流每个域名单独配 vhost子规则内多后端自动轮询访问控制自己写 Nginx 模块内置 Basic 认证与 IP/UA 名单核心配置实操所有配置都可以直接改 JSON。下面三层由浅入深照抄就能跑。最小可用配置一条域名指向一个后端这段是最小可跑配置监听 80 端口nas.example.com指到内网 192.168.1.100:5000其余字段全用默认。{ RuleName: nas 网关, Enable: true, Network: tcp4, ListenPort: 80, DefaultProxy: {}, ProxyList: [ { Remark: nas 主站, Enable: true, Domains: [nas.example.com], Locations: [http://192.168.1.100:5000] } ] }什么时候要改域名、后端地址按你的实际环境替换Network想同时支持 IPv6 就填tcp6或两个都选监听端口被占用就换一个。推荐配置TLS 加认证加日志这段在最小配置上叠加了三样东西主规则开 TLS、子规则开 Basic 认证、打开访问日志并限制保存条数。这是把服务暴露到公网前的最低标准。{ RuleName: nas 网关, Enable: true, Network: tcp4, ListenPort: 443, EnableTLS: true, DefaultProxy: {}, ProxyList: [ { Remark: nas 主站, Enable: true, Domains: [nas.example.com], Locations: [http://192.168.1.100:5000], EnableAccessLog: true, LogLevel: 3, AccessLogMaxNum: 1000, EnableBasicAuth: true, BasicAuthUser: admin, BasicAuthPasswd: 你的密码, SafeIPMode: blacklist, SafeUserAgentMode: blacklist } ] }什么时候要改启用 TLS 前必须先在 SSL 证书模块导入证书否则规则会降级回明文 HTTP证书增删后要重启规则才生效。完整配置多域名、负载均衡与真实IP透传这段展示了生产环境的完整形态两个域名共用一条子规则、两个后端地址轮询、Lucky 位于其他代理之后时从请求头恢复真实客户端 IP。{ RuleName: git 网关, Enable: true, Network: tcp4, ListenPort: 80, DefaultProxy: { EnableAccessLog: true, LogLevel: 3, AccessLogMaxNum: 2000 }, ProxyList: [ { Remark: git 双域名, Enable: true, Domains: [git.example.com, gitea.example.com], Locations: [http://192.168.1.101:3000, http://192.168.1.102:3000], ForwardedByClientIP: true, TrustedCIDRsStrList: [10.0.0.0/8], RemoteIPHeaders: [X-Forwarded-For], AddRemoteIPToHeader: true, AddRemoteIPHeaderKey: X-Real-IP, UserAgentfilter: [curl, python-requests] } ] }什么时候要改TrustedCIDRsStrList填你前面那层代理所在网段只信任它否则任何人都能伪造 IP 头UserAgentfilter是黑名单时的拦截内容按你要挡的爬虫和脚本补充。进阶能力解锁四个进阶开关每个都给了适用判断不值得开的别开。特性解决什么问题开启方式注意事项多后端轮询单机容量不够或想做简单高可用Locations填多条地址按顺序轮询无健康检查后端挂了一个请求会失败真实IP透传服务被多层代理包着后端拿到的都是代理IP子规则开ForwardedByClientIP必须配合TrustedCIDRsStrList否则头可被伪造IP黑白名单只允许固定网段访问或拉黑骚扰源SafeIPMode选whitelist或blacklist白名单模式下名单必须非空且未过期否则全被拒UA过滤挡掉扫描器、爬虫SafeUserAgentMode加UserAgentfilter是子串匹配写太宽可能误伤正常浏览器轮询这块要注意Lucky 的多后端是简单轮询Round-Robin它不会探活所以两个后端里挂一个大约一半请求会失败。适合两个后端都是热备、或者只是想摊流量不适合坏了就自动摘除的场景。性能与安全实战日志与容量的关键参数真正影响日常体验的就三个参数。AccessLogMaxNum控制每条子规则在内存里最多存多少条访问日志范围 0 到 1024000 表示不存排查问题时至少留 1000LogLevel控制日志级别排障用 debug平时用 info 就行LogOutputToConsole决定日志是否同时打到终端生产环境建议关掉避免刷屏。三层防护怎么做网络层把SafeIPMode设为whitelist在 IP 白名单模块里加你的固定出口网段支持 CIDR带有效时间过期自动移除。这一层最硬连域名都不用看就拒掉。传输层主规则EnableTLS开起来并导入证书。没证书的规则即使开了开关也会降级成明文日志里会有可用证书列表为空的提示。应用层子规则开EnableBasicAuth给管理型服务兜底用CustomRobotTxt拦截/robots.txt阻止搜索引擎爬你的内网面板。排错与日常运维现象规则启用时报端口已被占用。原因别的规则或别的进程已经占了这个监听端口。动作改端口或先在 Lucky 里停掉占端口的规则。现象开了 TLS 但浏览器还是 HTTP 证书警告。原因证书模块里没有可用证书规则降级成了明文。动作先在 SSL 证书模块导入证书再重启该规则。现象保存规则时报前端域名冲突。原因同一个规则里两条子规则写了重复域名。动作域名归并到一条子规则或拆分到不同规则。现象白名单模式下突然全员 403。原因白名单条目过了有效时间被自动清掉了。动作重新添加 IP 或网段并拉长有效时间。日志里两个字段最常用ClientIP是 Lucky 认定的客户端 IP开了透传时是解析出来的真实 IPRemoteIP是直接和 Lucky 建连的地址前面有代理时两者不同。看到禁止访问字样说明是名单或 UA 过滤拦的不是后端的问题。落地建议先建一条单域名、单后端、80端口的最小规则浏览器里把页面打开确认转发链路通。再启用 TLS 和 Basic 认证把服务从明文、无门槛变成加密、有门槛。最后收紧名单切到 IP 白名单、开访问日志并把整份规则 JSON 导出留底——下次加域名时照着改就行。做完这三步你的内网服务就有了一个稳定、可回滚的公网入口。【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表