局域网访问
Luker 以 Web 服务的形式运行,默认仅接受本机连接,同一网络中的手机、平板或另一台电脑无法访问。开启局域网访问后,这些设备即可通过浏览器使用同一套 Luker 数据。
常见用途:
- 电脑运行服务,手机或平板随时使用
- 家中多台设备共享同一套角色卡与聊天记录
- 在 iPhone 或 iPad 上使用 Luker,iOS 没有 app
如果目标是在两台 Luker 之间同步数据,请见局域网同步,那是另一项功能。
默认配置为何无法访问
以下设置会阻止局域网访问:
listen: false— Luker 仅绑定回环地址,其他设备根本无法建立连接。whitelistMode: true— Luker 拒绝所有不在whitelist列表中的地址。
在默认配置下,局域网设备要么连接失败,要么在开启监听后收到 HTTP 403 Forbidden 页面,服务端控制台同时打印 Blocked connection from <ip>。
要允许局域网访问,需要同时修改监听设置与白名单。
开启监听
打开 Luker 根目录下的 config.yaml,设置:
listen: truelistenAddress 与 protocol 保持默认即可:
listenAddress:
ipv4: 0.0.0.0
ipv6: "[::]"
protocol:
ipv4: true
ipv6: false启动后,控制台会打印 Luker is listening on IPv4: 0.0.0.0:8000,而不再是回环地址。修改文件后需重启服务。
允许局域网设备访问
方式一:将局域网加入白名单
保持 whitelistMode: true,把设备所在的网段加入列表:
whitelistMode: true
whitelist:
- ::1
- 127.0.0.1
- 192.168.0.0/16支持单个地址、CIDR 网段以及 192.168.1.* 这类通配符。请保留 127.0.0.1 与 ::1,否则本机也无法访问。若不确定网段,可一次加入全部私有地址范围:
whitelist:
- ::1
- 127.0.0.1
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16方式二:关闭白名单
将 whitelistMode 设为 false 后,Luker 会接受任意地址。此配置被视为不安全,Luker 要求至少还有一层防护,否则在启动时退出:
- 启用 Basic Auth,见鉴权与安全
- 启用多用户账户,并为每个管理员用户设置密码
- 设置
securityOverride: true,仅用于调试
查询主机地址
在运行 Luker 的机器上查询其局域网地址:
# Windows
ipconfig
# macOS
ipconfig getifaddr en0
# Linux
hostname -I找到形如 192.168.1.23 的私有网段 IPv4 地址。
从另一台设备访问
在另一台设备上打开浏览器,输入主机地址与端口:
http://192.168.1.23:8000使用 http://,不要用 https://。地址必须是主机的局域网地址,而非 localhost。
Docker
快速开始中的 Docker compose 文件将端口绑定到 127.0.0.1:8000,请求在到达 Luker 之前就会被拦截。将端口映射改为在所有网卡上发布,并在挂载的 config.yaml 中设置 listen: true 与白名单:
ports:
- 0.0.0.0:8000:8000安全
局域网并不天然可信,公共 Wi-Fi 尤其如此。向其他设备开放 Luker 之前:
- 启用 Basic Auth 或多用户账户系统。
- 只有少数设备需要访问时,保持白名单范围尽量窄。
- 不要在路由器上配置端口转发。若需从局域网外访问 Luker,请改用 VPN 或隧道服务。
iOS
iOS 没有 app,iPhone 与 iPad 通过浏览器经网络访问。原因与设置步骤见 iOS。
排查
- 出现 403 Forbidden 页面 — 设备地址不在白名单中,将其加入或放宽网段。
- 连接超时或被拒绝,且控制台没有任何输出 — 服务不可达。检查
listen是否为true,以及主机防火墙是否放行该端口:- Windows:在防火墙中放行 Node.js,并将网络配置文件设为「专用」。
- Linux:
sudo ufw allow 8000 - macOS:在「系统设置」中允许 Node 进程的传入连接。
- 只有主机能连接 — 另一台设备使用的仍是
localhost,请改用主机的局域网地址。