logo NodeSeekbeta

GHProxy v1.4.0 版本更新,新增白名单功能

我们很高兴地宣布 GhProxy v1.4.0 的发布!这个版本带来了多个重要的改进和新功能,旨在提升性能和用户体验。以下是本次更新的详细内容:

CHANGELOG (更新日志)

  • CHANGE: 优化代码结构,提升性能
  • ADD: 新增auth子模块whitelist.go,支持白名单功能
  • ADD: 新增whitelist.json文件,用于配置白名单
  • CHANGE&ADD: 在config.yaml文件中新增白名单配置块
  • FIX: 由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复blacklist.go的函数命名问题
  • FIX: 修复黑/白名单是否生效相关问题

项目地址

Demo

主要更新内容

功能优化

  • 黑名单功能优化:由于临时加入且未在原开发路线上计划的白名单功能,导致函数命名冲突,在此修复 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 服务器。

项目地址

Demo

前端界面:
ghproxy-demo.png

结语

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

12
  • @koujiang #6

    Action编译时会自动更新Docker镜像
    action-docker.png

  • 黑/白名单实现逻辑

    以下是 GHProxy v1.4.0 黑/白名单实现逻辑:

    1. 黑白名单检查均位于proxy模块的NoRouteHandler函数内,白名单在前,黑名单在后。如下图所示:

    黑白名单实现逻辑

    1. 如上图所见,黑白名单并无冲突,均在NoRouteHandler函数内进行检查。经过白名单检查后,仍会经过黑名单检查。

    黑名单与白名单同时开启的情况并不多见,建议只开启白名单或黑名单,不要同时开启。

  • 好东西,bd

  • 技术贴必顶

  • @应无所住 #4 发布于2024/10/8 20:27:24
    感觉越弄越复杂了,只是一个加速工具。

    一键部署,代码量少,简洁实用。
    https://github.com/0-RTT/ghproxy-go

    xhj001

    以下主观观点,不代表WJQSERVER-STUDIO组织的观点,下文中的我们指代WJQSERVER-STUDIO组织

    1. 这样实现并不算好,文件大小限制写死在main.go里面这个痛点算是非常明显的,我们采用了外部文件配置,解决了这一痛点
    2. 代码量确实多了,但是带来了不少实用功能,总体框架也是跟着https://github.com/WJQSERVER-STUDIO/golang-temp 进行的
    3. 至于部署方面,我们选择通过docker实现,这样兼容性会好不少,同时也降低了部署复杂性,内置的Caddy也一定程度上保证了安全
    4. 至于感觉越弄越复杂了,只是一个加速工具。,前文内的用户已指出GHProxy的问题,也可以看到用户对黑/白名单的迫切需求,忽视用户的迫切需求真的会更好吗
  • 更新那么快啊,刚部署完1.3,docker更新了吗

  • 内置 Caddy 真的有必要吗,如果在一个 Go 程序里面实现,或许只需要几兆内存

    加个 Caddy 直接起飞,还不如原本 python 写的

  • 大佬,请求普及一下黑白名单的作用以及具体怎么配置 ac06

  • @Aftermath4 #8
    占用并没有起飞,容器占用15mb左右
    ee95256d0b0e ghproxy-test-ghproxy-1 0.13% 14.61MiB / 344MiB 4.25% 697kB / 1.34MB 9.55GB / 1.96GB 14

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72280位seeker

🎉欢迎新用户🎉