github DanielLavrushin/b4 v1.63.0

7 hours ago

[1.63.0] - 2026-05-22

  • FIXED: Geo databases sometimes saved to a broken b4 folder after install - in rare cases the installer would record b4/geosite.dat instead of a full path like /etc/b4/geosite.dat, and the Web UI then refused to download new files. The installer now refuses non-absolute paths, b4 fixes any broken path it finds on startup, and the UI falls back to a safe default if the stored path looks wrong.

  • ADDED: Quick toggle for all sets - new switch in the Sets page top bar that turns every set on or off in one click. Useful for temporarily disabling all bypass, or for isolating one set while debugging.

  • ADDED: "Test direct TCP" button for the MTProto proxy - new button in Settings → MTProto Proxy next to "Test connection". Probes Telegram directly, bypassing the DC Relay. Use it to tell whether a problem is on your relay/VPS or somewhere between b4 and Telegram.

  • ADDED: Auto-update for geo databases - new "Auto-update" section in Settings → Geo Databases. Optional "Refresh on startup" re-downloads both files every time b4 starts (handy when files are kept in /tmp and get wiped on reboot). A separate "Schedule" picker (Off / Daily / Weekly / Monthly) runs a background refresh on its own. Missing files are also re-downloaded automatically at startup whenever a source URL is set, even with both options off.

  • ADDED: Per-set MSS Clamping - new "MSS Clamping" section in the TCP tab of each set, alongside the existing global and per-device options. Lets you set a custom MSS for the connections in one set - for example, a small MSS for a Smart TV streaming YouTube. The set must target by IP, GeoIP, or source device; SNI domain or GeoSite targets alone are not enough.

  • FIXED: Direct TCP path used internal Telegram backend addresses instead of public ones - b4 was reading addresses from Telegram's getProxyConfig (a topology file for MTProxy operators) and dialling them directly. Those backends silently dropped the connection after the handshake because clients are not allowed there. b4 now uses the well-known public data center IPs for direct dialling, like real Telegram clients do.

  • FIXED: MTProto proxy ignored the DC Relay in Auto mode - when the upstream transport was set to "Auto" and a DC Relay was configured, b4 still went straight over WebSocket and never used the relay. The relay is now tried first in Auto mode whenever one is configured; WebSocket stays as the fallback. The mode description updates to reflect this.

  • FIXED: MTProto media data center (DC 203) did not work through the DC Relay - DC 203 traffic was sent to a port that does not exist on any relay setup, so loading media through the relay failed. DC 203 now reuses the DC 2 relay port (matching the existing WebSocket behaviour), and has a built-in default IP for direct TCP as well.

  • FIXED: Geosite/geoip updates didn't take effect until the next set edit - after downloading or uploading a new geosite or geoip file from the Web UI, b4 kept matching against the old domain and IP lists. The new file is now applied to all sets immediately.

  • FIXED: Some sites would not load through the built-in SOCKS5 server - sites like YouTube failed when accessed via the SOCKS5 proxy while working fine in direct mode.

  • FIXED: Per-device MSS could be overridden by Global MSS on iptables routers - when Global MSS and per-device MSS were both enabled, the global value silently won on iptables-based routers (Merlin, OpenWrt without nftables, Keenetic). The more specific value now wins, matching how it has always worked on nftables.

  • IMPROVED: Watchdog keeps checking while it repairs a broken site - previously, when b4 detected one site was blocked and started repairing it, the watchdog stopped checking every other site until the repair was done. If a second site broke at the same time, it had to wait its turn. The watchdog now keeps monitoring all sites during a repair, and if several sites break close together they are repaired in one go.

  • IMPROVED: MTProto connection test now detects upstream drops - the existing "Test connection" button used to only check that an IP was reachable. It now also completes the MTProto handshake and watches whether Telegram (or your relay) closes the connection right after - the failure mode users actually hit. Results show which stage broke (connect, handshake, or dropped after handshake).

What's Changed

  • feat: add quick toggle for all sets and batch enable/disable function… by @DanielLavrushin in #226

Full Changelog: v1.62.1...v1.63.0

Don't miss a new b4 release

NewReleases is sending notifications on new releases.