Keenetic cihazlar icin gelistirilmis gelismis Zapret yonetim araci (KZM). DPI kaynakli erisim engellerini asmaniza yardimci olur (Discord, Roblox vb.). Akilli DPI profilleri, IPSET istemci yonetimi ve guclu menu arayuzu ile tam kontrol saglar.
Find a file
2026-04-23 10:56:25 +03:00
.github/workflows Allow edited releases and add workflow dispatch 2026-02-24 16:11:41 +03:00
docs Update command usage in installation guide 2026-04-22 19:56:16 +03:00
keenetic_zapret_otomasyon_ipv6_ipset.sh v26.4.23 - Zapret Restart, Log Improvements and Web Panel Language Switch 2026-04-23 10:56:25 +03:00
LICENSE Initial commit 2026-01-24 17:54:03 +03:00
README.en.md Update images and Keenetic OS version in README 2026-04-16 09:43:52 +03:00
README.md Update images and Keenetic OS version in README 2026-04-16 09:42:58 +03:00

Keenetic Zapret Manager (KZM)

📦 Installation & Download

Stars Latest Release

Full Setup Guide User Guide Telegram Platform
Languages Open Source



🚀 KZM WEB UI

Tested Keenetic OS Versions

This script has been tested on the following Keenetic OS versions:

  • Keenetic OS 5.0.10
  • Keenetic OS 4.3.6.4

Not tested on older Keenetic OS versions.
On older versions, OPKG/Entware packages, iptables/ipset behaviour or binary compatibility may differ.

  • USB storage attached to the Keenetic device
  • Entware installed on USB
  • Script and Zapret running under /opt/lib/opkg

📖 About the Project

Zapret management and automation script for Keenetic routers/modems

This project provides easy installation of Zapret on Keenetic devices, DPI profile management,
client selection via IPSET, menu-driven usage and
version tracking via GitHub.

Important Note on DNS

Zapret is designed to bypass DPI (Deep Packet Inspection) based restrictions.
It does not resolve DNS-based blocking or ISP DNS manipulation.

For this reason, when using Zapret on some ISPs:

  • DoH (DNS over HTTPS),
  • DoT (DNS over TLS),
  • or a trusted third-party DNS

is strongly recommended.

ISP DNS servers may return incorrect IPs for blocked domains.
In that case, even if Zapret is working, the connection may still fail.


🚀 Features

Zapret Installation & Management

  • Automatic Zapret installation and removal
  • Full install / clean uninstall from a single menu
  • Safe management of Zapret files on the system

DPI Profile Management

  • Turk Telekom (Fiber / Alternative)
  • Superonline
  • Superonline Fiber
  • KabloNet
  • Mobile operators (Turkcell / Vodafone)
  • Automatic Zapret restart after profile change

IPSET-Based Traffic Control

  • Apply Zapret to the entire network (Global mode)
  • Apply Zapret to selected IPs only (Smart mode)
  • Client-based control via IPSET list

Hostlist / Autohostlist System

  • Automatic learning of DPI-detected domains (Autohostlist)
  • Manual domain add / remove (User hostlist)
  • Excluded domain list (Exclude)

IPv6 Support

  • IPv6 Zapret support (optional)
  • Enable / disable IPv6 from the menu
  • Colour-coded IPv6 status display on the status screen

Backup and Restore

  • Back up individual .txt files under IPSET
  • Restore selected files
  • Automatic Zapret restart after restore

Version & Update Checks

  • Installed Zapret version information
  • Manager (script) version check (GitHub)
  • Latest version notifications

CLI Shortcuts

  • kzm
  • KZM
  • keenetic
  • keenetic-zapret
  • Run the script without typing the full path

Multi-Language Interface

  • Turkish / English (TR / EN) language support
  • Dictionary-based translation system

User-Friendly Interface

  • Colourful and readable menu layout
  • Clear status indicators
  • Protections against misconfiguration

🔍 Blockcheck → Automatic DPI Smart Flow

