HabrAugust 10, 2026🇷🇺Translated from Russian

Why Distributed Mesh Architectures Resist IP Blocking Better Than Centralized Servers

One of the most frequent questions asked about distributed censorship-circumvention systems is why the architecture must be made so complex when a simple dedicated server could deliver access. The answer lies in the fundamental weakness of any finite set of static IP addresses when confronted with modern blocking techniques.

Single-server and small-server deployments are easy to develop and maintain, yet they share one critical vulnerability: once an address enters a blocklist, service through that address stops. Discovery does not require deep packet inspection of every packet; it is enough to recognize characteristic traffic patterns and record the destination. When the number of addresses is limited, they can be identified and blocked sequentially.

Maintaining many servers does not solve the problem by itself. If a significant portion of the infrastructure belongs to the same provider or ASN, a single block can affect numerous nodes simultaneously. Moreover, any fixed list of addresses can be gradually updated by the blocking party as long as the list changes slowly.

The decisive difference in the distributed model is that user devices themselves become transport nodes. Clients form a mesh and can relay traffic for one another in a P2P manner similar to the original Skype architecture. Consequently, data transfer no longer depends on every user connecting to one of a small number of dedicated servers. The resulting network lacks a stable, enumerable list of addresses; its composition changes with the set of active participants.

Individual client nodes can still be discovered and blocked, yet the detected set constantly becomes outdated. Address blocking therefore turns from the relatively simple task of maintaining a server list into the continuous task of discovering a dynamic participant set.

A separate backbone network continues to exist, but its role is limited to trust, coordination, and providing exit points. It helps clients determine which configurations and nodes to trust and is not intended to replace the client mesh for transport.

Mesh operation does not eliminate the need for anti-DPI measures. Techniques such as uTLS ClientHello rotation and decoy traffic remain essential to prevent individual connections from being easily classified. The two layers address different problems: anti-DPI mechanisms make single connections harder to fingerprint, while the distributed architecture prevents blocking from being reduced to maintenance of a small, stable server list.

The approach carries tangible costs. When a device relays transit traffic it consumes its own bandwidth and battery, an especially noticeable burden on mobile clients. Operational safeguards are also required to prevent abuse of the relay mechanism and to account for devices that cannot sustain server-level loads. The result is a deliberate engineering trade-off: added system complexity is accepted in exchange for turning a static blocking task into a continuously evolving discovery problem.

Related articles

HabrPrivacy & Surveillance

Apple Updates Private Relay Domain for Sign in with Apple: Why Email Cannot Serve as Account Identity

Apple announced that new Private Relay addresses for Sign in with Apple will use the private.icloud.com domain starting later in 2026, while existing privaterelay.appleid.com addresses will continue functioning without interruption. The change highlights a deeper architectural issue: many applications incorrectly treat email addresses returned by Apple as stable identifiers rather than transient contact channels. Proper implementation requires separating the signed identity token, the verified subject claim, and the optional email relay address into distinct data models. Developers must validate the full identity token on the server, including signature, issuer, audience, nonce, and expiration, before linking any Apple identity to an internal account. Using provider and subject pairs as the unique key prevents duplicate accounts, accidental merges, and broken logins when relay domains or email claims change. The article provides concrete recommendations for data models, token verification boundaries, and test cases that remain resilient to future Apple updates.

SecuritylabPrivacy & Surveillance

Step-by-Step Guide to Removing Personal Data from Search Engines, Databases and Social Networks

The guide provides a practical seven-step checklist for individuals seeking to reduce their digital footprint by removing personal information from websites, search engines, and social platforms. It emphasizes starting with a 20-minute audit to compile exact URLs rather than vague requests, followed by direct contact with site owners under Russia's 152-FZ personal data law. Subsequent steps cover submissions to Yandex and Google for de-indexing, manual cleanup of old social media accounts, handling of phone numbers in caller ID services, and removal from directories and review sites. The process includes templates for formal requests, timelines for responses, and escalation paths to Roskomnadzor when operators fail to comply. Special attention is given to leaked databases, where technical removal is impossible, and to web archives such as Internet Archive that require specific legal justifications. The full cycle is estimated at two months, with quarterly maintenance recommended to sustain results.

HabrPrivacy & Surveillance

telEgo Combines MTProxy and WEB Proxy on Single Port 443 with TLS Fronting

telEgo, a Go-based Telegram MTProxy implementation using the gnet network engine, now supports all four WEB proxy transport modes alongside traditional MTProxy connections on the same public port 443. The solution allows FakeTLS with ee secrets, Obfuscated2 with dd secrets, and WEB carriers including https, https-lanes, websocket, and websocket-lanes without requiring separate ports or secret changes. telEgo performs handshake detection, forwards ordinary TLS traffic to Nginx on a private port using PROXY protocol v2, and routes authenticated WEB streams back to the internal MTProxy backend. The setup uses Docker Compose with separate containers for telEgo, Nginx, and certificate management via Certbot, keeping ports 8080, 8443, and 8444 internal. Existing MTProxy links continue to function while new WEB proxy links become available for Telegram Desktop. The configuration supports Prometheus metrics, connection limits, and automatic certificate renewal through systemd timers.

HabrPrivacy & Surveillance

From HAProxy to VLESS+Reality: Overcoming DPI Blocks for MTProto Telegram Proxies

A detailed case study describes the challenges of running an MTProto proxy for Telegram on Russian servers facing ISP-level DPI. Initial attempts using HAProxy TCP relays and SOCKS5 tunnels failed because modern DPI systems detect MTProto and fake-TLS signatures regardless of transparent forwarding. The author eventually succeeded by layering mtg with an Xray VLESS+Reality tunnel that performs genuine TLS 1.3 handshakes to legitimate domains. Key configuration pitfalls included the xtls-rprx-vision flow breaking non-TLS payloads, missing mux causing handshake timeouts on short-lived connections, and provider-specific network policies. Final architecture places mtg and an Xray client on the Russian entry server while the foreign exit server runs Xray in VLESS+Reality inbound mode. The guide supplies complete docker-compose examples, key generation commands, and a checklist of common misconfigurations to avoid.