本项目是一个针对 OpenWrt 的代理工具包集合,主要包含 ShadowSocks、V2Ray、Xray、Trojan 等各种网络代理工具的 OpenWrt 包。
luci-app-ssr-plus/ - 统一的 Web 管理界面shadowsocks-*, v2ray-*, xray-*, trojan/ 等目录chinadns-ng/, dns2socks/, mosdns/ 等tcping/, microsocks/, redsocks2/ 等include $(TOPDIR)/rules.mk
PKG_NAME:=工具名
PKG_VERSION:=版本号
PKG_RELEASE:=构建版本
# 语言特定的构建依赖
PKG_BUILD_DEPENDS:=golang/host # Go 项目
PKG_BUILD_DEPENDS:=rust/host # Rust 项目
PKG_BUILD_DEPENDS:=openssl # C/C++ 项目
# 包含相应的构建框架
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk # Go
include $(TOPDIR)/feeds/packages/lang/rust/rust-package.mk # Rust
DEPENDS:=+ca-bundle +libstdcppdepends on !(arc||armeb||mips) 排除特定架构CONFIG_PACKAGE_* 实现选择性依赖PKG_RELEASE 用于本项目的修订版本PKG_SOURCE_URL 和 PKG_HASH 确保构建可重现性luci-app-ssr-plus/
├── luasrc/
│ ├── controller/shadowsocksr.lua # 路由控制器
│ ├── model/cbi/shadowsocksr/ # 配置界面模型
│ └── view/shadowsocksr/ # 自定义视图模板
├── root/
│ ├── etc/init.d/shadowsocksr # 系统服务脚本
│ ├── etc/config/shadowsocksr # UCI 配置模板
│ └── usr/share/shadowsocksr/ # 业务逻辑脚本
└── po/ # 国际化文件
/etc/config/shadowsocksruci get/set 命令访问配置/etc/init.d/shadowsocksr restart-- 动态检测可用的代理工具
local function is_finded(e)
return luci.sys.exec(string.format('type -t -p "%s" 2>/dev/null', e)) ~= ""
end
-- 根据检测结果动态生成选项
if is_finded("xray") or is_finded("v2ray") then
o:value("v2ray", translate("V2Ray/XRay"))
end
# 克隆项目作为 OpenWrt feed
git clone https://github.com/fw876/helloworld.git package/helloworld
# 或作为 git submodule
git submodule add https://github.com/fw876/helloworld.git package/helloworld
# 构建特定包
make package/helloworld/luci-app-ssr-plus/compile V=s
PKG_BUILD_PARALLEL:=1 启用并行构建PKG_CONFIG_DEPENDS 声明配置依赖关系choice 和 config 块实现互斥选项/etc/init.d/shadowsocksr 统一管理start, stop, restart, status 等标准操作SERVICE_DAEMONIZE=1 实现后台运行/usr/share/shadowsocksr/gen_config.lua 负责生成各代理工具的原生配置/usr/share/shadowsocksr/subscribe.lua 处理节点订阅/var/log/ssrplus.loguci show shadowsocksr 查看当前配置uci commit 才能生效po/ 目录下的翻译文件