OpenWrt packages for frp.
This repository follows the same feed-style layout used by nps-openwrt:
frpc/andfrps/provide prebuilt daemon packages.luci-app-frpc/andluci-app-frps/provide LuCI configuration pages.frp.verstores the current upstream release version.
Runtime configuration is generated as TOML:
frpcwrites/var/etc/frpc/frpc.tomlfrpswrites/var/etc/frps/frps.tomlfrpcproxies are emitted as[[proxies]]entries- LuCI syncs common settings and proxies by TOML field name
frpcfrpsluci-app-frpcluci-app-frps
Add this repository as an OpenWrt feed:
# Local checkout
echo "src-link frp /path/to/frp-openwrt" >> feeds.conf
# Remote repository
echo "src-git frp https://github.com/<your-org>/frp-openwrt.git" >> feeds.conf
./scripts/feeds update -a
./scripts/feeds install -d n luci-app-frpc
./scripts/feeds install -d n luci-app-frps
./scripts/feeds install -d n luci-i18n-frpc-zh-cn
./scripts/feeds install -d n luci-i18n-frps-zh-cnThen select the packages in make menuconfig, and build them with:
make package/luci-app-frpc/{clean,compile} V=s
make package/luci-app-frps/{clean,compile} V=sThe generated packages are written under bin/packages/*/frp/.
# only needs to be run once
wget -O - https://cdn.jsdelivr.net/gh/nullptrx/frp-openwrt@main/feed.sh | ash
# fallback
wget -O - https://raw.githubusercontent.com/nullptrx/frp-openwrt/refs/heads/main/feed.sh | ash# you can install from shell or `Software` menu in LuCI
# for opkg
opkg install frpc
opkg install frps
opkg install luci-app-frpc
opkg install luci-app-frps
opkg install luci-i18n-frpc-zh-cn
opkg install luci-i18n-frps-zh-cn
# for apk
apk add frpc
apk add frps
apk add luci-app-frpc
apk add luci-app-frps
apk add luci-i18n-frpc-zh-cn
apk add luci-i18n-frps-zh-cnipk:https://nullptrx.github.io/frp-openwrt/openwrt-24.10/<target>/frpapk:https://nullptrx.github.io/frp-openwrt/SNAPSHOT/<target>/frp
Published helper files:
https://nullptrx.github.io/frp-openwrt/feed.shhttps://nullptrx.github.io/frp-openwrt/frp.pub
For Pages publishing, configure these repository secrets:
USIGN_PUBLIC_KEYUSIGN_PRIVATE_KEY(optional, only required forPackages.sig)