The most stable DPI parameter is automatically detected from the Blockcheck summary (SUMMARY) result.

A decision screen is presented to the user:

  • [1] Apply → Parameter is activated as the DPI profile
  • [2] Inspect Parameter
  • [3] Save Only
  • [0] Cancel

Automatic DPI only works from the summary test (the full test does not apply directly).

The active DPI state is clearly shown in the menu:

  • Default / Manual
  • Blockcheck (Automatic)

Applied parameters are also listed separately.


📊 DPI Health Score

A DPI Health Score is calculated after Blockcheck (e.g. 8.5 / 10).

Sub-checks are shown to the user in a readable format:

  • ✔ DNS consistency
  • ✔ TLS 1.2 status
  • ⚠ UDP 443 weak / at risk

Symbols and text are formatted for terminal compatibility and readability.


🤖 Telegram Notifications

To receive instant notifications from your router:
➡️ Telegram Setup Guide


🧹 Clearing Test Results

A new option has been added to the Blockcheck Test menu:

"Clear Test Results"

The following files are safely deleted:

  • blockcheck_*.txt
  • blockcheck_summary_*.txt

This prevents the /opt/zapret directory from growing over time.


💾 Script Backup Management

A backup is taken automatically during script updates.

Backups are now saved with a .sh extension and can be restored:

keenetic_zapret_otomasyon_ipv6_ipset.sh.bak_26.1.30_YYYYMMDD_HHMMSS.sh

A new option has been added to the Local Storage (Backups) menu:

"Clear Backups"

Only backups belonging to this script are removed:

  • keenetic_zapret_otomasyon_ipv6_ipset.sh.bak_*

⚠️ Prerequisites (REQUIRED)

1 Entware must be installed

2 OPKG must be installed


🧩 What Happens on First Install?

  • OPKG packages are checked
  • Zapret is downloaded and adapted for Keenetic
  • Exit interface is requested (e.g. ppp0)
  • Default DPI profile is applied:
    Turk Telekom Fiber (TTL2 fake)
  • Zapret is started automatically

The DPI profile can be changed later from the menu.


🎛️ DPI Profile Management

  • When a DPI profile is selected from the menu:
    • The profile is applied
    • Zapret restarts automatically
  • Manual restart is not required

The active DPI profile is shown:

  • In green in the menu
  • With the ACTIVE label

🌐 IPSET (Client Selection)

The active mode is shown automatically above the IPSET menu:

  • 🟢 Mode: Entire network
    → Zapret active for all LAN clients

  • 🟡 Mode: Selected IPs
    → Zapret active only for the specified static IPs

Local networks (RFC1918, loopback, CGNAT etc.) are always technically bypassed (nozapret).


🔄 Version Check

  • Zapret version is queried from GitHub
  • Manager (script) version is compared against the GitHub Release tag

Version Format

YY.MM.DD(.N)

Examples:

  • v26.1.24
  • v26.1.24.2 → second release published on the same day

📜 License

This project is released under the GNU GPLv3 license.

  • You may freely use it
  • Modify it
  • Distribute it

However, it must be shared under the same license.


⚠️ Disclaimer

This script affects:

  • Network traffic
  • DPI / iptables / ipset configurations

Incorrect configuration may cause connectivity issues.
Use is entirely at the user's own risk.


🤝 Contributions & Feedback

  • You can open an issue
  • You can submit a feature request
  • Pull Requests are welcome

📌 GitHub Repo:
https://github.com/RevolutionTR/keenetic-zapret-manager


🔔 About Derivative Projects

Projects inspired by this project's UI design, menu architecture, or overall structure are expected to provide proper attribution:

Source: Keenetic Zapret Manager (KZM) by RevolutionTR

Usage is free under the GPL-3.0 license, however providing attribution in derivative works is an ethical requirement.

Keenetic and the Keenetic logo are registered trademarks of Keenetic Ltd. This project has no official affiliation, partnership, or sponsorship with Keenetic Ltd. The Keenetic logo is used solely to indicate that this tool is designed for Keenetic devices.