远程访问
需要在 LAN 外使用 Vyline 时,除了 Vyline 自身的 remote access 控制,还应准备一条经过认证的访问路径。
不要直接发布到 Internet
避免从路由器直接 port forward 到 Vyline 的 3000/tcp,应使用 VPN 或带认证的 reverse proxy / tunnel。
只有需要远程访问时才使用本页
如果只在家庭 LAN 或同一设备上使用 Vyline,就不需要 Cloudflare、Tailscale、WireGuard 或 reverse proxy。下面只比较确实需要从外部连接时的方案。
方案
| 方式 | 适合场景 | 特点 |
|---|---|---|
| Cloudflare Tunnel + Access | 浏览器访问 | 无需 inbound port;由 Access 添加认证 |
| Tailscale | 自己的设备 | private overlay network;不需要公开 DNS |
| WireGuard | 自建 VPN | 灵活,但 routing 与密钥需要自行管理 |
| Reverse proxy | 已有 Nginx/Caddy 环境 | TLS、认证与 header 自行管理 |
Vyline 侧设置
VYLINE_LAN_ACCESS=false 是默认值。若要把 LAN 上其他设备作为 subdevice,应启用 LAN access,并使用 UI pairing 发出的 session。
VYLINE_TRUST_REMOTE_OWNER
设为 true 后,会启用把 remote request 当作 owner 的路径,前提是 trusted proxy/VPN 已经完成认证。只有 Tailscale ACL、Cloudflare Access 或已认证 reverse proxy 已限制谁能到达 Vyline 时才使用。
选择 Cloudflare Tunnel 时
services:
vyline:
image: ghcr.io/tqmane/vyline:latest
networks: [vyline_net]
cloudflared:
image: cloudflare/cloudflared:latest
command: [tunnel, --no-autoupdate, run, --token, ${CLOUDFLARE_TUNNEL_TOKEN}]
depends_on: [vyline]
networks: [vyline_net]
networks:
vyline_net:
driver: bridge使用 Cloudflare Tunnel 时,origin 是 http://vyline:3000。这是 Docker 内部 DNS 名,不是电脑浏览器里输入的主机名。如果选择 Tailscale 或 WireGuard,就不需要这个 companion container。
不要把秘密信息提交到 repository
不要把 CLOUDFLARE_TUNNEL_TOKEN、LINE session/token、data/、storage/ 或 backup archive commit 到公开仓库。