我们很高兴地宣布 GhProxy v1.4.0 的发布!这个版本带来了多个重要的改进和新功能,旨在提升性能和用户体验。以下是本次更新的详细内容:
CHANGELOG (更新日志)
- CHANGE: 优化代码结构,提升性能
- ADD: 新增auth子模块whitelist.go,支持白名单功能
- ADD: 新增whitelist.json文件,用于配置白名单
- CHANGE&ADD: 在config.yaml文件中新增白名单配置块
- FIX: 由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复blacklist.go的函数命名问题
- FIX: 修复黑/白名单是否生效相关问题
主要更新内容
功能优化
- 黑名单功能优化:由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复 blacklist.go 的函数命名问题,并优化相关结构
新增功能
-
新增白名单功能:加入白名单功能,支持配置白名单,白名单优先级高于黑名单
-
新增 auth 子模块
whitelist.go:为了支持白名单功能,我们引入了一个新的子模块。 -
新增
whitelist.json文件:黑名单配置现在位于config/whitelist.json文件中。用户可以在此文件中指定允许访问的仓库,其余仓库将被阻断。例如:
{
"whitelist": [
"test/test1",
"example/repo2",
"another/repo3"
]
}
- 功能须知:白名单与黑名单功能均可同时开启或关闭,但若同时开启,则优先级高于黑名单。
配置文件更新
config.yaml格式修改:为了提高可读性,我们对config.yaml文件的格式进行了调整。用户可以更直观地进行配置管理。config.yaml新配置格式如下:
# 核心配置
server:
port: 8080 # 监听端口(小白请勿修改)
host: "127.0.0.1" # 监听地址(小白请勿修改)
sizelimit: 131072000 # 125MB
# 日志配置
logger:
logfilepath: "/data/ghproxy/log/ghproxy.log" # 日志文件路径(小白请勿修改)
maxlogsize: 5 # MB
# CORS 配置
cors:
enabled: true # 是否开启CORS
# 鉴权配置
auth:
enabled: false # 是否开启鉴权
authtoken: "test" # 鉴权Token
# 黑名单配置
blacklist:
enabled: true # 是否开启黑名单
blacklistfile: "/data/ghproxy/config/blacklist.json"
# 白名单配置
whitelist:
enabled: false # 是否开启白名单
whitelistfile: "/data/ghproxy/config/whitelist.json"
提醒
- config.yaml相关 : 此次更新新增whitelist配置块,若需使用白名单功能,请在配置文件加入whitelist相关配置;若无需使用白名单功能,您无需修改配置文件。
项目特点回顾
GhProxy 是一个基于 Go 语言实现的工具,旨在加速特定地区对 GitHub 仓库的访问。它支持速率限制、用户鉴权,并且可以通过 Docker 部署。GhProxy 还支持自定义黑名单,符合 RFC 7234 的 HTTP 缓存标准,并使用 Caddy 作为 Web 服务器。
前端界面:

结语
我们感谢所有用户的支持与反馈,并期待 GhProxy v1.4.0 能为您的开发工作带来更大的便利和效率!若此项目对您有所帮助,请不要忘记 star 项目,您的支持是我们前进的动力!
详细更新介绍
@koujiang #6
Action编译时会自动更新Docker镜像

黑/白名单实现逻辑
以下是 GHProxy v1.4.0 黑/白名单实现逻辑:
NoRouteHandler函数内,白名单在前,黑名单在后。如下图所示:NoRouteHandler函数内进行检查。经过白名单检查后,仍会经过黑名单检查。黑名单与白名单同时开启的情况并不多见,建议只开启白名单或黑名单,不要同时开启。
好东西,bd
技术贴必顶
感觉越弄越复杂了,只是一个加速工具。
一键部署,代码量少,简洁实用。
https://github.com/0-RTT/ghproxy-go
以下主观观点,不代表WJQSERVER-STUDIO组织的观点,下文中的我们指代WJQSERVER-STUDIO组织
感觉越弄越复杂了,只是一个加速工具。,前文内的用户已指出GHProxy的问题,也可以看到用户对黑/白名单的迫切需求,忽视用户的迫切需求真的会更好吗更新那么快啊,刚部署完1.3,docker更新了吗
内置 Caddy 真的有必要吗,如果在一个 Go 程序里面实现,或许只需要几兆内存
加个 Caddy 直接起飞,还不如原本 python 写的
大佬,请求普及一下黑白名单的作用以及具体怎么配置
@Aftermath4 #8
占用并没有起飞,容器占用15mb左右
ee95256d0b0e ghproxy-test-ghproxy-1 0.13% 14.61MiB / 344MiB 4.25% 697kB / 1.34MB 9.55GB / 1.96GB 14