lan-sheriff  局域网警长
lan-sheriff 局域网警长

lan-sheriff 局域网警长

https://github.com/291-Group/LAN-Sheriff

docker run -d \
  --name lan-sheriff \
  --privileged \
  --net=host \
  -v /mnt/scsi2.1-1/docker/lan-sheriff:/data \  
  -e LS_CAPTURE_IFACE=br-lan \
  -e LS_SUBNET=10.10.10.0/24 \
  ghcr.nju.edu.cn/291-group/lan-sheriff:latest

Docker 根目录:/mnt/scsi2.1-1/docker

docker compose

#https://github.com/291-Group/LAN-Sheriff
#http://10.10.10.10:2911/
services:
  # 定义一个服务,名字叫 lan-sheriff
  lan-sheriff:
    # 使用的镜像:从 ghcr.io 拉取 lan-sheriff:latest 最新版镜像
    image: ghcr.io/291-group/lan-sheriff:latest
    # 容器名称,docker ps 看到的名字
    container_name: lan-sheriff
    # network_mode: host → 主机网络模式
    # 容器**不单独创建虚拟网卡,直接复用宿主机网卡**,才能抓局域网数据包,这是本程序关键
    network_mode: host
    # pid: host → 容器复用宿主机进程命名空间,可以看到宿主机所有进程
    pid: host
    # privileged: true 特权模式,给予容器很高权限,抓包、操作网络需要这个
    privileged: true
    # 重启策略:除非手动stop,否则自动重启(开机自启、崩溃自动拉起)
    restart: unless-stopped
    volumes:
      # 挂载目录:宿主机当前目录下 ./data 映射到容器内 /data
      # 所有配置、数据库、日志都存在这里,删除容器数据不会丢失
      - ./data:/data
    environment:
      # 环境变量
      - TZ=Asia/Shanghai # 设置时区上海,日志时间是北京时间
      - LAN_SHERIFF_DATA_DIR=/data # 程序指定数据存放目录为容器内 /data
      # ========== 关键新增:开启Patrol巡逻模式,监控局域网其他设备 ==========
      - LAN_SHERIFF_MODE=patrol
      # 指定内网网段 10.10.10.0/24
      - LAN_SHERIFF_CIDR=10.10.10.0/24
      # 网卡改成你NAS的物理网卡,例如 eth0 / enp2s0,需要根据你的NAS实际网卡修改
      - LAN_SHERIFF_IFACE=ovs_eth1
      # DL = 代理,给容器内网络请求走代理
      - HTTP_PROXY=http://10.10.10.16:20122
      - HTTPS_PROXY=http://10.10.10.16:20122
      # 同时写小写 http_proxy / https_proxy,兼容不同程序(有些程序只识别小写)
      - http_proxy=http://10.10.10.16:20122
      - https_proxy=http://10.10.10.16:20122
      # NO_PROXY:不走代理的地址段
      # localhost本机、127回环、192.168.x.x、10.x.x.x内网网段,访问内网不走代理
      - NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8
      - no_proxy=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8
    healthcheck:
      # 健康检查:每隔60秒执行命令 lan-sheriff status 检测程序是否正常
      test: ["CMD", "lan-sheriff", "status", "--data-dir", "/data"]
      interval: 60s # 每60秒检测一次
      timeout: 10s # 检测命令最多等待10秒,超时判定异常
      retries: 3 # 连续失败3次,标记容器不健康
      start_period: 20s # 容器刚启动的前20秒,不做健康检查,给程序启动缓冲时间

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注