跳到主要内容

Web服务

功能介绍

Web模块提供了简易的反向代理、重定向、URL跳转、静态文件服务等功能。

基础使用说明

添加Web服务规则

添加Web服务规则

菜单===>Web服务===>Web服务规则列表===>添加Web服务规则

文档只针对小白用户,只须填写/关注下面参数

  1. 操作模式

    1. 简易模式:满足大多数人使用要求
    2. 定制模式:提供更多可定制的参数 小白用户切勿修改填写定制模式下的任何参数
  2. 监听类型

    1. 你可以两种都勾上。
    2. 没有公网V4的情况下只勾上v6就足够了。
    3. 小米路由v4的443和80被系统占用,如果你要使用这两个端口可以使用v6的80和443
  3. 监听端口

    1. 所谓隐藏端口只是http使用了80监听端口,https使用了443监听端口,除非你明确知道你的运营商没有禁用80和433端口,否则不建议使用这两个端口。
    2. 支持两条不同的Web服务规则,一条启用TLS(HTTPS),一条不启用TLS(http)监听同一个端口.
  4. 防火墙自动放行

    1. Lucky运行在Openwrt等路由器环境,并且由iptables控制防火墙时此功能可以自动控制端口开放关闭
    2. 如果你的Lucky运行在Windows或者Docker环境下可以关闭此功能
  5. TLS开关

    1. 决定你是否使用https
    2. 证书请在 菜单===>安全相关===>SSL证书 添加管理,每次手动添加证书后需要重启一次Web服务规则证书才生效。
  6. 添加Web服务子规则

    1. 你可以添加任意条Web服务子规则
    2. 子规则中的Web服务类型支持反向代理重定向URL跳转
    3. 子规则中的前端域名添加的就是你所需的域名,不要包含http://开头部分,直接填写域名即可。例如 123.abc.com
    4. 虽然前端域名与路径这部分参数支持 123.abc.com/def 这种带路径的方式,但不建议用作反向代理,只建议做跳转或重定向使用。使用路径形式反代有任何问题都不要反馈给开发者。
    5. 子规则中的后端地址添加的就是你的内网的服务地址 ,例如 http://192.168.36.180:28888 , 当后端服务是带有自签证书的https服务时,你需要在定制模式中启用 **忽略后端TLS证书验证
    6. 当服务类型是重定向URL跳转时,后端地址你可以填写任意网址。重定向使用时支持 https://{host}:{port}的形式,实现http跳转https
    7. 子规则中的BasicAuth认证功能可以让陌生人不能轻易访问你的Web服务。
    8. 携带客户端IP、追加客户端IP、跨域支持等更多功能可在定制模式中查看。小白直接忽略。

使用注意

使用注意
  1. 添加完规则后要第一时间留意规则开关是否显示为
  2. 或者查看添加Web服务规则旁边的模块日志,看是否存在 启用反向代理规则[http][:16666]成功" 这类的日志。
  3. 如果日志提示规则启用出错,请更换监听端口。
  4. 外网无法访问时,查看默认子规则和各个子规则是否有访问日志显示。如果没有访问记录自行检查防火墙/路由ipv4端口转发等自身网络设置。
  5. 有问题先查阅常见问题中 Web服务相关问题。

HTTP跳转HTTPS

HTTP跳转HTTPS
  1. 本节操作的前提是你已经创建成功一条https规则,并且外网可以访问。
  2. 新创建一条Web服务规则,注意这条新的Web服务规则不要启用TLS
  3. 选择定制模式
  4. 在默认子规则中选择Web服务类型为 重定向
  5. 如果你https规则监听的是443端口,那么你在这条新规则的监听端口填80(你要自行确保你的80端口未被占用), 默认子规则中的默认目标地址填写 https://{host}
  6. 如果你https规则监听的是非443端口,那么你在这条新规则的监听端口填和你https同样的端口(你要自行确保你的80端口未被占用), 默认子规则中的默认目标地址填写 https://{host}:{port}
  7. 如果你https规则监听的是非443端口,并且你在这条新规则的监听端口和你https端口不一致,例如https端口使用了 16601,那么你可以在默认目标地址里面写明你的https端口,默认子规则中的默认目标地址填写 https://{host}:16601
  8. 需要注意:两条规则的监听类型要完全一致,不能一条监听tcp6而另外一条监听tcp

可用变量

用于后端地址,跳转地址

{host}: 请求主机名/域名,不含端口
{port}: 访问端口
{hostAndPort}: 请求主机名/域名,含端口
{path}: 请求路径
{PATH}: 请求路径(不含前面的/)
{ClientIP}: 客户端IP,优先从请求头获取
{RemoteIP}: 客户端IP,不会从请求头获取
{time}: 当前时间,格式:2006-01-02 15:04:05
{domainPartX}: 末尾X为数字1开始,获取请求host第X段,段以.分割
{pathPartXXX}: 末尾X为数字1开始,获取请求路径的第X段 ,段以/分割
{数字}: 前端域名含有*通配符时,表示第N个通配符匹配的字符串,从1开始, {1}
{STUN_规则名_ADDR}: STUN规则穿透地址
{STUN_规则名_IP}: STUN规则穿透IP
{STUN_规则名_PORT}: STUN规则穿透端口

