Skip to content

建议在Ubuntu22.04上搭建&一些搭建避坑 #51

Description

@Sducabbagedog

1.强烈建议在Ubuntu22.04上搭建该项目,Ubuntu22.04虚拟机最少留30G硬盘空间.

在这个版本上搭建是最顺利的.我尝试在Ubuntu24.04版本上搭建,但是在搭建analyzer-monitor的时候会报错:
failed to solve: process "/bin/bash -c cd ./bcc-master && apt-get update && apt-get install -y zip bison build-essential cmake flex git libedit-dev libllvm14 llvm-14-dev libclang-14-dev python3 zlib1g-dev libelf-dev libfl-dev python3-setuptools liblzma-dev libdebuginfod-dev arping netperf iperf python3-pip linux-tools-$(uname -r) iproute2 linux-headers-$(uname -r) && mkdir ./build && cd ./build && cmake .. && make && make install && cmake -DPYTHON_CMD=python3 .. && pushd src/python/ && make && make install && popd && apt-get clean && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100
这个错误的主要是因为 linux-tools-$(uname -r) 和 linux-headers-$(uname -r),“容器里 uname -r 显示的是宿主内核版本,发行版仓库通常没有匹配的内核包(特别是宿主内核不是由该发行版直接提供时),所以 apt 找不到包 — 这会导致你在 Dockerfile 中安装这些包失败(这是你最早遇到安装失败的原因之一)。”大体的意思就是项目组件analyzer-monitor所需的基础镜像:dockerpa2025/packetscope:v1 是Ubuntu22.04的,但是我们在容器中使用uname -r返回的是我们宿主机Ubuntu24.04的内核版本,所以容器就会找不到这个软件源,导致安装不成功。
另外,我也尝试过在Ubuntu24上硬着头皮装,我最开始将 linux-tools-$(uname -r) 和 linux-headers-$(uname -r)改成通用版本linux-tools-generic 和linux-headers-generic, 但是这样子还是会缺bpftool,所以我尝试在analyzer-monitor组件的容器中手动装bpftool,结果不甚理想,项目能运行起来,但是UI界面下面三个小框初始化失败。
所以,别走弯路了,用Ubuntu22.04搭建吧。

2.guarder需要更改一下网络接口:

在PacketScope/modules/Guarder/Dockerfile中会创建一个默认启动命令:CMD ["./conn-tracker", "-iface", "eth0", "-interval", "5", "-api", ":8080"] ,它将服务挂载到eth0端口,如果虚拟机的话应该将这个端口改成ens33,你可以运行ifconfig命令看一下。

3.有关docker的pull错误

你可能会出现docker的pull错误,如:
failed to solve: dockerpa2025/packetscope:v1: failed to resolve source metadata for docker.io/dockerpa2025/packetscope:v1: failed to do request: Head "https://docker.mirrors.ustc.edu.cn/v2/dockerpa2025/packetscope/manifests/v1?ns=docker.io": EOF
这种的应该是网络问题,就得看看docker镜像源或者科学上网了。如果是下面这种:
failed to solve: failed to fetch oauth token: Post "https://auth.docker.io/token": read tcp 192.168.67.129:52772->98.86.67.135:443: read: connection reset by peer
就是docker的buildkit认证问题,github上有一个解决该问题的,但是我没有完全搞懂,目前我的做法是先把用到的镜像pull下来再构建。也就三四个镜像,注意镜像packetscope-analyzer-monitor:v1.0是ananyzer-monitor组件搭载的时候构建的,并不是在Docker Hub上的。

本人知识浅薄,若有错误,欢迎斧正。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions