OpenWrt里的EasyTier安装包(IPK和APK)
See the codeEnglish | 简体中文
OpenWrt LuCI界面,用于管理 EasyTier - 一个简单、安全、去中心化的内网穿透VPN组网方案。
/tmp 目录# IPK包 (OpenWrt 22.03.x)
opkg install /tmp/luci-app-easytier_*.ipk
# APK包 (OpenWrt SNAPSHOT)
apk add --allow-untrusted /tmp/luci-app-easytier_*.apk
.github/workflows/build.yml 中的架构列表(可选)Build-OpenWrt-EasyTier 工作流v1.0.0)和发布说明# 1. 下载OpenWrt SDK
wget https://downloads.openwrt.org/releases/22.03.7/targets/rockchip/armv8/openwrt-sdk-22.03.7-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
tar -xJf openwrt-sdk-*.tar.xz
cd openwrt-sdk-*/
# 2. 克隆项目
git clone https://github.com/EasyTier/luci-app-easytier.git package/luci-app-easytier
# 3. 更新feeds并配置
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
# 4. 编译
make package/luci-app-easytier/compile V=s
# 5. 查找生成的ipk
find bin/ -name "luci-app-easytier*.ipk"
kmod-tun - TUN/TAP内核模块(必需)luci-compat - LuCI兼容层安装前请确保已安装 kmod-tun:
opkg update
opkg install kmod-tun
easytier-core, easytier-cli, easytier-web-embed.zip, .tar.gz, .tar支持两种配置方式:
/etc/easytier/config.toml 配置文件// ✅ 允许
var xhr = new XMLHttpRequest();
function handleClick() { }
document.getElementById('id');
// ❌ 禁止
const data = await fetch('/api');
let result = () => {};
import module from 'module';
-- ✅ 使用 Lua1 API
local http = require "luci.http"
local uci = require "luci.model.uci".cursor()
http.write_json({success = true})
-- ❌ 禁止 Lua2 特有语法
-- 不使用新版 LuCI JS API
-- Lua中
local translate = i18n.translate
translate("Text to translate")
-- HTM模板中
<%:Text to translate%>
-- JavaScript中(由Lua注入)
var msg = '<%=translate("Text")%>';
luci-app-easytier/
├── luasrc/
│ ├── controller/
│ │ └── easytier.lua # 路由和API控制器
│ ├── model/cbi/
│ │ ├── easytier.lua # 配置页面
│ │ └── easytier_status.lua # 状态页面
│ └── view/easytier/
│ ├── easytier_status.htm # 状态页面模板
│ ├── easytier_log.htm # 日志页面
│ ├── easytier_upload.htm # 上传页面
│ └── ...
├── root/
│ ├── etc/
│ │ ├── config/easytier # UCI配置文件
│ │ ├── init.d/easytier # 启动脚本
│ │ └── easytier/ # 配置目录
│ └── usr/share/easytier/
│ └── download.sh # 下载脚本
├── po/
│ ├── zh_Hans/easytier.po # 简体中文翻译
│ └── templates/easytier.pot # 翻译模板
└── Makefile # OpenWrt包定义
-- API路径格式
entry({"admin", "vpn", "easytier", "api_name"}, call("function_name")).leaf = true
-- 返回JSON格式
function api_name()
luci.http.prepare_content("application/json")
luci.http.write_json({
success = true,
data = {},
message = "Success"
})
end
详细开发规范请参考 开发指南
# 清除LuCI缓存
rm -rf /tmp/luci-*
# 重新登录LuCI界面
sed -i 's/util.pcdata/xml.pcdata/g' /usr/lib/lua/luci/model/cbi/easytier.lua
升级时如果提示配置文件冲突,旧配置会保留,新配置保存为 /etc/config/easytier-opkg,可以忽略此报错。
本项目采用 Apache License 2.0 许可证。
欢迎提交 Issue 和 Pull Request!
10 followers · starred Feb 2026
112 followers · starred Jun 2025
HTML
53.3%
Lua
23.6%
Shell
21.2%
Makefile
1.9%
OpenWrt里的EasyTier安装包(IPK和APK)
See the codeEnglish | 简体中文
OpenWrt LuCI界面,用于管理 EasyTier - 一个简单、安全、去中心化的内网穿透VPN组网方案。
/tmp 目录# IPK包 (OpenWrt 22.03.x)
opkg install /tmp/luci-app-easytier_*.ipk
# APK包 (OpenWrt SNAPSHOT)
apk add --allow-untrusted /tmp/luci-app-easytier_*.apk
.github/workflows/build.yml 中的架构列表(可选)Build-OpenWrt-EasyTier 工作流v1.0.0)和发布说明# 1. 下载OpenWrt SDK
wget https://downloads.openwrt.org/releases/22.03.7/targets/rockchip/armv8/openwrt-sdk-22.03.7-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
tar -xJf openwrt-sdk-*.tar.xz
cd openwrt-sdk-*/
# 2. 克隆项目
git clone https://github.com/EasyTier/luci-app-easytier.git package/luci-app-easytier
# 3. 更新feeds并配置
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
# 4. 编译
make package/luci-app-easytier/compile V=s
# 5. 查找生成的ipk
find bin/ -name "luci-app-easytier*.ipk"
kmod-tun - TUN/TAP内核模块(必需)luci-compat - LuCI兼容层安装前请确保已安装 kmod-tun:
opkg update
opkg install kmod-tun
easytier-core, easytier-cli, easytier-web-embed.zip, .tar.gz, .tar支持两种配置方式:
/etc/easytier/config.toml 配置文件// ✅ 允许
var xhr = new XMLHttpRequest();
function handleClick() { }
document.getElementById('id');
// ❌ 禁止
const data = await fetch('/api');
let result = () => {};
import module from 'module';
-- ✅ 使用 Lua1 API
local http = require "luci.http"
local uci = require "luci.model.uci".cursor()
http.write_json({success = true})
-- ❌ 禁止 Lua2 特有语法
-- 不使用新版 LuCI JS API
-- Lua中
local translate = i18n.translate
translate("Text to translate")
-- HTM模板中
<%:Text to translate%>
-- JavaScript中(由Lua注入)
var msg = '<%=translate("Text")%>';
luci-app-easytier/
├── luasrc/
│ ├── controller/
│ │ └── easytier.lua # 路由和API控制器
│ ├── model/cbi/
│ │ ├── easytier.lua # 配置页面
│ │ └── easytier_status.lua # 状态页面
│ └── view/easytier/
│ ├── easytier_status.htm # 状态页面模板
│ ├── easytier_log.htm # 日志页面
│ ├── easytier_upload.htm # 上传页面
│ └── ...
├── root/
│ ├── etc/
│ │ ├── config/easytier # UCI配置文件
│ │ ├── init.d/easytier # 启动脚本
│ │ └── easytier/ # 配置目录
│ └── usr/share/easytier/
│ └── download.sh # 下载脚本
├── po/
│ ├── zh_Hans/easytier.po # 简体中文翻译
│ └── templates/easytier.pot # 翻译模板
└── Makefile # OpenWrt包定义
-- API路径格式
entry({"admin", "vpn", "easytier", "api_name"}, call("function_name")).leaf = true
-- 返回JSON格式
function api_name()
luci.http.prepare_content("application/json")
luci.http.write_json({
success = true,
data = {},
message = "Success"
})
end
详细开发规范请参考 开发指南
# 清除LuCI缓存
rm -rf /tmp/luci-*
# 重新登录LuCI界面
sed -i 's/util.pcdata/xml.pcdata/g' /usr/lib/lua/luci/model/cbi/easytier.lua
升级时如果提示配置文件冲突,旧配置会保留,新配置保存为 /etc/config/easytier-opkg,可以忽略此报错。
本项目采用 Apache License 2.0 许可证。
欢迎提交 Issue 和 Pull Request!
10 followers · starred Feb 2026
112 followers · starred Jun 2025
HTML
53.3%
Lua
23.6%
Shell
21.2%
Makefile
1.9%