本软件包是 shadowsocks-libev 的 LuCI 控制界面, 方便用户控制和使用「透明代理」「SOCKS5 代理」「端口转发」功能.
软件包文件结构:
/
├── etc/
│ ├── config/
│ │ └── shadowsocks // UCI 配置文件
│ │── init.d/
│ │ └── shadowsocks // init 脚本
│ └── uci-defaults/
│ └── luci-shadowsocks // uci-defaults 脚本
└── usr/
├── bin/
│ ├── ss-rules // 生成代理转发规则的脚本
│ └── ss-subscribe // 订阅脚本
│── lib/
│ └── lua/
│ └── luci/ // LuCI 部分
│ ├── controller/
│ │ └── shadowsocks.lua // LuCI 菜单配置
│ ├── i18n/ // LuCI 语言文件目录
│ │ └── shadowsocks.zh-cn.lmo
│ │── model/
│ │ └── cbi/
│ │ └── shadowsocks/
│ │ ├── general.lua // LuCI 基本设置
│ │ ├── subscription.lua // LuCI 订阅管理
│ │ ├── servers.lua // LuCI 服务器列表
│ │ ├── servers-details.lua // LuCI 服务器编辑
│ │ └── access-control.lua // LuCI 访问控制
│ └── view
│ └── shadowsocks/
│ ├── general.htm // LuCI View 基本设置
│ ├── servers-details.htm // LuCI View 服务器编辑
│ └── subscribe.htm // LuCI View 订阅管理
└── share/
└── rpcd/
└── acl.d/
└── luci-app-shadowsocks.json // UCI 访问控制列表
软件包的正常使用需要依赖 wget
、resolveip
、iptables
和 ipset
.
软件包不显式依赖 shadowsocks-libev
, 会根据用户添加的可执行文件启用相应的功能.
可执行文件可通过安装 openwrt-shadowsocks 中提供的 shadowsocks-libev
获得.
只有当文件存在时, 相应的功能才可被使用, 并显示相应的 LuCI 设置界面.
可执行文件 | 可选 | 功能 | TCP协议 | UDP协议 |
---|---|---|---|---|
ss(r)-redir |
是 | 透明代理 | 支持 | 需安装 iptables-mod-tproxy , ip |
ss(r)-local |
是 | SOCKS5 代理 | 支持 | 支持 |
ss(r)-tunnel |
是 | 端口转发 | 支持 | 支持 |
注: 可执行文件在 $PATH
环境变量所表示的搜索路径中, 都可被正确调用.
软件包的配置文件路径: /etc/config/shadowsocks
此文件为 UCI 配置文件, 配置方式可参考 Wiki -> Use-UCI-system 和 OpenWrt Wiki
透明代理的访问控制功能设置可参考 Wiki -> LuCI-Access-Control
从 OpenWrt 的 SDK 编译
# 解压下载好的 SDK
tar xjf OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2
cd OpenWrt-SDK-ar71xx-*
# Clone 项目
git clone https://github.com/shadowsocks/luci-app-shadowsocks.git package/luci-app-shadowsocks
# 编译 po2lmo (如果有po2lmo可跳过)
pushd package/luci-app-shadowsocks/tools/po2lmo
make && sudo make install
popd
# 选择要编译的包 LuCI -> 3. Applications
make menuconfig
# 开始编译
make package/luci-app-shadowsocks/compile V=99