SSH виси преку OpenVPN? Прво измерете го MTU на патеката
Екото работи, а потоа списокот ја замрзнува сесијата засекогаш. Измерете го горниот лимит од двете страни пред да го смените mssfix, fragment или интерфејсниот MTU.
SSH се поврзува, се појавува командното поле и сесијата умира штом некоја наредба врати нешто обемно. Екото уште малку работи, потоа врската истекува, додека клиентот се уште го прикажува тунелот како подигнат. Сесија што е здрава до доаѓањето на податоците обично удира во ограничување на големината, а не во дефект на SSH. Проверките подолу се подредени така што најевтиното објаснување се отфрла прво.
Прочитајте го обликот на грешката пред да го допрете профилот
Малите пакети поминуваат, полните не. Командното поле, банерот или едно притискање копче влегуваат лесно; список на папка, преземање или залепен блок не влегуваат. Големината при која однесувањето се менува е трагата, а не фактот што SSH е вклучената програма.
Механизмот е откривање на MTU на патеката, што зависи од повратна информација. TCP избира големина на сегмент, и кога рутер на патот не може да го препрати добиениот пакет, треба тоа да го каже со ICMP порака. Инкапсулацијата го прави надворешниот пакет поголем од внатрешниот, затоа употребливата големина внатре во тунелот е секогаш под физичката врска. Филтрирајте ги тие ICMP пораки каде било и испраќачот никогаш нема да ја добие корекцијата, продолжува да праќа полни сегменти, а надворешниот пакет се фрла без известување.
Измерете го горниот лимит од двете страни
Споредете го MTU на тунелот со физичката врска пред да смените кое било од двете. Тунел што ја копирал физичката вредност веќе ви кажал каде е несовпаѓањето.
Проверете од внатрешноста на тунелот со барање што забранува расцепкување, намалувајќи го полезниот товар додека не се вратат одговори. Аргументот за големина смета само товар, затоа работниот број е секогаш под MTU на интерфејсот. Додајте ги назад големините на заглавјата ако ви треба бројот на интерфејсот.
ip link show tun0
ping -M do -s 1380 10.9.0.1Повторете ја проверката против јавната адреса на серверот од надвор од тунелот. Ако големите проверки не успеат и таму, ограничувањето е на патот до серверот и ниту една опција на тунелот нема да го помести. Тоа споредување ве спасува од дотерување на клиент што никогаш не бил проблемот. Запишете ги двата резултати пред да отворите конфигурациска датотека.
mssfix и fragment вршат различна работа
mssfix ја ограничува големината на сегментот што TCP врските внатре во тунелот ја објавуваат при нивното ракување. Тоа е правилниот лост за SSH, HTTPS и копирање датотеки, затоа застојот често исчезнува штом се постави. Тој воопшто не ги допира UDP товарите.
Тунел што носи и UDP служба може да продолжи да не успева откако SSH е поправен, а тој резултат ги буни сите што претпоставуваат дека една опција покрива се.
fragment е другиот механизам и различен алат. Тој ги дели преголемите пакети пред инкапсулација, важи само за UDP транспорт, додава трошок по датаграм и е документиран како последно средство за расипано откривање. Двете поставки мора да се совпаѓаат кај партнерите што го завршуваат тунелот. Кога едниот крај ограничува, а другиот расцепкува, се појавуваат предупредувања во дневникот и однесување што никој не може да го предвиди од датотеките.
Намалувањето на MTU на интерфејсот е грубата опција
Намалувањето на MTU на интерфејсот на двата краја е грубиот алат. Тоа на секој внатрешен испраќач му кажува помал број, што работи, и го товари тој трошок врз целиот сообраќај наместо врз TCP тековите на кои им треба.
Изберете го кога тунелот носи сообраќај што не можете да го ограничите, или кога клиентот е уред чиј профил не го контролирате. Применете го симетрично и запишете ја вредноста покрај профилот. Половично применета промена е полоша од никаква, зашто изгледа како поправка.
Тестирајте повторно со преносот што застоеше
Поврзете се повторно за да се вчитаат поставките, отворете нова врска и повторете ја наредбата што замрзна. Големината на сегментот се договара при ракувањето, затоа сесија што го преживеала повторното поврзување се уште ја носи старата вредност. Ping е слаб тест овде, зашто целата грешка е што малите пакети поминуваат. Користете го списокот, преземањето или залепувањето што се расипа.
Ако застојот продолжи при помала големина, погледнете на друго место: огнен ѕид со состојба што го завршува текот, дупликат адреса или рута што се поместува при повторно поврзување. Запишете ја големината на неуспешната проверка и поставката што сте ја смениле, зашто токму тој пар го прави следниот извештај корисен.