UDP әрдайым жылдам емес: OpenVPN тасымалын таңдау
UDP — OpenVPN үшін орынды әдепкі параметр, үкім емес. Тасымалдарды бір жол мен бір тапсырмада салыстырып, қай тыңдаушы шын мәнінде жұмыс істеп тұрғанын тексеріңіз.
Әрбір нұсқаулық OpenVPN үшін UDP-нің TCP-ден артық екенін айтады, бірақ бұл кеңес әдепкі параметр, өлшеу емес. Тасымал пакеттердің қалай жеткізілетінін және жол оларды тастағанда не болатынын өзгертеді, туннельдің қалай шифрланатынын емес. Captive portal немесе тек 443 портына рұқсат беретін прокси артында баяу нұсқа — байланысатын жалғыз нұсқа. Төмендегі протоколдың не істейтінін желіңіздің неге рұқсат беретінінен ажыратады.
Тасымал шын мәнінде нені өзгертеді
TCP сенімді, реттелген байт ағынын ұсынады және жоғалғанның бәрін қайта жібереді, RFC 9293 айқындағандай. UDP датаграммаларды желіге береді, ал OpenVPN сол сокет үстінде өзінің сенімділік қабатын жүргізеді. TCP-ні TCP ішіне инкапсуляциялау екі қалпына келтіру циклін қабаттайды, сондықтан бір жоғалған сегмент ішкі ағынды ұстап қалуы мүмкін, сыртқы қайта жіберу келгенше. Осы әрекеттестік — UDP үшін шын дәлел, және ол өткізу қабілеті емес, кідіріс ретінде көрінеді.
Әсер шығынмен және барып-қайту уақытымен өседі. Таза жергілікті жолда екі тасымал да бірдей сезіледі, сондықтан зертханалық сынақ шағымды сирек қайталайды. Кептелген мобильді желіде айырмашылық үлкен тасымал бірдеңені байқағанша әлдеқайда бұрын интерактивті сессияларда байқалады.
Бұның ешқайсысы құпиялылыққа немесе тұтастыққа қатысты емес. TLS қол алысуы мен деректер арнасының шифры екі тасымал үшін де бірдей, сондықтан ауысу әлсіз шифр жинағын құтқара алмайды.
TCP өз орнын қайда ақтайды
Қатынау желілері — TCP таңдаудың әдеттегі себебі. Қонақүй, әуежай немесе қонақ желісі сыртқа шығатын 443-ке рұқсат беріп, қалғанын тастауы мүмкін, ал сол порттағы TCP тыңдаушы — жалғыз жұмыс істейтін профиль. Бұл қолжетімділік, өнімділік емес, және өзіндік жеткілікті себеп.
TCP жол тұрақты, бірақ аралық құрылғылар дұшпан болғанда да көмектеседі. Кейбір желілер қарапайым веб-трафикке ұқсайтын TCP сессияларын көтеріп, ұзақ UDP ағындарын қайтарады. Бұл ұқсастықтың сәтті болуы нақты желінің қасиеті, және бірде-бір нұсқаулық оны барлығына уәде ете алмайды. Протоколды кінәламас бұрын сәтсіздікке ұшыраған желінің ішінде сынап көріңіз.
Қабылданбаған кіру — тасымал мәселесі емес. Байланысты мәжбүрлеу үшін сертификатты тексеруді өшіру — нәтижесі әлдеқайда нашар басқа өзгеріс.
TCP профилін дайын ұстау — практикалық ымыра. Көптеген клиенттер екеуін де сақтайды және желі UDP жолын қабылдамағанда ауысуға мүмкіндік береді, бұл қажет болғанша ештеңе тұрмайды. Істемеу керек нәрсе — әртүрлі соңғы нүктелерге сілтейтін екі профильді жеткізу, өйткені сонда салыстыруыңыз серверлерді өлшейді.
Шын мәнінде қай тыңдаушы бар екенін тексеріңіз
Өнімділікті салыстырмас бұрын екі жақтың тасымал мен порт бойынша келісетінін растаңыз. Клиент файлында proto udp-ді proto tcp-ге өзгерту сервер тыңдаушысын жасамайды. Сервер сол протоколға конфигурациялануы керек, ал профиль оған сәйкес болуы тиіс.
grep -E '^(proto|port|remote)' /etc/openvpn/server.conf
ss -lunp | grep openvpn
ss -ltnp | grep openvpn
grep серверге нені қолдану керектігі айтылғанын басып шығарады, ал екі сокет тізімі оның неге байланғанын көрсетеді. UDP тыңдаушы тек бірінші тізімде, TCP тыңдаушы тек екіншісінде көрінеді, сондықтан жоқ жол — ешқашан қолданылмаған профильді табудың ең жылдам жолы. Портты да салыстырыңыз, өйткені 1194-тегі TCP профилі көптеген қатынау желілерінде 443-тегіден басқаша әрекет етеді. Өзгерістен кейін қызметті қайта іске қосып, байланыс туралы хабарлайтын журнал жолын оқыңыз.
Клиент жағында растау арзан: қосылымды --verb 4-пен іске қосып, журналдағы тасымал жолын оқыңыз. Егер клиент UDP деп, ал сервер TCP-де тыңдап тұрса, қол алысу ешқашан басталмайды және ешқандай реттеу көмектеспейді.
Тасымал жапсырмасын емес, жұмыс жүктемесін салыстырыңыз
Әділ салыстыру тасымалдан басқаның бәрін тұрақты ұстайды. Сол құрылғы, сол қатынау желісі, сол мақсатты хост, сол қолданба және мұратта сол сервер. Екі профиль әртүрлі хосттарға сілтесе, сол хосттарды да өлшейсіз.
Әр іске қосу үшін үш нәтиже жазыңыз: туннель орнай ма, сақтала ма және тапсырма аяқтала ма. Үлкен тасымалдар тұрып қалғанда жұмыс істейтін шағын сұраныстар тасымалға емес, пакет өлшемі мен MTU-ға сілтейді. Қайталама қосылулар жолға немесе аралық құрылғы таймаутына сілтейді.
Шын мәнінде кездесетін жағдайларда жұмыс істейтін профильді сақтаңыз, екіншісін де сақтап қойыңыз. Таңдау адамға емес, желіге тиесілі, сондықтан кез келген жалғыз әдепкі жауап бір жерде қате.