​引言​
如果你经常被 Docker 镜像拉取、GitHub 文件下载的龟速折磨,又不想依赖第三方加速服务(担心稳定性或隐私),今天分享的 ​​HubProxy​​ 可能正是你需要的。这个开源工具用一行命令就能部署,以极低资源消耗(内存 18MB)提供多场景加速,实测效果显著。下面从功能到部署,带你快速上手。

在这里插入图片描述

​一、HubProxy 能做什么?​

  1. ​Docker 镜像加速​
    支持 ​​Docker Hub​​、​​GitHub Container Registry (GHCR)​​、​​Quay.io​​ 等主流仓库。只需在原始镜像名前拼接你的代理域名,例如:

    # 加速 Docker Hub 官方镜像
    docker pull yourdomain.com/nginx# 加速 GHCR 镜像
    docker pull yourdomain.com/ghcr.io/sky22333/hubproxy
    

    原理:通过流式传输优化拉取流程,无需缓存镜像,节省磁盘空间。

  2. ​GitHub 文件加速​
    解决 Releases/Raw 文件下载慢的问题:

    # 原始链接
    https://github.com/user/repo/releases/download/v1.0.0/file.tar.gz# 加速链接(域名后直接拼接原链接)
    https://yourdomain.com/https://github.com/.../file.tar.gz
    

    支持嵌套脚本加速(如 curl | bash 中的 GitHub 链接)。

  3. ​离线镜像包下载​
    点击即可流式下载镜像的离线包(.tar),适用于内网或无 Docker 环境:

    # 通过代理域名 + 镜像名生成离线包链接
    https://yourdomain.com/v2/library/nginx/tags/latest?format=tar
    

    防抖设计避免重复请求。

  4. ​其他实用功能​

    • ​Hugging Face 模型加速​​:AI 开发者无需额外配置,直接代理下载链接
    • ​镜像搜索​​:直接网页搜索 Docker 官方镜像信息
    • ​安全审计​​:IP 限流、黑白名单、仓库访问日志(防止滥用)

​二、为什么选择自建?​

  • ​隐私可控​​:所有流量经过自己的服务器,避免第三方记录
  • ​灵活定制​​:支持自定义限流规则、上游代理(如走公司内网代理)
  • ​资源占用极低​​:单二进制文件(12MB),内存占用稳定在 18MB 左右
  • ​无厂商绑定​​:避免公共加速服务突然停用或限速

​三、快速部署指南​

​方案 1:Docker 部署(推荐)​
docker run -d \--name hubproxy \-p 5000:5000 \          # 暴露 5000 端口--restart always \ghcr.io/sky22333/hubproxy

​验证​​:访问 http://服务器IP:5000 出现加速服务页面即成功。

​方案 2:一键脚本安装(物理机/虚拟机)​
curl -fsSL https://raw.githubusercontent.com/sky22333/hubproxy/main/install-service.sh | sudo bash

脚本自动完成:

  • 检测系统架构(AMD64/ARM64)
  • 下载最新二进制文件
  • 配置 systemd 服务(开机自启)
  • 日志目录 /var/log/hubproxy

​四、进阶配置示例​

配置文件路径:/opt/hubproxy/config.toml(安装后自动生成)

# 限制每个 IP 每小时 1000 次请求
[ratelimit]  
requests_per_hour = 1000  # 配置上游代理(如服务器本身需科学上网)
[proxy]  
upstream = "socks5://192.168.1.100:1080"  # 设置 IP 白名单(绕过限流)
[security]  
whitelist = ["192.168.1.0/24"]  # 禁止访问某 Docker 镜像(支持通配符)
[registries_audit]  
docker_blacklist = ["library/redis*"]

​反向代理配置(Caddy 示例)​​:
若用 Nginx/Caddy 转发流量,需传递真实 IP 以保证限流生效:

example.com {reverse_proxy {to 127.0.0.1:5000header_up X-Real-IP {remote}header_up X-Forwarded-For {remote}header_up X-Forwarded-Proto {scheme}}
}

