VMware CentOS 7 上的完整部署Pentagi

📅 2026/8/3 11:28:22
VMware CentOS 7 上的完整部署Pentagi
PentAGI 在 VMware CentOS 7 上的完整部署实战从网络踩坑到正常访问1. 写在前面PentAGI 是一个基于大语言模型的自动化渗透测试平台项目地址https://github.com/vxcontrol/pentagi它可以在 Docker 沙箱中执行渗透测试支持多种 LLM Provider并提供 Web UI、REST/GraphQL API、报告导出等能力。本文整合了安装配置指南和实际踩坑记录按完整部署流程整理适合同样使用 VMware CentOS 7 环境的人参考。2. 环境说明本文基于以下环境Windows 宿主机VMware WorkstationCentOS 7 虚拟机VMware NAT 网络模式虚拟机 IP192.168.137.136VMware NAT 网关192.168.137.2Docker CEDocker Compose v2.21.0PentAGI Installer v2.0.0-87ac00fPentAGI 最终版本2.1.0-879e87c如果你的 IP、网卡名、镜像源或防火墙配置不同请按实际环境调整。3. 系统要求PentAGI 官方最低要求Docker 和 Docker Compose2 vCPU4GB 内存20GB 可用磁盘可访问互联网实际建议4 vCPU8GB 或更多内存独立测试网络环境已获得授权或自有测试目标4. 总体部署流程准备 VMware 虚拟机配置 CentOS 网络安装 Docker 和 Docker Compose配置 Docker 镜像源下载 PentAGI 部署文件配置.env预拉取 Docker 镜像启动 PentAGI访问 Web UI创建第一个 Flow5. 准备 VMware 虚拟机在 VMware 中关闭虚拟机后编辑虚拟机设置内存至少 4096 MB处理器至少 2 核建议 4 核网络适配器NAT网络适配器勾选 Connected在 Windows 宿主机查看 VMware 虚拟网卡ipconfig常见 VMware NAT 网段VMware Network Adapter VMnet8: 192.168.137.1这里有一个关键区别192.168.137.1是宿主机上的 VMware 虚拟网卡地址192.168.137.2才是 VMware NAT 网关地址虚拟机默认网关必须配置为192.168.137.2。6. 配置 CentOS 网络6.1 检查当前网络ipaddr showiproutecat/etc/resolv.conf重点检查三项网卡是否 UP网卡是否拿到 IP是否有默认路由常见异常现象ping -c 3 114.114.114.114 connect: Network is unreachable这说明虚拟机没有可用网络路由。检查网卡iplinkshow如果看到2: ens33: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT说明网卡处于 DOWN 状态。6.2 推荐静态 IP 配置编辑网卡配置文件vi/etc/sysconfig/network-scripts/ifcfg-ens33写入以下内容TYPEEthernet BOOTPROTOnone DEFROUTEyes NAMEens33 DEVICEens33 ONBOOTyes NM_CONTROLLEDno IPADDR192.168.137.136 NETMASK255.255.255.0 GATEWAY192.168.137.2 DNS1223.5.5.5 DNS2119.29.29.29如果使用 DHCPBOOTPROTOdhcp GATEWAY192.168.137.2 DNS1223.5.5.5 DNS2119.29.29.296.3 固定使用 network.service为避免 NetworkManager 与 network.service 冲突建议systemctl stop NetworkManager systemctl disable NetworkManager systemctlenablenetwork清掉旧配置后重启ipaddr flush dev ens33iproute flush dev ens33 systemctl restart network6.4 验证网络ipaddr show ens33iprouteping-c3223.5.5.5nslookupdocker.io正常结果192.168.137.136/24 default via 192.168.137.2 dev ens337. 安装 Docker 和 Docker Compose7.1 安装基础工具yuminstall-yyum-utilswgetunzip7.2 添加 Docker 官方源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo7.3 安装 Dockeryuminstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin7.4 启动 Dockersystemctlenable--nowdocker验证docker--versiondockercompose version如果需要普通用户使用 Dockerusermod-aGdocker$USERnewgrpdocker注意加入 docker 组等同于授予 root 权限只在可信环境使用。8. 配置 Docker 镜像源Docker Hub 在部分网络环境下无法直接访问建议先配置镜像源。8.1 写入镜像源cat/etc/docker/daemon.jsonEOF { registry-mirrors: [ https://docker.1ms.run ] } EOF备选镜像源{registry-mirrors:[https://docker.m.daocloud.io,https://hub-mirror.c.163.com,https://mirror.baidubce.com]}8.2 重启 Dockersystemctl restartdocker8.3 验证镜像源dockerinfo|grep-A5Registry Mirrorsdockerpull hello-world9. 下载 PentAGI 部署文件官方提供了安装器但在 Docker Hub 访问受限的环境中安装器会因为网络检查不通过而卡住。建议直接使用手动部署方式。9.1 创建目录mkdir-p/opt/pentagicd/opt/pentagi9.2 下载配置和 Compose 文件curl-o.env https://raw.githubusercontent.com/vxcontrol/pentagi/master/.env.examplecurl-odocker-compose.yml https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml9.3 创建挂载用空配置touchexample.custom.provider.ymltouchexample.ollama.provider.yml10. 配置 .envvi/opt/pentagi/.env10.1 配置 LLM Provider至少需要配置一个语言模型 Provider。DeepSeekDEEPSEEK_API_KEY你的DeepSeek密钥OpenAIOPEN_AI_KEY你的OpenAI密钥本地 OllamaOLLAMA_SERVER_URLhttp://localhost:11434OLLAMA_SERVER_MODEL你的模型名其他可选 ProviderANTHROPIC_API_KEYGEMINI_API_KEYGLM_API_KEYKIMI_API_KEYQWEN_API_KEY10.2 配置外部访问默认只允许本机访问。如果需要从 Windows 宿主机或其他电脑访问PENTAGI_LISTEN_IP0.0.0.0PUBLIC_URLhttps://虚拟机IP:8443CORS_ORIGINShttps://localhost:8443,https://虚拟机IP:8443示例PENTAGI_LISTEN_IP0.0.0.0PUBLIC_URLhttps://192.168.137.136:8443CORS_ORIGINShttps://localhost:8443,https://192.168.137.136:844310.3 修改安全配置首次部署建议修改COOKIE_SIGNING_SALT随机字符串PENTAGI_POSTGRES_USERpostgresPENTAGI_POSTGRES_PASSWORD强密码LOCAL_SCRAPER_USERNAME自定义用户名LOCAL_SCRAPER_PASSWORD自定义密码10.4 可选配置代理PROXY_URLhttp://代理IP:端口搜索引擎DUCKDUCKGO_ENABLEDtrueSPLOITUS_ENABLEDtrueTAVILY_API_KEYPERPLEXITY_API_KEY11. 预拉取 Docker 镜像如果 Compose 拉取镜像超时可以先手动从镜像源拉取并打标签。11.1 拉取镜像dockerpull docker.1ms.run/vxcontrol/pentagi:latestdockerpull docker.1ms.run/vxcontrol/pgvector:latestdockerpull docker.1ms.run/vxcontrol/scraper:latest11.2 打标签dockertag docker.1ms.run/vxcontrol/pentagi:latest vxcontrol/pentagi:latestdockertag docker.1ms.run/vxcontrol/pgvector:latest vxcontrol/pgvector:latestdockertag docker.1ms.run/vxcontrol/scraper:latest vxcontrol/scraper:latest12. 启动 PentAGI12.1 检查配置cd/opt/pentagidockercompose config12.2 启动服务dockercompose up-d12.3 查看状态dockercomposeps正常状态Container pentagi Started Container pgvector Healthy Container scraper Started Container pgexporter Started查看日志dockercompose logs-f13. 访问 PentAGI13.1 访问地址CentOS 虚拟机本机访问https://127.0.0.1:8443Windows 宿主机访问https://192.168.137.136:8443注意不要在 Windows 浏览器访问https://127.0.0.1:8443那访问的是 Windows 宿主机自己。13.2 默认账号adminpentagi.com admin首次登录后立即修改默认密码。13.3 浏览器要求PentAGI 前端要求Firefox 104 或更高版本Chrome 97 或更高版本Edge 97 或更高版本如果 Firefox 版本太旧页面会报(intermediate value)().findLast is not a function解决办法升级 Firefox或使用 Windows 宿主机上的新版 Edge/Chrome13.4 自签名证书PentAGI 默认使用自签名证书浏览器第一次访问会提示Potential Security Risk Ahead本地测试环境选择Advanced - Accept the Risk and Continue公网部署应替换为正式 SSL 证书。14. 首次使用登录后进入Flows点击New Flow选择Automation或Assistant选择 LLM Provider填写测试目标、范围和期望结果提交后监控执行过程示例任务Assess https://target.example for common web application vulnerabilities. Focus on authentication, file handling, and injection issues. Stay within the provided target only and summarize confirmed findings.15. 踩坑记录汇总15.1 CentOS 虚拟机没有网络现象connect: Network is unreachable原因ens33DOWN或没有默认路由。处理iplinksetens33 up dhclient ens33iproute replace default via192.168.137.2 dev ens33关键VMware NAT 网关是192.168.137.2不是192.168.137.1。15.2 network.service 启动失败现象Job for network.service failed because the control process exited with error code.日志RTNETLINK answers: File exists原因ifcfg-ens33存在重复配置NetworkManager 与 network.service 冲突。处理重写干净的静态配置并停用 NetworkManagersystemctl stop NetworkManager systemctl disable NetworkManager systemctlenablenetwork15.3 安装器网络检查不通过现象- DNS resolution failed for docker.io - Cannot reach external services via HTTPS - Cannot pull Docker images from registry原因安装器强制检查 Docker Hub 连通性但当前网络无法直接访问 Docker Hub。处理跳过安装器使用手动部署。15.4 daemon.json 写坏现象invalid character s looking for beginning of value原因手动编辑时删掉了 JSON 开头。处理cat/etc/docker/daemon.jsonEOF { registry-mirrors: [ https://docker.1ms.run ] } EOFsystemctl reset-faileddockersystemctl restartdocker15.5 镜像源白名单限制现象this image is not in the allowlist.原因部分镜像源只代理白名单仓库。处理换用docker.1ms.run或手动拉取后重新打标签。15.6 容器正常但 UI 打不开现象ss-tlnp|grep8443显示127.0.0.1:8443原因Compose 只把端口映射到了虚拟机本机。处理PENTAGI_LISTEN_IP0.0.0.0重建容器dockercompose downdockercompose up-d确认0.0.0.0:844316. 常用验证命令网络ipaddr show ens33iprouteping-c3223.5.5.5DNSnslookupdocker.ionslookupgithub.comDockerdockerinfodockercomposepsdockercompose logs pentagi--tail100端口ss-tlnp|grep844317. 经验总结网络排查顺序遇到Network is unreachable检查网卡是否 UP检查网卡是否拿到 IP检查是否有默认路由检查默认网关是否正确检查 DNS 是否可用Docker 排查顺序确认daemon.json是合法 JSON确认 Docker 能识别 Registry Mirrors先测试docker pull hello-world再测试项目实际需要的镜像不同镜像源白名单和稳定性不同逐个验证安装器不一定必须成功PentAGI 安装器会强制检查 Docker Hub 连通性。Docker Hub 访问受限时可以直接使用.env.example和docker-compose.yml手动部署。18. 安全提醒PentAGI 是渗透测试平台只允许用于自己拥有权限的系统已获得明确授权的目标隔离测试环境或 CTF 场景禁止对未授权系统执行扫描、探测或攻击操作。