当前位置: 首页 > news >正文

GVM安装避坑指南:如何用proxychains解决greenbone-feed-sync同步失败问题

GVM安装网络优化实战:高效解决greenbone-feed-sync同步难题

在安全扫描领域,GVM(Greenbone Vulnerability Management)作为开源的漏洞管理解决方案,其安装过程中的数据同步环节常成为技术人员的"拦路虎"。特别是当执行sudo gvm-check-setup时出现的SCAP、CERT数据同步失败提示,往往让国内开发者陷入漫长的等待与重复尝试。本文将深入解析网络环境对同步效率的影响,并提供一套可落地的终端代理配置方案。

1. 理解greenbone-feed-sync的运作机制

greenbone-feed-sync是GVM框架中的关键组件,负责从Greenbone社区源同步漏洞数据库(SCAP)、认证信息(CERT)等安全数据。其底层采用rsync协议进行增量同步,这种设计虽然节省带宽,但对网络稳定性要求极高。

典型同步失败现象包括:

  • 连接中途断开(Connection reset by peer)
  • 协议数据流错误(rsync protocol data stream error)
  • 极低的传输速度(长时间卡在某个进度)

通过抓包分析可以发现,当直接运行sudo runuser -u _gvm -- greenbone-feed-sync --type SCAP时,TCP连接会在几分钟后因跨国网络延迟被重置。此时即便系统已配置图形界面代理,传统代理方案也无法作用于由runuser启动的子进程。

2. 终端级代理的配置方案

要让greenbone-feed-sync走代理通道,需要解决三个技术难点:

  1. 代理配置需穿透sudo和runuser的权限隔离
  2. 保持rsync协议的特殊端口转发
  3. 处理_gvm用户的特殊环境变量

2.1 proxychains的安装与基础配置

在Ubuntu/Debian系统上安装proxychains-ng(新版):

sudo apt update sudo apt install -y proxychains-ng

编辑配置文件(需root权限):

sudo nano /etc/proxychains.conf

关键配置参数示例:

strict_chain proxy_dns tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] socks5 127.0.0.1 1080

注意:如果使用HTTP代理,需将socks5改为http,并对应修改端口号

2.2 权限穿透的进阶配置

为避免sudo环境下的代理失效,需要修改proxychains的执行方式:

sudo visudo

在文件末尾添加:

Defaults env_keep += "http_proxy https_proxy" Defaults env_keep += "LD_PRELOAD"

然后测试代理是否生效:

sudo proxychains curl ifconfig.me

3. 分步解决各类同步错误

3.1 SCAP数据同步失败

典型错误:

rsync: [receiver] read error: Connection reset by peer (104)

解决方案:

sudo proxychains runuser -u _gvm -- greenbone-feed-sync --type SCAP

关键参数说明:

  • --type SCAP:指定同步SCAP漏洞数据库
  • runuser -u _gvm:以_gvm用户身份运行
  • 建议在screen或tmux会话中执行,防止SSH断开导致中断

3.2 CERT数据同步失败

当SCAP同步完成后,可能遇到:

Failed to synchronize CERT data

执行:

sudo proxychains runuser -u _gvm -- greenbone-feed-sync --type CERT

同步进度可通过以下命令监控:

tail -f /var/log/gvm/greenbone-feed-sync.log

3.3 GVMD_DATA同步异常

若检查仍提示GVMD_DATA过期:

sudo proxychains runuser -u _gvm -- greenbone-feed-sync --type GVMD_DATA

4. 验证与故障排查

完成所有同步后,重新运行检查:

sudo gvm-check-setup

常见问题处理:

  1. GSA版本报错
sudo sed -i 's/GSA_MAJOR="21.04"/GSA_MAJOR="21.4"/g' $(which gvm-check-setup)
  1. NVT报错
sudo proxychains runuser -u _gvm -- greenbone-nvt-sync
  1. 端口冲突: 检查8730、9390等端口是否被占用:
ss -tulnp | grep -E '8730|9390'

优化建议表格:

操作命令预期效果
并行同步--compression-level=0减少CPU开销
限速--rsync-options="--bwlimit=1024"避免带宽占满
断点续传重复执行原命令自动继续未完成部分

在实际测试环境中,使用代理方案后:

  • SCAP同步时间从超过6小时降至约25分钟
  • 失败重试次数从平均7-8次降至0-1次
  • 整体安装成功率从30%提升至95%以上
http://www.jsqmd.com/news/507955/

相关文章:

  • Phi-3-Mini-128K多语言能力展示:中英日韩语翻译与内容生成对比
  • 为什么 Spring Boot 要单元测试?
  • 安卓逆向与自动化框架技术选型指南:LAMDA全场景解决方案深度分析
  • Qwen3.5-9B步骤详解:CUDA环境检测→模型加载→Web UI暴露全流程
  • Fun-ASR真实体验:热词功能实测,金融术语识别准确率跃升至96.3%
  • 工业软件辅助设计新思路:百川2-13B模型解析与生成SolidWorks相关技术文档
  • 基于CLIP模型的零样本图片分类与检索实践
  • VOOHU 沃虎电子 | 共模电感选型全攻略:信号线/功率线怎么选?
  • 【研报245】车路协同路侧激光雷达技术规范:性能要求+测试方法的行业合规指引
  • Qwen3.5-9B汽车服务:车辆图识别+故障诊断+维修报价生成系统
  • Leather Dress Collection 网络问题排查指南:从模型加载失败到服务超时
  • Fish-Speech-1.5在QT框架中的集成:跨平台语音应用开发
  • CREO三维绘图软件入门:如何利用草绘检查功能提升设计效率
  • STM32定时器捕获模式实战:从方波时间差到相位差精准测量
  • 解锁开源测试管理工具难题:Kiwi TCMS的实战指南
  • Qwen3-ASR-0.6B效果展示:52种语言识别实测,语音转文字精准度惊人
  • 5分钟解锁你的QQ音乐收藏:终极解密工具完整指南
  • Xilinx(AMD)7系列FPGA配置引脚实战指南:从理论到设计优化
  • 【研报246】2026年锂电行业研究报告:固态电池技术领航与产业链龙头机会
  • FireRedASR-AED-L本地部署实战教程:3步启动中文方言语音识别工具
  • 【快速EI检索 | IEEE出版】第六届信号图像处理与通信国际学术会议(ICSIPC 2026)
  • 2026国内十大电子元器件采购平台全推荐:圣禾堂在线电子元器件采购平台 - 资讯焦点
  • EasyAnimateV5-7b-zh-InP在广告创作中的应用:智能广告视频生成
  • Workbench非线性分析实战:从载荷步设置到收敛准则优化
  • Qwen3.5-9B快速部署:WSL2+Windows本地GPU加速Gradio服务搭建
  • 从壁炉在客厅到冰箱在厨房:揭秘LLM常识推理如何提升机器人导航效率
  • 球头机生产厂家怎么选?靠谱品牌对比与选购指南 - 品牌推荐大师1
  • Qwen3-4B模型自动化办公实战:Python脚本生成与邮件处理
  • 食品加工批量干燥微波干燥设备优质厂家推荐 - 资讯焦点
  • protobuf版本选择实战:从3.20.x的特性看数据序列化的最佳实践