五、实测效果与避坑

  • 速度对比:北京测试节点拉取 nginx:latest,未加速平均 200KB/s,加速后提升至 8MB/s(依赖服务器带宽)
  • 稳定性建议
    • 部署服务器优先选 海外节点(如香港、新加坡)
    • 避免代理大文件下载(易触发 GitHub 限流)
    • 定期更新(项目迭代较快,关注 GitHub 发布页)

总结

HubProxy 以简洁的设计解决了开发者高频痛点:轻量(18MB 内存)、开箱即用、功能覆盖全面。相比搭建 Nexus 或 Artifactory 等重型仓库,它更适合个人或小团队快速构建专属加速服务。如果你正被网络问题拖慢效率,花 5 分钟部署它,可能带来意想不到的顺畅体验。

项目地址:https://github.com/sky22333/hubproxy

往期回顾:

🔥【开源项目】初中生开源神作!BiliTools 能下8K视频、高质量音频,支持AI总结的全能工具

🔥【开源项目】拆解机器学习全流程:一份GitHub手册的工程实践指南

🔥【开源项目】网络诊断告别命令行!NetSonar:开源多协议网络诊断利器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91581.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91581.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91581.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java web jsp jstl练习

JSP 的学习。 核心功能模块 1. 源代码层 ( src ) HelloWorld :主程序入口领域模型 : domain 包含User.java和ceshi.java控制器 : servlet 包含登录验证和验证码相关ServletWeb表现层 ( web ) JS…

VSCode 完全指南:释放你的编码潜能

零、简介 在当今的软件开发领域,代码编辑器的选择至关重要,它就像是工匠手中的工具,直接影响着工作效率和成果质量。Visual Studio Code(简称 VSCode)自问世以来,迅速在全球开发者社区中崭露头角&#xff…

《n8n基础教学》第一节:如何使用编辑器UI界面

在本课中,你将学习如何操作编辑器界面。我们将浏览画布,向您展示每个图标的含义,以及在 n8n 中构建工作流程时在哪里可以找到您需要的东西。本课程基于 n8n 最新版本 。在其他版本中,某些用户界面可能有所不同,但这不会…

gcc g++ makefile CMakeLists.txt cmake make 的关系

gcc:C语言编译器g:C编译器makefile:定义编译规则、依赖关系和构建目标。可以手动编写,也可以由CMakeLists.txt生成cmake:读取CMakeLists.txt文件,生成Makefilemake:构建工具,执行Mak…

SFT 训练器

SFT 训练器 “训练时间到!” 我们现在终于可以创建一个监督微调训练器的实例了: trainer = SFTTrainer( model=model, processing_class=tokenizer, args=sft_config, train_dataset=dataset, )SFTTrainer 已经对数据集进行了预处理,因此我们可以深入查看,了解每个小批次…

Android Material Components 全面解析:打造现代化 Material Design 应用

引言 在当今移动应用开发领域,用户体验(UX)已成为决定应用成功与否的关键因素之一。Google推出的Material Design设计语言为开发者提供了一套完整的视觉、交互和动效规范,而Material Components for Android(MDC-Android)则是将这些设计理念转化为可重用…

Windows使用Powershell自动安装SqlServer2025服务器与SSMS管理工具

安装结果: 安装前准备: 1.下载mssql server 2025安装器 2.下载iso镜像 3.下载好SSMS安装程序,并放到iso同目录下 4.执行脚本开始自动安装

09 RK3568 Debian11 ES8388 模拟音频输出

