警告:本项目 99% 的代码由 AI 编写,请谨慎使用,如有问题欢迎反馈

最近给 Link42 做了一套配套 Looking Glass,项目叫 link42-lg,主要目标是让使用 Link42 的网络可以比较快地部署一个公开可用、界面相对完整的 LG 页面。

image.webp

项目地址:

https://github.com/pmman289/link42-lg

Docker 镜像:

pmman/link42-lg

主要特性

  • 作为 Link42 的配套 LG 使用,直接对接 Link42 第三方 Looking Glass API
  • 前后端一体部署,后端代理 API,不会把 API Token 暴露在浏览器里
  • 支持 Docker 快速部署
  • 支持 SQLite 持久化配置
  • 支持管理员登录后配置:
    • API Base
    • API Token
    • 公开节点
    • 节点显示名称
    • 节点图标
    • 协议公开隐藏规则
  • 公开页面会隐藏节点地址信息
  • 支持按地域筛选节点
  • 支持 BIRD route lookup
  • 支持 BIRD protocols 查看
  • 支持 BIRD protocol detail 查看
  • 对 eBGP 协议详情做了结构化展示
  • 支持按来源 ASN 查询首选路由
  • 支持 ping / traceroute
  • 支持中英文切换和暗色模式
  • 单节点查询有并发限制,避免被多访客打穿后端或节点 Agent

Docker 部署示例

注意本项目前置依赖 Link42,使用前请先部署 Link42 并在其主控生成 token:https://github.com/pmman289/link42

services:
  link42-lg:
    image: pmman/link42-lg:latest
    container_name: link42-lg
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      LG_ADMIN_PASSWORD: "change-me"
      LG_COOKIE_SECURE: "true"
      LG_NODE_CONCURRENCY_LIMIT: "2"
    volumes:
      - ./data:/app/data
      - ./config:/app/config

启动:

docker compose up -d

然后访问:

http://你的服务器:8000

首次进入后点击右上角登录,使用 LG_ADMIN_PASSWORD 设置的密码进入管理页,配置 Link42 API 地址和 Token 即可。

持久化目录

容器里主要需要挂载两个目录:

/app/data    SQLite 数据库目录
/app/config  配置文件目录

默认数据库路径:

/app/data/looking-glass.sqlite3

项目定位

这个项目不是一个通用万能 LG,而是偏向 Link42 配套使用 的轻量 LG。适合已经在使用 Link42,并希望快速给自己的网络提供一个公开查询页面的场景。

欢迎试用、提 issue 或 PR。