github DanielLavrushin/b4 v1.81.0

2 hours ago

[1.81.0] - 2026-09-06

  • CHANGED: The DPI Detector page is rebuilt around the sites typed into it, and every site is fetched twice - once directly and once through b4, so a row says whether the ISP blocks the site, whether b4 fixes it, or whether it is still blocked, with a verdict sentence on top, a button that hands the still-blocked sites to Discovery, and a report to copy into an issue. The old page fetched only through the running engine, so a well-configured b4 hid the very blocking it was meant to show. The check takes any list of domains or URLs, can be filled from the sets, and its four scopes are named by the question they answer: Sites, DNS, Hosting and CDN, Telegram. The DNS check merges the two old ones into one table per provider over UDP, DoH and DoT, judges honesty against encrypted answers and names who really answered a port 53 query; the hosting check groups targets by network with the drop point and any whitelisted SNI that gets through; the Telegram check measures upload as well as download. The target lists are refreshed from the dpi-detector project as of 2026-09-04, several dead sites and addresses are dropped, and a button fetches the current upstream lists without a release.
  • CHANGED: The Discovery page is rebuilt around the sites typed into it - results and history list the sites in the order given, with one card and a plain-words verdict per site, and a found strategy is described in a sentence and shown with the same split, fake, target and DNS rows as the Sets page before it is applied. A run shows its phase, the number of configurations tested and the live log line instead of a percentage, Stop keeps what was found and marks it unconfirmed, the options are named by what they do, and the log of the last run stays available after a restart and can be downloaded.
  • ADDED: Discovery looks for addresses the block does not cover, and can fix a site by DNS alone - when a site's known addresses are unreachable or refuse the TLS handshake, the run asks a public resolver how clients in some five hundred other regions are answered, checks which of those addresses connect and complete a handshake for the site, and pins the site to them in the set it builds, with dead-address detection switched on so a pin that stops answering is skipped. A site that loads through an honest DNS answer or through such an address is reported as found with a set that changes no packets, where before it read as needing no bypass and got no set at all.
  • FIXED: Discovery could apply a set that did not match what it had found, and a stopped run left the page stale until it was reloaded - stopping halted the polling before the run had written its history, an alternate preset carried the geo categories of every other site in the run and the DNS redirect if any of them looked poisoned, the history applied the fastest entry's set to every site of a technique family under the family's name, and a site that was never blocked read as found while the remembered winners were tried ahead of the plain fetch.
  • FIXED: A proxy set that matched every address cut the device it was bound to off the network, and taking the address back out did not bring it back - the diversion rules pick a packet by its destination alone, so the device's DNS queries to the router, its DHCP renewals and its visits to the web interface went to the upstream proxy as well, a set without a device filter marked the router's own answers to a matched client for the proxy in turn, and an address removed from a set's targets stayed in the kernel set until the set was disabled or the service restarted. #322
  • FIXED: A set routed through an interface sent only the first packet of each connection that way, and every packet after it by the ordinary uplink - the routing decision is carried on the connection mark, and b4 judges whether a router keeps that mark by looking for its own claim in the connection table, where a connection still in its handshake carries the claim on every router, including the ones whose firmware owns the mark and overwrites it a moment later; the same claim gated the source rewrite into the interface, so that was left out as well.
  • FIXED: On a router that downloads through wget, an update started from the web interface left grep's usage text in the update log, with the installer's lines stamped hours apart from b4's own - the installer asks grep whether wget's help lists a timeout option by passing the option's name, which grep took for one of its own, and the two halves of the log took their time from different clocks.

What's Changed

Full Changelog: v1.80.4...v1.81.0

Don't miss a new b4 release

NewReleases is sending notifications on new releases.