Docker 部署多节点 Looking Glass 面板NetMirror

最近因为客户需要做四线监控测试,我们在网上找了一圈 Looking Glass 面板,结果发现市面上现有的项目大多是基于 PHP 的老旧方案,要么界面陈旧、功能有限,要么已经多年无人维护,根本无法满足我的需求。

于是,我们干脆决定自己动手,联合朋友一起开发了一个全新的 Looking Glass 项目 —— NetMirror,希望能为各大 IDC 运营商、oneman 运维以及广大网络爱好者提供更现代、更易用的解决方案。

在此也特别感谢 wikihost-opensourceHybula ,他们的项目为我们提供了很多设计和架构上的灵感。

NetMirror 是什么?

NetMirror 是一个功能丰富、界面美观的现代化 Looking Glass 服务端面板,适用于展示和测试多线路网络节点状态。它支持常见的网络诊断工具(如 ping、traceroute、mtr、speedtest 等),并支持多地区节点统一展示,方便用户对比各线路的性能和可达性。

官方 Demo

开源地址:https://github.com/catcat-blog/NetMirror (欢迎点点 star)
我的博客说明地址 : https://catcat.blog/docker-install-netmirror.html
Demo 移动端已修复

功能特性

  • 现代 UI: 基于 Vue3 TailwindCSS 打造的响应式界面。
  • 网络工具:集成了 Ping、iPerf3 和 Speedtest,BGP 接口等一套工具。
  • 实时流量:实时监控网络接口流量。
  • 交互式 Shell: 用于基本诊断的模拟 Shell 环境。
  • 轻松部署:以单个 Docker 容器的形式提供。
  • 可定制:通过环境变量配置功能和服务器详情。
  • 多节点支持: 考虑到部分商家的地区很多,同时也新增了主从地区切换的模块。
  • 安全设计:仅暴露面板与相关接口,节点通过 gRPC 安全通信。

界面预览










部署
Docker 部署
克隆仓库

git clone https://github.com/Yuri-NagaSaki/NetMirror.git cd NetMirror

创建环境文件
复制环境文件示例以创建您自己的配置。

cp .env.example .env

注意:如果 .env.example 文件不存在,您可以创建一个空的 .env 文件,并从下表中添加您需要的变量。

自定义您的配置 (可选)
编辑 .env 文件以设置您的服务器位置、公网 IP 地址和其他选项。

启动服务:

services:
  als:
    image: soyorins/netmirror:latest
    container_name: looking-glass-e
    restart: always
    network_mode: host
    user: root
    env_file:
      - .env
    volumes:
      - ./data:/data
      - ./.air.toml:/app/.air.toml
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:${HTTP_PORT:-80}/"]
      interval: 30s
      timeout: 10s
      retries: 3
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

docker compose up -d 

应用将可以通过 http:// 访问。默认端口是 3000,可以通过 HTTP_PORT 环境变量进行更改。

点赞
  1. Dimigron说道:

    牛逼

  2. sayyiku说道:

    @KFC #8

    因为lg属于比较需要电脑的测试了,不考虑手机端操作了

  3. sayyiku说道:

    @rudaiweishen #33

    是的

    # === LOOKING GLASS NODES CONFIGURATION / Looking Glass 节点配置 ===
    # Node list format / 节点列表格式: NAME1|LOCATION1|URL1;NAME2|LOCATION2|URL2
    # Example / 例如: "London|London, UK|http://IP:Port;Singapore|Singapore, SG|http://IP:Port;Tokyo|Tokyo, JP|http://IP:Port"
    LG_NODES=London|London, UK|http://IP:Port;Singapore|Singapore, SG|http://IP:Port;Tokyo|Tokyo, JP|http://IP:Port;Frankfurt|Frankfurt, DE|http://IP:Port;New York|New York, US|http://IP:Port;Los Angeles|Los Angeles, US|http://IP:Port
    
    

发表回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