MTU, фрагментація і чому ваш WireGuard гальмує
Якщо тунель WireGuard підключається, але ледве повзе, зупиняється на великих передачах або зависає на певних сайтах — винен зазвичай MTU. Пояснюємо, що таке MTU і фрагментація, чому тунелі ламають розмір пакетів і яке саме значення треба змінити.
Що таке MTU і чому тунелі його ламають
MTU (Maximum Transmission Unit) — це найбільший пакет у байтах, який канал зв'язку пронесе одним шматком. Стандартний MTU для Ethernet — 1500. Якщо пакет завеликий для каналу, його або фрагментують на менші частини, або відкидають.
Тунель WireGuard загортає кожен ваш пакет у шифрований UDP-пакет, і ця обгортка додає накладних байтів — приблизно 60 для IPv4 і 80 для IPv6. Тож повнорозмірний пакет на 1500 байтів від вашого застосунку після інкапсуляції в WireGuard стає більшим за 1500, і нижній канал уже не пронесе його цілим. Саме тому WireGuard за замовчуванням ставить MTU інтерфейсу 1420: цей запас іде під накладні витрати шифрування, щоб інкапсульований пакет усе одно вміщався в шлях на 1500 байтів.
Чому неправильний MTU гальмує зв'язок
За нормального перебігу, коли пакет завеликий, щоб переслати його без фрагментації, маршрутизатор надсилає назад повідомлення ICMP «Fragmentation Needed», і відправник зменшує розмір пакета — це і є Path MTU Discovery (PMTUD). Біда в тому, що багато мереж і фаєрволів мовчки відкидають ці ICMP-повідомлення. Тоді ви отримуєте чорну діру PMTU: малі пакети (як початок сторінки) проходять, а великі зникають без жодної помилки. Симптом ні з чим не сплутати: з'єднання встановлюється, а тоді зависає; SSH пускає, але завмирає на виводі; одні сайти відкриваються, інші стоять; великі завантаження застрягають на 0%.
Якщо на вашому шляху MTU нижчий за очікуваний — типово для DSL/PPPoE (він додає 8 байтів), деяких мобільних мереж і подвійно інкапсульованих каналів, — то навіть 1420 від WireGuard може бути забагато, і ви влітаєте в ту саму чорну діру. Лікується це зниженням MTU тунелю, щоб інкапсульовані пакети вміщалися в реальний шлях.
Знайдіть і виставте правильний MTU
Промацайте найбільший пакет, що проходить вашим шляхом без фрагментації, і виставте MTU інтерфейсу WireGuard нижче за нього. Значення тут приблизні — міряйте свої.
# 1) Probe path MTU with don't-fragment pings (Linux/macOS). # Lower the size until it succeeds; that size + 28 = path MTU. ping -M do -s 1472 8.8.8.8 # 1472 + 28 (ICMP/IP headers) = 1500 ping -M do -s 1392 8.8.8.8 # if 1472 fails, try smaller (=> 1420) ping -M do -s 1252 8.8.8.8 # a safe fallback (=> 1280) # 2) Set the tunnel MTU in your WireGuard config, under [Interface]: # [Interface] # MTU = 1280 # widely-compatible fallback; try 1412/1420 first # 3) Apply and test a large transfer: wg-quick down wg0 && wg-quick up wg0 curl -o /dev/null https://speed.example/largefile # Rule of thumb: if small requests work but big ones hang, LOWER the MTU. # 1420 -> 1412 -> 1280 are common steps. 1280 is the IPv6 minimum and # almost always passes, at a small efficiency cost.
Відповіді на питання
Який MTU ставити для WireGuard?
Почніть із дефолтних 1420. Якщо великі передачі зависають, а дрібні запити ходять, знижуйте: типові кроки — 1412, далі 1280. 1280 — це мінімальний MTU для IPv6, він працює майже завжди, хоч і трохи втрачає в ефективності. Промацайте шлях пінгами з прапорцем don't fragment, щоб знайти найбільше значення, яке проходить.
Чому WireGuard підключається, а тоді застрягає на великих файлах?
Майже завжди це чорна діра PMTU. Ваші пакети завеликі для шляху, а ICMP-повідомлення, які мали б про це сказати, десь відкидають, тож великі пакети зникають мовчки, а малі проходять. Знизьте MTU тунелю — пакети почнуть уміщатися, і зависання зникне.
Чому в WireGuard MTU за замовчуванням 1420, а не 1500?
Бо WireGuard інкапсулює кожен пакет у шифрований UDP і додає близько 60 байтів накладних витрат (для IPv4). MTU інтерфейсу 1420 лишає під них місце, щоб інкапсульований пакет усе одно вміщався у стандартний шлях на 1500 байтів без фрагментації.
Тунель, налаштований так, щоб просто працювати
s4m тримає WireGuard і OpenVPN зі здоровими налаштуваннями за замовчуванням і архітектурою без логів, переважно в пам'яті. Якщо мережі потрібен нижчий MTU, ви правите один рядок — і все. Анонімні акаунти, приймаємо крипту.
Цю сторінку знаходять за запитами
- MTU, фрагментація і чому ваш WireGuard гальмує
- як сконфігурувати wireguard
- wireguard пояснення
- wireguard
- проксі для парсингу пояснення
- ip адреса для початківців
- безкоштовні проксі проти платних
- socks5 проксі тарифи
- openvpn для android
- налаштування проксі
- як приховати свою IP-адресу
- як виправити 429 too many requests під час скрапінгу
- http проксі для бізнесу
- як працює openvpn
- автентифікація проксі
- налаштування проксі список txt
- http проксі
Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.