1、设备树配置 确认自己的i2c,使用sdk带的驱动es8323 /SDK/kernel/sound/soc/codecs/es8323.c es8388_sound: es8388-sound {status = "okay";compatible = "rockchip,multicodecs-card"; rockchip,card-name = "rockchip,es8388-codec"; …

力扣-199.二叉树的右视图

题目链接 199.二叉树的右视图 class Solution {public List<Integer> rightSideView(TreeNode root) {List<Integer> res new ArrayList<>();Queue<TreeNode> queue new LinkedList<>();if (root null)return res;queue.offer(root);while …

Android Bitmap 完全指南:从基础到高级优化

在 Android 开发中&#xff0c;图像处理是一个核心且复杂的领域&#xff0c;而 Bitmap 作为 Android 中表示图像的基本单位&#xff0c;贯穿了从简单图片显示到复杂图像编辑的各个场景。然而&#xff0c;Bitmap 处理不当往往会导致应用性能下降、内存溢出&#xff08;OOM&#…

unity日志过滤器

背景&#xff1a;之前做游戏的时候和同组的同事聊过说日志过滤尽量不要限制大家怎么使用日志打印的接口&#xff0c;不要加额外的参数&#xff0c;比如多加一个标签string,或者使用特定的接口&#xff0c;枚举。最好就是日志大家还是用Debug.Log无感去用&#xff0c;然后通过勾…

OpenGL Camera

一. lookAt函数的参数含义glm::mat4 view glm::lookAt(cameraPos, // 相机在世界坐标系中的位置&#xff08;任意值&#xff09;cameraPos cameraFront, // 相机看向的目标点&#xff08;位置朝向&#xff09;cameraUp // 相机的"上方向"&#xff08;通…

Android RTMP推送|轻量级RTSP服务同屏实践:屏幕+音频+录像全链路落地方案

一、背景&#xff1a;从“移动终端”到“远程协作节点”&#xff0c;同屏音频录像为何成刚需&#xff1f; 在数字化办公、智慧医疗与远程教育等快速发展的推动下&#xff0c;手机作为随身终端&#xff0c;已不再只是“内容接收者”&#xff0c;而逐步成为远程信息发布与可视化…

NLP 和 LLM 区别、对比 和关系

理解自然语言处理(NLP)和大语言模型(LLM)的区别、对比和关系对于把握现代人工智能的发展非常重要。以下是清晰的分析: 核心定义 NLP (Natural Language Processing - 自然语言处理): 是什么: 一个广阔的计算机科学和人工智能子领域,致力于让计算机能够理解、解释、操作…

Altium 移除在原理图之外的元器件

Altium新手&#xff0c;最近在画原理图的时候&#xff0c;遇见了这种不小心拖到界面外的元器件&#xff0c;发现拖不回来了了&#xff0c;查阅了一下&#xff0c;总结在这里 官方推荐的方法----------------使用“SCH List”面板删除 链接&#xff1a;如何移除在原理图之外的元…

【Linux我做主】细说环境变量

Linux环境变量Linux环境变量github地址前言1. 基本概念环境变量的本质2. 认识常见的环境变量PATH查看PATH修改PATHHOMESHELL其他常见环境变量PWD与OLDPWDLOGNAME与USERSSH_TTY由环境变量理解权限使用系统调用获取环境变量理解权限3. 总结什么是环境变量3. 命令行参数和环境变量…

leecode-15 三数之和

我的解法&#xff08;不是完全解309/314&#xff09;我的思路是定义一个left和一个right&#xff0c;然后在向集合里去查询&#xff0c;看看有没有除了nums[left]&#xff0c;和nums[right]的第三个元素&#xff0c;把这个问题转换为一个遍历查找问题 利用List.contains()方法来…

精通分类:解析Scikit-learn中的KNN、朴素贝叶斯与决策树(含随机森林)

在机器学习领域&#xff0c;分类任务占据核心地位。Scikit-learn作为Python的机器学习利器&#xff0c;提供了丰富高效的分类算法。现在进行初步探讨三种经典算法&#xff1a;K最近邻&#xff08;KNN&#xff09;、朴素贝叶斯&#xff08;Naive Bayes&#xff09;和决策树&…

Galaxea机器人由星海图人工智能科技有限公司研发的高性能仿人形机器人

Galaxea机器人是由星海图人工智能科技有限公司研发的高性能仿人形机器人&#xff0c;具有多种型号&#xff0c;包括Galaxea R1和Galaxea R1 Pro。以下是关于Galaxea机器人的详细介绍&#xff1a; GitHub官网 产品特点 高自由度设计&#xff1a;Galaxea R1是一款全尺寸仿人型机…

python基础:用户输入和 while 循环

一、input() 函数的工作原理input() 函数让程序暂停运行&#xff0c;等待用户输入一些文本。获取用户输入后&#xff0c;Python 将其赋给一个变量&#xff0c;以便使用。message input("Tell me something, and I will repeat it back to you: ") print(message) 结…