Apfree wifidog
apfree-wifidog is a high-performance captive portal solution that serves as a gateway between your wireless networks and the Internet. Optimized for both HTTP and HTTPS traffic, it ensures secure border control while enabling seamless user authentication and efficient network management. 技术交流QQ群 331230369
ApFree WiFiDog A High-Performance Captive Portal Solution for HTTP(S) on OpenWrt The project is written primarily in C, distributed under the GNU General Public License v3.0 license, first published in 2015. Key topics include: apfree-wifidog, c, captive-portal, libevent, openwrt.
📖 Introduction
ApFree WiFiDog is an open-source, high-performance captive portal for HTTP and HTTPS, tailored for the OpenWrt platform.
It provides secure authentication, high concurrency handling, and flexible rule management for Wi-Fi networks.
🎬 Introduction Video
<p align="center"> <a href="https://www.bilibili.com/video/BV18m411d7Yj/?vd_source=b303f6e8e0ed18809d8752d41ab1de7d"> <img width="720" alt="ApFree WiFiDog Introduction" src="apfree-wifidog_intr.png"> </a> </p>🚀 Features
- Stable – API-based iptables integration, thread-safe.
- Fast – Built with libevent2 + epoll, far outperforms original WiFiDog.
- Secure – Full HTTPS redirection support.
- Real-time – Long connection support (WebSocket, MQTT).
- Flexible – Local + Cloud authentication, splash page mode.
- Dynamic Rules – Manage MAC, IP, domains without restart.
- eBPF Support – Traffic control & DPI via eBPF.
- Active Community – Fast responses and continuous updates.
📦 Installation
On OpenWrt (latest):
bashapk update apk add apfree-wifidog
On older OpenWrt:
bashopkg update opkg install apfree-wifidog
👉 For LuCI Web Interface, see LuCI Integration.
🖥️ LuCI Integration
- ApFree WiFiDog provides a LuCI Web UI via
luci-app-apfree-wifidog. - Integrated in the luci repo.
💡 Recommended: use chawrt,
which bundles ApFree WiFiDog + LuCI for a ready-to-use OpenWrt firmware.
⚙️ Basic Usage Example
1. Cloud Authentication Mode
- Requires external auth server.
- Configure via LuCI:
Auth Server(Hostname, Port, Path) +Gateway Interface. - Enable WebSocket Support for real-time status.
2. Local Authentication (Splash Page)
- No external auth server needed.
- Configure LuCI:
Gateway Interface+ Redirect URL (welcome / terms page). - Simple click-to-continue or custom splash page.
🛠️ Troubleshooting
Logs
- Check via:
bash
logread - Increase debug level in
wifidogx.conf→DaemonLogLevel 7.
Common Issues
- No redirection → check
GatewayInterface, firewall rules, DNS. - Sites blocked → update trusted domains via
wdctlx show domain. - Device issues → check MAC lists (
wdctlx show mac).
Useful wdctlx Commands
bashwdctlx status client # Show authenticated clients wdctlx show domain # Show trusted domains wdctlx add domain example.com wdctlx apfree user_list # List online users
🔬 Technical Overview
- Event-driven architecture (
libevent2) for massive concurrency. - Firewall integration via
iptables(with nftables support). - Auth flow: Redirect → Auth Server → Firewall update → Internet access.
📑 See Auth Server API for protocol details.
🤝 Contributing
We welcome contributions!
- Submit issues: GitHub Issues
- Pull requests: GitHub PRs
- Guidelines: CONTRIBUTING.md
📬 Contact
- QQ Group: 331230369
Contributors
Showing top 12 contributors by commit count.
