English Documentation | Документация на русском
Auto BGP Feed is an automated, high-performance BGP route feed gateway and control panel for selective VPN routing across all major home routers (MikroTik RouterOS 7/6, Keenetic, OpenWrt, VyOS/EdgeOS, Cisco IOS, OPNsense/pfSense) and Linux servers.
It dynamically separates domestic internet traffic (banking, government portals, regional streaming, marketplaces) from foreign/restricted traffic, routing blocked or foreign destinations through your VPN tunnel while keeping local traffic over direct ISP connections at full native wire speed.
💡 Inspired by LeonidOz/BGP-Antifilter and completely re-engineered into an ultra-lightweight microservice architecture (~89 MB RAM), dynamic BGP pool, multi-country feeds, and Anycast CDN classification.
| Feature | Standard BGP Feeds | Auto BGP Feed |
|---|---|---|
| Client Connection | Requires static public IP. Drops on IP change. | Dynamic BGP Pool (0.0.0.0/0) — Connect from any dynamic, private, or NATed IP. |
| RAM Footprint | 300–500 MB RAM | ~89 MB RAM for the entire stack (BIRD 2 + FRR + FastAPI). |
| Country Feeds | Hardcoded to a single country. | Universal Country Feeds (COUNTRY) — 1-click addition of any country (UA, PL, KZ, US, DE...). |
| Cloudflare / CDN | Resolves 1 host IP (Cloudflare rotates edge nodes every 5m, breaking VPN routing). | Smart-DNS Anycast Classifier: Auto-detects CDNs, covers /24 blocks, and aggregates adjacent ranges (collapse_addresses). |
| Network Intelligence | None | Universal Inspector: 1-click lookup for Country, ISP, ASN, CDN status, and live links to 5 BGP aggregators. |
| Route Explorer | Static text file | Interactive Route Explorer with real-time instant search across 8.6k+ prefixes. |
| Multi-User & Security | Single shared password in plaintext | Role-Based Access Control (Admin / Viewer) + PBKDF2-SHA256 password hashing. |
| Client Telemetry | None | Real-time client RTT ping (ms), session uptime, Keepalive/Update packet counters. |
| Auto-Updates | Manual daemon restart | Automated background cycle (every 15 min) + BGP Soft-Reconfiguration with zero downtime. |
- Any VPS with 512 MB RAM and 1 vCPU (Ubuntu 22.04/24.04, Debian 11/12, or Alpine).
- Open incoming ports on firewall/provider:
179/TCP(BGP protocol for router communication)8080/TCP(Web management panel)
Run this single command on your clean server:
curl -sSL https://raw.githubusercontent.com/milkmann/AutoBgpFeed/main/install.sh | bashThe script will automatically:
- Install Docker & Docker Compose if missing.
- Interactively prompt for your desired web port, admin username, and password.
- Build and launch all 3 microservice containers in the background.
- Output your ready-to-use MikroTik connection script.
# 1. Install Docker & Docker Compose (if not already installed)
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
# 2. Clone the repository
git clone https://github.com/milkmann/AutoBgpFeed.git /opt/AutoBgpFeed
cd /opt/AutoBgpFeed
# 3. Create configuration file
cp .env.example .env
nano .env # Set SERVER_IP, ADMIN_USER, ADMIN_PASS, WEB_PORT
# 4. Build and start containers
docker compose up -d --buildAccess the dashboard at: http://YOUR_SERVER_IP:8080.
- Log in to the Web Panel: Open
http://YOUR_SERVER_IP:8080and log in with your credentials. - Connect your Router: Go to the Settings tab, choose your router platform (MikroTik RouterOS 7/6, Keenetic, OpenWrt, etc.), and copy the generated BGP configuration.
- Add Blocked Sites or Countries:
- Go to Lists & Smart Add or Tools & Intelligence.
- Type any domain (
youtube.com,rutracker.org), ASN (AS62041), IP (1.1.1.1), or Country (Ukraine,Poland,UA,PL) ➔ click Add.
- Instant Synchronization: Within seconds, the BGP engine generates the new routing tables and pushes them to your connected routers without interrupting active connections.
1. MikroTik RouterOS 7
# 1. Create BGP routing filter on MikroTik (replace wireguard1 with your VPN interface)
/routing/filter/rule
add chain=antifilter-in disabled=no rule="if (bgp-communities includes 65000:1000) { set gw wireguard1; accept; } else { reject; }"
# 2. Connect to the BGP Server
/routing/bgp/connection
add name="bgp-feed" remote.address=YOUR_SERVER_IP remote.port=179 remote.as=65000 \
as=64999 local.role=ebgp multihop=yes connect=yes listen=no \
routing-table=main input.filter=antifilter-in output.filter-chain=discard
2. MikroTik RouterOS 6
# 1. Create BGP filters
/routing filter add chain=antifilter-in bgp-communities=65000:1000 set-gateway=wireguard1 action=accept
/routing filter add chain=antifilter-in action=reject
# 2. Configure BGP Peer
/routing bgp instance set default as=64999
/routing bgp peer add name="bgp-feed" remote-address=YOUR_SERVER_IP remote-as=65000 \
multihop=yes in-filter=antifilter-in out-filter=discard hold-time=3m
3. Keenetic (Entware / BIRD 2)
Install BIRD2 (opkg install bird2) and add to /opt/etc/bird.conf:
protocol bgp bgp_feed {
local as 64999;
neighbor YOUR_SERVER_IP as 65000;
multihop;
ipv4 {
import filter {
if (65000, 1000) ~ bgp_community then {
gw = 10.0.0.1; # IP of your VPN gateway
accept;
}
reject;
};
export none;
};
}4. OpenWrt (BIRD 2)
Install BIRD2 (opkg install bird2) and add to /etc/bird.conf:
protocol bgp bgp_feed {
local as 64999;
neighbor YOUR_SERVER_IP as 65000;
multihop;
ipv4 {
import filter {
if (65000, 1000) ~ bgp_community then {
gw = 10.0.0.1; # IP of your VPN gateway (wg0/tun0)
accept;
}
reject;
};
export none;
};
}5. VyOS / Ubiquiti EdgeOS
# 1. Routing Policy
set policy route-map BGP-OUT-DISCARD rule 10 action reject
set policy route-map BGP-IN-VPN rule 10 match community 65000:1000
set policy route-map BGP-IN-VPN rule 10 set next-hop 10.0.0.1
set policy route-map BGP-IN-VPN rule 20 action reject
# 2. BGP Peer
set protocols bgp system-as 64999
set protocols bgp neighbor YOUR_SERVER_IP remote-as 65000
set protocols bgp neighbor YOUR_SERVER_IP ebgp-multihop 10
set protocols bgp neighbor YOUR_SERVER_IP address-family ipv4-unicast route-map import BGP-IN-VPN
set protocols bgp neighbor YOUR_SERVER_IP address-family ipv4-unicast route-map export BGP-OUT-DISCARD6. Cisco IOS / IOS-XE
! 1. Route-Map & Communities
ip community-list standard CL-FEED permit 65000:1000
!
route-map BGP-IN-VPN permit 10
match community CL-FEED
set ip next-hop 10.0.0.1
route-map BGP-OUT-DISCARD deny 10
!
! 2. BGP Configuration
router bgp 64999
neighbor YOUR_SERVER_IP remote-as 65000
neighbor YOUR_SERVER_IP ebgp-multihop 10
address-family ipv4
neighbor YOUR_SERVER_IP activate
neighbor YOUR_SERVER_IP route-map BGP-IN-VPN in
neighbor YOUR_SERVER_IP route-map BGP-OUT-DISCARD out
exit-address-family
Auto BGP Feed — это автоматизированный BGP-шлюз и веб-панель управления списками маршрутов для выборочной VPN-маршрутизации на любых домашних роутерах (MikroTik RouterOS 7/6, Keenetic, OpenWrt, VyOS/EdgeOS, Cisco IOS, OPNsense/pfSense) и Linux-серверах.
Система в реальном времени разделяет внутригосударственный трафик (банки, госуслуги, стриминги, маркетплейсы) и зарубежный/заблокированный, автоматически направляя нужные ресурсы через VPN-туннель, а весь локальный трафик оставляя через прямого домашнего провайдера на максимальной скорости.
💡 Проект вдохновлен концепцией LeonidOz/BGP-Antifilter и полностью переработан в высокопроизводительную модульную архитектуру с минимальным потреблением ресурсов (~89 MB RAM), динамическим BGP-пулом, поддержкой стран целиком и умной CDN-маршрутизацией.
| Параметр | Стандартные BGP-фиды | Auto BGP Feed |
|---|---|---|
| Подключение клиентов | Требует фиксированного белого IP. При смене IP сессия падает. | Dynamic BGP Pool (0.0.0.0/0) — роутер подключается с любого динамического, серого или NAT IP. |
| Потребление памяти | 300–500 MB RAM | Всего ~89 MB RAM на весь стек (BIRD 2 + FRR + FastAPI). |
| Страновые пулы | Жестко привязаны к 1 стране. | Универсальные страновые фиды (COUNTRY) — добавление любой страны в 1 клик (UA, PL, KZ, US, DE...). |
| Cloudflare / CDN | Добавляет 1 точечный IP (через 5 минут Cloudflare меняет ноду и сайт перестает открываться). | Smart-DNS Anycast Classifier: авто-детект CDN, охват /24 подсетей и авто-компрессия (collapse_addresses). |
| Сетевая разведка | Отсутствует | Network Intelligence: мгновенное определение страны, провайдера, ASN, CDN-статуса и ссылки на 5 независимых BGP-агрегаторов. |
| База сетей | Статический текстовый файл | Интерактивный Route Explorer со сквозным поиском по базе 8.6k+ префиксов. |
| Пользователи и безопасность | Один пароль в файле | Управление пользователями (Admin / Viewer) + PBKDF2-SHA256 криптохэширование паролей. |
| Телеметрия роутера | Нет | Живой пинг клиента (RTT в мс), аптайм сессии, счетчики Keepalive/Update сообщений. |
| Автообновление | Ручной перезапуск демона | Фоновый цикл автообновления (каждые 15 мин) + BGP Soft-Reconfiguration без разрыва связи. |
- Любой VPS-сервер: 512 МБ RAM и 1 ядро CPU (Ubuntu 22.04/24.04, Debian 11/12 или Alpine).
- Открытые входящие порты:
179/TCP— для подключения роутеров по протоколу BGP.8080/TCP(или 8088) — для веб-панели управления.
Подключитесь к вашему VPS по SSH и выполните команду:
curl -sSL https://raw.githubusercontent.com/milkmann/AutoBgpFeed/main/install.sh | bashУстановщик сделает всё сам:
- Установит Docker и Docker Compose (если их ещё нет).
- Запросит желаемый порт панели, логин и пароль администратора.
- Скачает актуальные файлы, соберет и запустит 3 легковесных контейнера.
- Выведет готовые команды для подключения вашего роутера.
Если вы предпочитаете ручной контроль:
# 1. Установите Docker (если не установлен)
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
# 2. Клонируйте репозиторий проекта
git clone https://github.com/milkmann/AutoBgpFeed.git /opt/AutoBgpFeed
cd /opt/AutoBgpFeed
# 3. Настройте файл окружения
cp .env.example .env
nano .env
# Укажите ваш SERVER_IP, ADMIN_USER, ADMIN_PASS и WEB_PORT
# 4. Соберите и запустите проект в фоновом режиме
docker compose up -d --buildПанель управления откроется по адресу: http://IP_ВАШЕГО_СЕРВЕРА:8080.
- Вход в панель: Перейдите в браузере по адресу
http://IP_СЕРВЕРА:8080и введите логин и пароль. - Подключение роутера к серверу:
- Откройте вкладку «Настройки».
- Выберите вкладку вашей платформы (MikroTik RouterOS 7/6, Keenetic, OpenWrt, VyOS или Cisco).
- Скопируйте готовый скрипт и выполните его в терминале вашего роутера.
- На вкладке «Панель» статус BGP сменится на
Established(с показом пинга и аптайма).
- Добавление ресурсов в VPN:
- Через вкладку «Инструменты и Разведка»: Введите любой домен (например,
instagram.com,t.me), ASN (AS62041) или страну (Украина,Польша,UA,PL). Система проверит сервер и предложит нажать одну кнопку для добавления. - Через вкладку «Списки и Smart Add»: Выберите тип источника (
COUNTRY,DOMAIN,ASN,IP/CIDR,URL) и сохраните правило.
- Через вкладку «Инструменты и Разведка»: Введите любой домен (например,
- Автоматическая синхронизация: Роутер мгновенно получает маршруты по BGP без перезагрузки и разрыва соединений.
- Проверка работы: Проверьте доступность добавленного сайта на компьютере или выполните
traceroute domain.com— пакеты пойдут через ваш VPN-шлюз!
# Просмотр логов всех сервисов в реальном времени:
docker compose logs -f
# Перезапуск стека:
docker compose restart
# Обновление проекта до последней версии с GitHub:
git pull
docker compose up -d --build
# Остановка контейнеров:
docker compose down1. MikroTik RouterOS 7
# 1. Создаем правило фильтрации входящих BGP-маршрутов (замените wireguard1 на имя вашего VPN-интерфейса)
/routing/filter/rule
add chain=antifilter-in disabled=no rule="if (bgp-communities includes 65000:1000) { set gw wireguard1; accept; } else { reject; }"
# 2. Подключаемся к BGP-узлу
/routing/bgp/connection
add name="bgp-feed" remote.address=YOUR_SERVER_IP remote.port=179 remote.as=65000 \
as=64999 local.role=ebgp multihop=yes connect=yes listen=no \
routing-table=main input.filter=antifilter-in output.filter-chain=discard
2. MikroTik RouterOS 6
# 1. Создаем фильтры маршрутизации
/routing filter add chain=antifilter-in bgp-communities=65000:1000 set-gateway=wireguard1 action=accept
/routing filter add chain=antifilter-in action=reject
# 2. Настраиваем BGP Peer
/routing bgp instance set default as=64999
/routing bgp peer add name="bgp-feed" remote-address=YOUR_SERVER_IP remote-as=65000 \
multihop=yes in-filter=antifilter-in out-filter=discard hold-time=3m
3. Keenetic (Entware / BIRD 2)
Установите BIRD2 (opkg update && opkg install bird2) и добавьте в /opt/etc/bird.conf:
protocol bgp bgp_feed {
local as 64999;
neighbor YOUR_SERVER_IP as 65000;
multihop;
ipv4 {
import filter {
if (65000, 1000) ~ bgp_community then {
gw = 10.0.0.1; # IP адрес вашего VPN-шлюза
accept;
}
reject;
};
export none;
};
}4. OpenWrt (BIRD 2)
Установите BIRD2 (opkg update && opkg install bird2) и добавьте в /etc/bird.conf:
protocol bgp bgp_feed {
local as 64999;
neighbor YOUR_SERVER_IP as 65000;
multihop;
ipv4 {
import filter {
if (65000, 1000) ~ bgp_community then {
gw = 10.0.0.1; # IP адрес VPN-шлюза (wg0/tun0)
accept;
}
reject;
};
export none;
};
}5. VyOS / Ubiquiti EdgeOS
# 1. Настройка политик фильтрации
set policy route-map BGP-OUT-DISCARD rule 10 action reject
set policy route-map BGP-IN-VPN rule 10 match community 65000:1000
set policy route-map BGP-IN-VPN rule 10 set next-hop 10.0.0.1
set policy route-map BGP-IN-VPN rule 20 action reject
# 2. Настройка BGP пира
set protocols bgp system-as 64999
set protocols bgp neighbor YOUR_SERVER_IP remote-as 65000
set protocols bgp neighbor YOUR_SERVER_IP ebgp-multihop 10
set protocols bgp neighbor YOUR_SERVER_IP address-family ipv4-unicast route-map import BGP-IN-VPN
set protocols bgp neighbor YOUR_SERVER_IP address-family ipv4-unicast route-map export BGP-OUT-DISCARD6. Cisco IOS / IOS-XE
! 1. Фильтры Community и Route-Map
ip community-list standard CL-FEED permit 65000:1000
!
route-map BGP-IN-VPN permit 10
match community CL-FEED
set ip next-hop 10.0.0.1
route-map BGP-OUT-DISCARD deny 10
!
! 2. Настройка BGP
router bgp 64999
neighbor YOUR_SERVER_IP remote-as 65000
neighbor YOUR_SERVER_IP ebgp-multihop 10
address-family ipv4
neighbor YOUR_SERVER_IP activate
neighbor YOUR_SERVER_IP route-map BGP-IN-VPN in
neighbor YOUR_SERVER_IP route-map BGP-OUT-DISCARD out
exit-address-family
Licensed under the Apache License 2.0. See LICENSE for details.