Important: changing fragmentation, noise, and related Happ settings is worth doing only for advanced users who understand what they are doing. Wrong values can easily hurt speed or stability — sometimes more than the original setup.
If you do not want to fuss with tuning — use a ready-made product: it connects without manual work on length, delay, and presets, and optimal network settings are already built into the subscription. You can try the service before a long plan via full trial access for 10 rubles with full functionality.
Below — for readers ready to go deeper: how these settings work, where to enable them in Happ, sensible starting values, and how to avoid sacrificing speed for no reason.
Why fragmentation and noise matter
DPI does not look at IP addresses alone. It inspects packet structure: TLS headers, SNI, sizes, and timing. When the filter recognizes VPN-like traffic, it may block, throttle, or reset the session.
Fragmentation splits outgoing packets so the on-wire signature looks different. The most common target is the TLS Client Hello — hence the popular tlshello mode.
Noise adds extra data alongside real traffic — fixed or random — to confuse DPI heuristics. Important: noise only works when fragmentation is enabled.
If everything is already stable and fast enough, leave these settings alone. If the tunnel won’t connect, drops after minutes, or only works on mobile data, this is the section worth tuning.
Two levels: global and local settings
Happ uses a simple hierarchy:
| Level | Where it is set | When to use it |
|---|---|---|
| Global | Happ Settings → fragmentation and noise block | Same behavior for all subscriptions and servers |
| Local (subscription / server) | Link parameters, subscription body, or server card | Fine-tuning for a specific network or protocol |
Priority rule: while global fragmentation is enabled in the app, it controls everything. When global mode is off, each subscription and individual server can use its own parameters — from the provider or entered manually.
Many subscriptions ship with fragmentation already enabled by the provider. Before experimenting, check whether you are applying the same settings twice; that often hurts speed more than it helps.
Fragmentation: parameters explained
Fragmentation is defined by four groups of values. In the Happ UI the field formerly called “interval” may appear as delay — same meaning.
Enable
- Globally: fragmentation toggle in Happ settings.
- Locally:
fragmentation-enable: 1in a subscription or a flag in the server link. - URL format:
fragment=length,delay,packets[,maxSplit].
Length (fragment size)
Controls how large each piece is. Use a fixed number or a range, e.g. 50-100 or 80-250.
- Smaller values (1–10, 50–100) — more aggressive signature breaking; often needed on strict DPI.
- Larger ranges (80–250 and up) — gentler on speed but may fail on stubborn filters.
If speed drops after enabling fragmentation but the link dies without it, widen the length range before turning fragmentation off entirely.
Delay (gap between fragments)
Pause in milliseconds between sending pieces. Examples: 5, 10-20, 10-100.
- Short delay (1–5 ms) — less impact on latency, weaker timing camouflage.
- Medium (5–20 ms) — reasonable default on home networks with DPI.
- Long (50–100 ms and above) — sometimes punches through filters but noticeably increases latency.
Packets (what to split)
The most important knob. Typical values:
| Value | Effect |
|---|---|
tlshello | Fragments TLS Client Hello — first choice for SNI/TLS-based blocking |
1-2, 1-3, 1-5 | Split at specific sequence numbers; often combined |
tlshello,1-3,1-5 | Combined mode for complex filters |
For most users on filtered networks, start with tlshello. Combinations like tlshello,1-2,1-3 are worth trying only if plain tlshello fails and the connection cannot be established without fragmentation at all.
MaxSplit (maximum number of parts)
Caps how many fragments one packet may become. Example: 100-200 or fragment=80-250,10-100,tlshello,100-200.
Useful when aggressive splitting stabilizes the link but over-fragments traffic. Raising maxSplit sometimes restores part of the lost throughput.
Example fragmentation strings
fragment=50-100,5-20,tlshello
fragment=80-250,10-100,tlshello
fragment=1-10,5-20,tlshello
fragment=3,1,tlshello
The first two are typical “soft” and “medium” presets. The third is more aggressive. The fourth uses fixed values instead of ranges — handy for fine tuning when ranges behave unpredictably.
Noise: parameters explained
Noise is toggled separately and only together with fragmentation. Link format: noises=type,packet,delay[,applyTo].
Data type (noises-packet-type)
| Type | Description |
|---|---|
array | Byte array — default |
str | Plain string |
hex | Hexadecimal payload |
base64 | Encoded binary data |
rand | Random bytes — convenient without crafting a payload |
For DIY tuning, rand is usually the best starting point.
Packet (noise payload)
Fixed data when the type is not rand. Multiple strings can be passed comma-separated. A documented Happ example uses a base64 payload that mimics a DNS-like query — such noise sometimes blends better with background traffic.
Delay (gap between noise packets)
Interval in milliseconds between noise bursts. Examples: 50, 10-50.
- Too frequent noise loads the link and cuts speed.
- Too rare — weaker camouflage.
Practical start: 30–50 ms or range 10–50 ms, then measure again.
Rand and Rand-Range (random noise)
noises-rand— random block length, e.g.1-1024or1-8192.noises-rand-range— byte value range, default0-255.
Larger rand means stronger masking and more overhead. If speed collapses, lower the upper bound (1-256 instead of 1-8192).
ApplyTo (where to apply)
In the short format the fourth argument may be ip, indicating which layer receives the noise. For ISP-level blocking, variants with ip are commonly tried.
Example “fragmentation + noise” bundle
fragment=50-100,5,tlshello
noises=rand,50-150,10-50,ip
Or expanded (as a provider might send in a subscription):
fragmentation-enable: 1
fragmentation-packets: tlshello
fragmentation-length: 50-100
fragmentation-interval: 5
fragmentation-maxsplit: 100-200
noises-enable: true
noises-packet-type: base64
noises-packet: 7nQBAAABAAAAAAAABnQtcmluZwZtc2VkZ2UDbmV0AAABAAE=
noises-delay: 50
noises-rand: 1-1024
How to configure Happ
Global parameters
- Open Happ Settings.
- Find Fragmentation and Noise (labels may vary slightly by version and language).
- Enable fragmentation and set length, delay, packets — start with
tlshelloand50-100/5-20. - If the link is still unstable without noise, enable noise, type
rand, delay 30–50 ms, rand1-512or1-1024. - Connect and test speed and stability for 3–5 minutes (not only a speed test — try video or a messenger).
To use subscription-provided parameters, disable global fragmentation so provider settings take effect.
Per-server parameters
When adding a server manually (VLESS, VMess, Trojan, Shadowsocks), the server card exposes fragmentation and noise fields. They may also arrive in an import link:
trojan://…?security=tls&fragment=3,1,tlshello&…
After import, confirm values appear on the server card and do not conflict with global mode.
Subscription presets
A good VPN provider often ships tuned parameters in the subscription body or HTTP response headers. Sensible workflow:
- Turn off global fragmentation in Happ.
- Refresh the subscription (sync).
- Test as delivered.
- Only if needed — enable global settings on top or edit manually.
Practical scenarios: where to start
Scenario A: VPN never connects
- Enable fragmentation:
tlshello, length50-100, delay5-20. - Reconnect; try Wi‑Fi ↔ mobile data.
- If still failing — add noise
rand, delay10-50, rand1-512. - If necessary, strengthen: length
1-10, packetstlshello,1-3.
Scenario B: connects but drops or crawls
- Switch servers inside the subscription first — sometimes it is not DPI.
- Enable moderate fragmentation (
80-250,10-100,tlshello) without noise. - If drops continue — add light noise (
rand, delay50, rand1-256).
Scenario C: works but speed is low
- Disable global fragmentation and noise.
- Measure speed.
- If the link stays stable without them — leave them off; extra splitting only slows you down.
- If it breaks without them — enable the smallest sufficient preset (
tlshelloonly, wide length, no noise).
Scenario D: fails on home Wi‑Fi, works on LTE
Typical ISP-side DPI. Here tlshello and noise with applyTo/ip fit well. Start with Scenario A, then tune delay so you do not overload the link.
How to test without guessing
One speed test is not enough. Minimum protocol:
- Baseline — measure without fragmentation (if the link comes up at all).
- One change at a time — fragmentation first, then add noise.
- Three runs on the same server and network.
- Real load — 2–3 minutes of video, a call, or a large download.
- Save the working combo — optimal values differ by provider, protocol, and server (VLESS Reality, Trojan, WS, etc.).
Recent Happ builds include settings and server config in diagnostic reports — useful when contacting VPN support.
Additionally: No Limit Mode
Some subscriptions expose No Limit Mode, which raises the memory limit for xray-core. It does not replace fragmentation but can stabilize heavy configs (xhttp, large routing rule sets). Marked beta: enable one variant (all protocols or xhttp only), not both at once.
Common mistakes
- Duplication — global fragmentation on while the subscription already sends the same parameters. Result: extra delay and lower Mbps.
- Noise without fragmentation — will not work; enable fragmentation first.
- Over-aggressive “just in case” presets — hurt speed where the filter already passes traffic.
- No reconnect — after changing parameters, reconnect VPN and restart Happ if needed.
- Comparing different networks — a preset perfect on LTE may be excessive on another ISP.
Summary
Tuning Happ for better performance mostly means smart TLS fragmentation and, when needed, moderate noise. The workflow is simple: start with subscription defaults or a mild tlshello preset, measure, strengthen only if the link actually suffers, and roll back anything that costs speed without benefit.
There is no single magic combination — it depends on your ISP, protocol, and server. Understanding length, delay, packets, rand, and global vs local priority saves random toggling and gets you to a stable setup faster.