×

(无国外服务器/免服务器) 搭建hubproxy 自建Docker 和 GitHub 加速代理服务器

hqy hqy 发表于2026-03-24 21:50:43 浏览4 评论0

抢沙发发表评论

介绍一款轻量高效的多功能代理 hubproxy,支持 Docker 镜像加速、GitHub 文件与 Release 下载加速、离线镜像包、在线镜像搜索,以及 Hugging Face 模型下载加速。基于 Go 语言的单一二进制实现,提供统一配置、限流、白/黑名单审计等安全机制,支持 Docker Compose 或 docker run 启动,并包含域名及反向代理配置示例。还给出无国外服务器方案及演示地址。

一个轻量级、高性能的多功能 代理服务,提供 Docker 镜像加速、GitHub 文件加速、下载离线镜像、在线搜索 Docker 镜像等功能。


⚠️ 重要:选择一台国外服务器,并且未被墙。对于域名,无需进行国内备案。你也可以通过一些平台申请免费域名。


特性

  • Docker 镜像加速 - 单域名实现 Docker Hub、GHCR、Quay 等多个镜像仓库加速,流式传输优化拉取速度。

  • 离线镜像包 - 支持下载离线镜像包,流式传输加防抖设计。

  • GitHub 文件加速 - 加速 GitHub Release、Raw 文件下载,支持api.github.com,脚本嵌套加速等等

  • AI 模型库支持 - 支持 Hugging Face 模型下载加速

  • ?️ 智能限流 - IP 限流保护,防止滥用

  • 仓库审计 - 强大的自定义黑名单,白名单,同时审计镜像仓库,和GitHub仓库

  • 镜像搜索 - 在线搜索 Docker 镜像

  • ⚡ 轻量高效 - 基于 Go 语言,单二进制文件运行,资源占用低,优雅的内存清理机制。

  • 统一配置 - 统一配置管理


Github地址 & 演示

https://github.com/sky22333/hubproxy


https://demo.52013120.xyz/

部署

启动

Docker Compose(推荐)

新建文件 compose.yml

yaml

services:
   hubproxy:
       container_name: hubproxy
       ports:
           - 5000:5000
       restart: always
       image: ghcr.io/sky22333/hubproxy


docker compose up -d 命令启动即可


Docker 命令

shellscript

docker run -d \
 --name hubproxy \
 -p 5000:5000 \
 --restart always \
 ghcr.io/sky22333/hubproxy


官方一键脚本

shellscript
curl -fsSL https://raw.githubusercontent.com/sky22333/hubproxy/main/install-service.sh | sudo bash


域名配置

nginx配置参考

nginx

location ^~ / {
   proxy_pass http://127.0.0.1:5000;

   # 设置代理头部,传递真实 IP
   proxy_set_header X-Forwarded-For $http_cf_connecting_ip;
   proxy_set_header X-Real-IP $http_cf_connecting_ip;
   proxy_set_header X-Forwarded-Proto https;
       

   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header REMOTE-HOST $remote_addr;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection $http_connection;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Forwarded-Port $server_port;
   proxy_http_version 1.1;
   add_header X-Cache $upstream_cache_status;
   add_header Cache-Control no-cache;
   proxy_ssl_server_name off;
   proxy_ssl_name $proxy_host;
}


程序配置

容器内的配置文件位于 /root/config.toml 

脚本部署配置文件位于 /opt/hubproxy/config.toml

不配置也可以,程序内置有默认值

toml

[server]
host = "0.0.0.0"
# 监听端口
port = 5000
# Github文件大小限制(字节),默认2GB
fileSize = 2147483648

[rateLimit]
# 每个IP每小时允许的请求数(注意Docker镜像会有多个层,会消耗多个次数)
requestLimit = 500
# 限流周期(小时)
periodHours = 1.0

[security]
# IP白名单,支持单个IP或IP段
# 白名单中的IP不受限流限制
whiteList = [
   "127.0.0.1",
   "192.168.1.0/24"
]

# IP黑名单,支持单个IP或IP段
# 黑名单中的IP将被直接拒绝访问
blackList = [
   "192.168.100.1",
   "192.168.100.0/24"
]

[proxy]
# 代理服务白名单(支持GitHub仓库和Docker镜像,支持通配符)
# 只允许访问白名单中的仓库/镜像,为空时不限制
whiteList = []

# 代理服务黑名单(支持GitHub仓库和Docker镜像,支持通配符)
# 禁止访问黑名单中的仓库/镜像
blackList = [
   "baduser/malicious-repo",
   "*/malicious-repo",
   "baduser/*"
]

# 代理配置,支持有用户名/密码认证和无认证模式
# 无认证: socks5://127.0.0.1:1080
# 有认证: socks5://username:password@127.0.0.1:1080
# HTTP 代理示例
# http://username:password@127.0.0.1:7890
# SOCKS5 代理示例
# socks5://username:password@127.0.0.1:1080
# SOCKS5H 代理示例
# socks5h://username:password@127.0.0.1:1080
# 留空不使用代理
proxy = ""

[download]
# 批量下载离线镜像数量限制
maxImages = 10

# Registry映射配置,支持多种镜像仓库上游
[registries]

# GitHub Container Registry
[registries."ghcr.io"]
upstream = "ghcr.io"
authHost = "ghcr.io/token"
authType = "github"
enabled = true

# Google Container Registry
[registries."gcr.io"]
upstream = "gcr.io"
authHost = "gcr.io/v2/token"
authType = "google"
enabled = true

# Quay.io Container Registry
[registries."quay.io"]
upstream = "quay.io"
authHost = "quay.io/v2/auth"
authType = "quay"
enabled = true

# Kubernetes Container Registry
[registries."registry.k8s.io"]
upstream = "registry.k8s.io"
authHost = "registry.k8s.io"
authType = "anonymous"
enabled = true

[tokenCache]
# 是否启用缓存(同时控制Token和Manifest缓存)显著提升性能
enabled = true
# 默认缓存时间(分钟)
defaultTTL = "20m"

以dokcer部署方式为例

shellscript
docker exec -it hubproxy sh  #进入容器内部

执行ls 命令后 可以看到配置文件config.toml文件

然后使用vi 或vim 命令就行修改保存即可~

使用方式

搭建成功会有使用ui界面 可参考使用

方式一 、配置前缀方式

方式二、配置加速地址

创建或修改 /etc/docker/daemon.json

shellscript

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

   "registry-mirrors": [

       "demo.52013120.xyz"

   ]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker



无国外服务器/免服务器 搭建

https://cnb.cool/znb/hubproxy

fork此项目后点击 一键运行,然后映射5000端口,即可投入使用。


打赏

本文链接:https://kinber.cn/post/6342.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客