常见问题

我如何才可以隐藏端口?
  1. 不存在所谓的“隐藏端口”。
  2. 所谓的“隐藏端口”只是指你的 80/443 端口没有被运营商封禁。
  3. 如果你启用了 TLS,你的 HTTPS Web 服务规则监听 443 端口;或者你未启用 TLS, HTTP Web 服务规则监听 80 端口。此时外网访问http/https://{域名/ip}就不需要带端口。
反向代理怎么设置支持 Websocket ?

默认支持,不用其它设置。

提交修改Web服务规则后,提示请求出错,被退出登陆页面。
  1. 这种情况只会出现在通过lucky反向代理访问Lucky后台的情况下。
  2. 这是因为修改Web服务规则后需要重启规则(关闭端口再打开)。
  3. 如果您直接使用域名加Lucky后台端口的方式,则不会出现此问题。
为什么设置了反代Windows远程控制/FTP/samba/SSH 端口,但使用不了。
  1. 反向代理是通过接收客户端的请求,并将请求转发到目标服务器的代理服务器来实现的。因此,只有使用了HTTP/HTTPS协议的应用程序才能通过反向代理进行访问。
  2. 对于Windows远程控制、FTP、Samba等应用程序,它们通常使用了其他协议,例如RDP、FTP、SMB等,因此无法使用反向代理进行访问。在这种情况下,需要使用端口转发等方式来实现访问。
为什么我上传了Cloudflare的证书,浏览器方式显示不安全?

1.Cloudflare证书属于自签证书,肯定显示不安全,请使用ACME申请证书。

偶尔/经常通过域名无法访问个别子规则反向代理
  1. 自己ping一下访问的域名,看是否正确。
  2. 尽量不要使用泛域名来解析,使用明确的域名。
可道云设置反向代理后无法访问
  1. 升级到2.0版本
  2. 编辑Web服务规则 ,操作模式切换到 定制模式
  3. 可道云所在的子规则里面开启 追加客户端协议头到指定Header
  4. 自定义Header Key填写 X-Forwarded-Proto 并保存即可。
反向代理unbraid通过域名无法访问,需要在域名后面加上/login
  1. 升级到2.0版本
反向代理HomeAssistant 出现提示 400 Bad Request

在HomeAssistant configuration.yaml配置里面要设置IP白名单

华为路由/小米路由登陆页面无法反代

打开定制模式,启用 使用目标地址Host

群晖/绿联 WebDAV反代后,挂载到windows无法修改文件名

打开定制模式,启用 使用目标地址Host

访问页面显示502 BadGateway
  1. 确保lucky 网络环境下可访问 后端地址。
  2. 查询截图对应子规则的访问日志 截图向网友请教。
其他上述未提到的疑问,均可以尝试
  1. 打开定制模式,启用 使用目标地址Host
  2. 关闭/打开 定制模式中的万事大吉开关
  3. 先确保可以使用nginx反代成功再向开发者反馈。
Nginx 配置应该填在哪里?

lucky的Web服务没有基于Nginx,只兼容了proxy_set_header,proxy_hide_header,add_header等少部分配置。

启用BaseAuth后不断弹出登陆窗口

此情况建议只对/路径启用认证

为什么有时能够访问,有时却无法访问?有些域名可以正常访问,而有些则无法访问。

当子规则日志中没有访问记录时,这表明流量尚未传输至Lucky端。请检查您的网络连接是否正常,并学会在手机端安装相关应用程序,使用ping来检测域名查询结果是否与Lucky端的DDNS结果一致。

为什么我设置了DDNS IPv4 获取到了公网IP,但还是没法访问?

获取到公网IPv4并不代表你有公网IP。

lucky同一局域网内无法通过域名访问反代,手机流量却可以。

在同一局域网内无法通过域名访问反向代理,这可能是由于NAT回环问题造成的。您可以自行寻找解决方案,这与lucky无关。

无法访问,浏览器提示ERR_UNSAFE_PORT

尽量避免使用以下端口
1, // tcpmux
7, // echo
9, // discard
11, // systat
13, // daytime
15, // netstat
17, // qotd
19, // chargen
20, // ftp data
21, // ftp access
22, // ssh
23, // telnet
25, // smtp
37, // time
42, // name
43, // nicname
53, // domain
77, // priv-rjs
79, // finger
87, // ttylink
95, // supdup
101, // hostriame
102, // iso-tsap
103, // gppitnp
104, // acr-nema
109, // pop2
110, // pop3
111, // sunrpc
113, // auth
115, // sftp
117, // uucp-path
119, // nntp
123, // NTP
135, // loc-srv /epmap
139, // netbios
143, // imap2
179, // BGP
389, // ldap
465, // smtp+ssl
512, // print / exec
513, // login
514, // shell
515, // printer
526, // tempo
530, // courier
531, // chat
532, // netnews
540, // uucp
556, // remotefs
563, // nntp+ssl
587, // stmp?
601, // ??
636, // ldap+ssl
993, // ldap+ssl
995, // pop3+ssl
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
6000, // X11
6665, // Alternate IRC
6666, // Alternate IRC
6667, // Standard IRC
6668, // Alternate IRC
6669, // Alternate IRC