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上的。
本人知识浅薄,若有错误,欢迎斧正。
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上的。
本人知识浅薄,若有错误,欢迎斧正。