[русский язык] [telegram]
Network packet processor that bypasses Deep Packet Inspection (DPI) using netfilter queue manipulation.
- Linux-system (desktop, server or router)
- Root-access (sudo)
That's it. The installer will take care of the rest
Note
In some systems you need to run sudo b4install.sh.
wget -O ~/b4install.sh https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh && chmod +x ~/b4install.sh && ~/b4install.shIf something went wrong try to run it with the flag --sysinfo - this will diagnose the system
wget -O ~/b4install.sh https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh && chmod +x ~/b4install.sh && ~/b4install.sh --sysinfoOr pass --help to get more information about the possible options.
wget -O ~/b4install.sh https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh && chmod +x ~/b4install.sh && ~/b4install.sh --help# Install latest b4 version
./b4install.sh
# Show help message
./b4install.sh -h
# Show system diagnostics and b4 status
./b4install.sh --sysinfo
# Install specific version
./b4install.sh v1.10.0
# Quiet mode (suppress output except for errors)
./b4install.sh --quiet
# Specify geosite.dat source URL and destination
./b4install.sh --geosite-src=--geosite-src=https://example.com/geosite.dat --geosite-dst=/opt/etc/b4
# Update b4 to latest version
./b4install.sh --update
# Uninstall b4
./b4install.sh --removegit clone https://github.com/daniellavrushin/b4.git
cd b4
# Build UI
cd src/http/ui
pnpm install && pnpm build
cd ../../..
# Build binary
make build
# All architectures
make build-all
# Or build specific
make linux-amd64
make linux-arm64
make linux-armv7docker run --network host \
--cap-add NET_ADMIN --cap-add NET_RAW --cap-add SYS_MODULE \
-v /etc/b4:/etc/b4 \
lavrushin/b4:latest --config /opt/etc/b4/b4.jsonWeb UI: http://localhost:7000
services:
b4:
image: lavrushin/b4:latest
container_name: b4
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
- SYS_MODULE
volumes:
- ./config:/etc/b4
restart: unless-stopped- Linux host only — b4 uses netfilter queue (NFQUEUE) which is a Linux kernel feature
--network hostis mandatory — b4 must access the host network stack directly- Capabilities:
NET_ADMIN(firewall rules),NET_RAW(raw sockets),SYS_MODULE(kernel module loading) - Host kernel must have
nfqueuesupport (xt_NFQUEUE,nf_conntrackmodules)
# Standard Linux (systemd)
sudo systemctl start b4
sudo systemctl enable b4 # Start on load
# OpenWRT
/etc/init.d/b4 restart # start | stop
# Entware/MerlinWRT
/opt/etc/init.d/S99b4 restart # start | stophttp://your-device-ip:7000
# Print help
b4 --help
# Basic - manual domains
b4 --sni-domains youtube.com,netflix.com
# With geosite categories
b4 --geosite /etc/b4/geosite.dat --geosite-categories youtube,netflix
# Custom config
b4 --config /path/to/config.jsonThe web interface is available at http://your-ip:7000 (default port, can be changed in config file).
Features:
- Realtime metrics (connections, packets, bandwidth)
- Logs streaming with filtering and keybinds (p to pause streaming, del to clear logs)
- Domain/ip configuration on the go (Add domain or ip to a set by clicking it in the Domains tab)
- Quick domain tests and domain-specific bypass strat discovery
- ipinfo.io api integration for ASN scanning
- Custom payload capturing for faking
You can enable HTTPS for the web interface in the Web UI under Settings > Network Configuration > Web Server (TLS Certificate / TLS Key fields), or by setting tls_cert and tls_key in the config JSON:
{
"system": {
"web_server": {
"tls_cert": "/path/to/server.crt",
"tls_key": "/path/to/server.key"
}
}
}The installer automatically detects router certificates on OpenWrt (uhttpd) and Asus Merlin and enables HTTPS in the config if they are found.
B4 includes a built-in SOCKS5 proxy server. Applications that support SOCKS5 (browsers, curl, torrent clients, etc.) can route traffic through B4 without any system-wide configuration.
Enable it in the Web UI under Settings > Network Configuration > SOCKS5 Server, or in the config JSON:
{
"system": {
"socks5": {
"enabled": true,
"port": 1080,
"bind_address": "0.0.0.0",
"username": "",
"password": ""
}
}
}Leave username and password empty for no authentication.
Examples:
# curl
curl --socks5 127.0.0.1:1080 https://example.com
# Firefox: Preferences > Network Settings > Manual proxy
# SOCKS Host: 127.0.0.1, Port: 1080, SOCKS v5
# Git
git config --global http.proxy socks5://127.0.0.1:1080Note
Restart B4 after changing SOCKS5 settings.
B4 supports v2ray/xray geosite.dat files from various sources:
# Loyalsoldier
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
# RUNET Freedom
wget https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/release/geosite.dat
# Nidelon
wget https://github.com/Nidelon/ru-block-v2ray-rules/releases/latest/download/geosite.datPlace the file in /etc/b4/geosite.dat and configure categories:
sudo b4 --geosite /etc/b4/geosite.dat --geosite-categories youtube,netflix,facebookTip
All these settings can be configured via the web interface.
Contributions are accepted through GitHub pull requests.
Based on research from:
- youtubeUnblock - C-based DPI bypass
- GoodbyeDPI - Windows DPI circumvention
- zapret - Advanced DPI bypass techniques
This project is provided for educational purposes. Users are responsible for compliance with applicable laws and regulations. The authors are not responsible for misuse of this software.