Skip to content

About

本项目为非官方的社区 OSX 作品。完全依赖 Caddy 运行:App 只负责解析规则、生成配置与管理服务,实际的流量转发全部由 Caddy 承担。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Steamcommunity 302 SwiftUI

社区作品声明

本项目为非官方的社区 OSX 作品。原版 Steamcommunity 302 的底层驱动本就是开源 Web 服务器 Caddy——本项目同样完全依赖 Caddy 运行:App 只负责解析规则、生成配置与管理服务,实际的流量转发全部由 Caddy 承担。

  • 代理服务器来自 Steamcommunity 302 项目持续维护的节点
  • 解析原版安装包的 S302_rules.ini / S302.ini 规则与图标等文本资源
  • 全程零执行原版主程序的任何二进制文件
  • Caddy 引擎使用包内附带的开源官方二进制(自动识别),也可自行提供

macOS 原生 SwiftUI 重制的配置工具。App 只负责首次配置与日常维护;运行时由 Caddy 以用户级 LaunchAgent 托管——登录自启(RunAtLoad)、异常退出自动拉起(KeepAlive),无需保持 App 常驻运行。

项目结构

Steamcommunity302-SwiftUI/
├── App/            # 入口
├── Views/          # 主界面与服务选择弹窗
├── ViewModels/     # Installer:安装、配置生成、launchctl 与 shell 封装
├── Services/       # CertificateManager:openssl 证书生成命令拼装
├── Utilities/      # INI 解析器
└── Resources/      # 图标资源

功能一览

  • 安装包导入:选择原版 .zip / .tar.gz 包,自动复制到本地并解压(zip 用 ditto,tar.gz 用 tar)
  • 服务选择:解析包内 S302_rules.ini 与 S302.ini,弹窗勾选要代理的服务;解锁版(_unlock)与基础版规则自动互斥
  • Caddy 识别:自动在解压目录中查找名为 caddy 的可执行文件,也可手动指定单独下载的 Caddy
  • 配置生成:解码规则中的加密 Json 片段,按启用规则生成 steamcommunity_302.caddy.json(Caddyfile 格式)和域名清单 domains.txt,安装前用 caddy adapt 校验合法性
  • 服务控制:安装 / 启动 / 重启 / 停止 / 卸载 LaunchAgent
  • 本地证书:用系统自带 openssl 生成本地 CA(Steamcommunity302 Local CA)与站点证书(SAN 取自 domains.txt),安装到钥匙串并信任
  • Hosts 工具:备份 /etc/hosts → 将启用服务的域名以 127.0.0.1 <域名> 写入 → 可一键恢复原始 hosts,写后自动刷新 DNS 缓存
  • 上游容错:「跳过上游 HTTPS 证书校验」开关(默认开启),解决部分网络下镜像节点证书不匹配导致 502 的问题;改动后自动重新生成配置并重启服务

工作方式(首次配置)

  1. 选择 Steamcommunity302 的 .zip 或 .tar.gz 包,App 将自动解压使用
  2. 自动读取 S302_rules.ini / S302.ini,在弹窗中勾选需要的服务
  3. 自动识别包内 Caddy,或单独选择 Caddy 二进制,以进行后续步骤
  4. 点击「安装」生成配置并校验弹出管理员授权以一键部署并加载 LaunchAgent 服务
  5. 服务就绪将自动补装证书,当前用户域生成证书文件再经管理员授权并写入系统钥匙串
  6. 如需直连生效,使用「备份 Hosts」→「应用 Hosts」将域名写入 /etc/hosts

运行数据位置

App 未开启沙盒(ENABLE_APP_SANDBOX = NO),所有数据位于:

~/Library/Application Support/Steamcommunity302/Content
├── Steamcommunity_302/              # 解压后的原版资源
├── Archives/                        # 安装包副本
├── steamcommunity_302.caddy.json    # 生成的 Caddy 配置
├── domains.txt                      # 当前启用服务的域名清单
├── service-selection.txt            # 记录所勾选的服务
├── steamcommunity.crt / .key        # 站点证书与私钥
├── steamcommunityCA.pem             # 本地 CA 根证书
├── hosts.backup                     # /etc/hosts 备份
└── caddy.log / caddy.error.log      # 服务日志

LaunchAgent 配置:~/Library/LaunchAgents/com.ncp.caddy302.plist

权限说明

以下操作通过 osascript ... with administrator privileges 弹出管理员授权对话框:

  • 部署 Caddy、生成证书并安装 LaunchAgent(「安装」)
  • 清理重复证书、写入系统钥匙串信任、卸载证书
  • 「应用 Hosts」「恢复 Hosts」修改 /etc/hosts

构建与测试环境

  • 默认 Xcode 26+(部署目标 macOS 26.0)
  • 使用 Xcode 打开 Steamcommunity302-SwiftUI.xcodeproj,⌘R 构建运行,无第三方依赖
  • 实测环境:安装包 Steamcommunity_302.14.0.02_osx_arm64.tar.gz,系统 macOS 26.6.1(Apple Silicon, arm64)

About

本项目为非官方的社区 OSX 作品。完全依赖 Caddy 运行:App 只负责解析规则、生成配置与管理服务,实际的流量转发全部由 Caddy 承担。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages