Захтеви за портове VPN-а: три реда која се пишу пре поређења
Утврдите које питање о портовима заиста имате: одлазно одредиште, улазно објављивање или сопствени пренос тунела. Затим питајте провајдера само о томе.
Листе портова за VPN услуге копирају се између страница за поређење без детаља који одлучује да ли су важне: ко започиње везу. Правило које дозвољава одлазни TCP 443 не говори ништа о томе може ли други хост да достигне слушаоца на вашем рачунару. Напишите три одвојена захтева пре него што упоредите иједан план и означите који су вашем задатку заиста потребни. Већина поређења се своди на једно кратко питање када тај лист постоји.
Раздвојите захтев пре него што прочитате било коју листу портова
Три реда покривају скоро сваки случај: долазак до одредишта изван тунела, објављивање нечега да би други могли да се повежу унутра и ношење самог тунела. Сваки ред пада из другог разлога, а политика провајдера која задовољава један може да остави друга два нетакнута. Сврставање задатка у прави ред траје пет минута и штеди расправу касније.
| Line | Who starts it | What can block it | Question for the provider |
|---|---|---|---|
| Outbound destination | Your application | Egress filter on the exit node | Is this protocol and port allowed to that destination? |
| Inbound publishing | A remote peer | No mapping, no public address, short lifetime | Which protocol, which external port, and how long does the mapping last? |
| Tunnel transport | Your client to the gateway | The access network drops that protocol | Does the client offer a fallback the local network permits? |
Маркетиншке изјаве намерно замагљују три реда. Дозвола за P2P описује политику одредишта, намењена адреса описује адресу, а тврдња да нема ограничења портова обично значи да план их не наводи. Ниједна од тих фраза не одговара на остале.
Изаберите један конкретан ток и напишите га као реченицу: покретач, пренос, порт, породица адреса, смер. Ноћни клијент за резервне копије који отпрема на удаљени хост је само одлазни. Сервер игре на вашем столу коме се пријатељи придружују је долазни. Покретање оба кроз један тунел значи да су листу потребна оба реда, а не компромис између њих.
Одлазни приступ пада на политици одредишта, а не на тунелу
Одлазни саобраћај кроз преводни пролаз ствара стање. Први пакет са унутрашње адресе и порта ствара запис превода и одговори се поклапају са њим, што је понашање пресликавања описано у RFC 3022. Тај механизам је разлог зашто картица прегледача обично ради без икаквог захтева за порт.
Две ствари то и даље кваре. Излазни чвор може да филтрира одредишта или бројеве портова које сматра злоупотребљивим, а апликација може да слуша на порту који излазна политика никада није очекивала. Питајте о пару одредишта, а не о улазним правилима, и очекујте различите одговоре за TCP и UDP.
Мерите пре него што се препирете. Покрените ово на машини која ће стајати иза тунела, једном са искљученим тунелом и једном са укљученим:
ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://example.com
Исте наредбе, исто одредиште, два стања тунела дају оператеру поређење пре и после по коме може да поступи. Замените документациону адресу хостом који вам заиста треба; важно је да се поређење понавља, а не да неки број изгледа импресивно.
Улазно објављивање захтева пресликавање, адресу и рок трајања
Ништа споља не може да започне везу са вашим слушаоцем ако нешто на јавној страни не зна где да је достави. Статична резервација порта коју држи оператер, пресликавање које затражи клијент кроз UPnP, NAT-PMP или PCP, и рутирана јавна адреса су три различита производа са три различите границе.
Поставите пет питања о било ком од њих: који протокол, који спољни порт, може ли спољни порт да се разликује од локалног, коју породицу адреса покрива и колико пресликавање преживи поновно повезивање. Резервација везана за активну сесију нестаје када та сесија заврши, шта год страница плана говорила.
Прво потврдите локалну половину, јер мртав слушалац и блокиран улазни пут споља изгледају исто:
ss -lntup | grep -E ':(8080|51820)\b'
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080
Када локални захтев врати 200, а захтев из мреже коју не контролишете и даље истекне, јаз је на јавној страни. То је тренутак да оператеру кажете протокол и спољни порт уместо да апликацију описујете по имену.
Сопствени пренос тунела је одвојено питање
Портови носача су најмањи део проблема и најлакше их је проверити. Подразумеване вредности се разликују по протоколу, а оно о чему клијент може да преговара важније је од било ког описа плана.
| Client | Outer transport | Default port | When it helps |
|---|---|---|---|
| OpenVPN | UDP | 1194 | Default mode; needs outbound UDP to pass |
| OpenVPN | TCP | 443 | UDP is dropped and TCP 443 is not |
| WireGuard | UDP | 51820 | Short handshake; there is no TCP mode |
| IKEv2/IPsec | UDP | 500 and 4500 | Mobile clients; 4500 carries NAT traversal |
Мрежа која одбацује одлазни UDP прихватиће тунел TCP 443 и одбити UDP, па резервни режим припада листу захтева. Промена носача не помера порт апликације унутар тунела и не шири политику одредишта; они остају у својим редовима.
Фрагментација заслужује једну проверу док сте тамо, јер тунел који се повеже и затим заглави на великим преносима обично има погрешан MTU, а не затворен порт:
ping -M do -s 1400 203.0.113.10 ping -M do -s 1372 203.0.113.10
У Windows-у иста провера је ping -f -l 1400 203.0.113.10. Поставите MTU тунела испод највеће величине која пролази, затим поново тестирајте пренос који није успео.
Проверите три реда пре него што платите за план
Ставите три реда на једну страницу и попуните сваку ћелију измереним резултатом уместо обећања. Ове наредбе стварају локалну половину те странице за око минут:
ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080
ping -M do -s 1400 203.0.113.10
Читајте излаз као контролну листу. Одлазни ради када одредиште одговори са укљученим тунелом. Улазни ради само када хост изван ваше мреже достигне слушаоца на спољном порту. Носач ради када се руковање заврши на протоколу који ваша приступна мрежа дозвољава.
Две навике држе лист честитим. Запишите датум и верзију клијента поред сваког резултата, јер се крећу и политике провајдера и подразумеване вредности клијената. Затим тражите најтешње пресликавање које служи току, јер захтев да се све отвори обично заради одбијање или допунску продају, а не технички одговор.