Списоците на порти за VPN услуги се копираат меѓу страниците за споредба без детаљот што одлучува дали се важни: кој ја започнува врската. Правило што дозволува излезен TCP 443 не кажува ништо за тоа дали друг домаќин може да стигне до слушателот на вашата машина. Напишете три одделни барања пред да споредите и еден план и означете кои на вашата задача навистина ѝ требаат. Кога постои таков лист, повеќето споредби се сведуваат на едно кратко прашање.

Одделете го барањето пред да прочитате било кој список на порти

Три реда ги покриваат речиси сите случаи: стигнување до одредиште надвор од тунелот, објавување нешто за да можат другите да се поврзат внатре и носење на самиот тунел. Секој ред пропаѓа од различна причина, а политиката на давателот што задоволува еден може да ги остави другите два недопрени. Сместувањето на задачата во вистинскиот ред трае пет минути и заштедува расправија подоцна.

LineWho starts itWhat can block itQuestion for the provider
Outbound destinationYour applicationEgress filter on the exit nodeIs this protocol and port allowed to that destination?
Inbound publishingA remote peerNo mapping, no public address, short lifetimeWhich protocol, which external port, and how long does the mapping last?
Tunnel transportYour client to the gatewayThe access network drops that protocolDoes 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, а барањето од мрежа што не ја контролирате уште завршува со истекување, јазот е на јавната страна. Тоа е моментот да му се каже на операторот протокол и надворешна порта наместо апликацијата да се опишува по име.

Сопствениот транспорт на тунелот е одделно прашање

Портите на носачот се најмалиот дел од проблемот и најлесни за проверка. Стандардните вредности се разликуваат по протокол, а тоа за што клиентот може да преговара е поважно од кој било опис на план.

ClientOuter transportDefault portWhen it helps
OpenVPNUDP1194Default mode; needs outbound UDP to pass
OpenVPNTCP443UDP is dropped and TCP 443 is not
WireGuardUDP51820Short handshake; there is no TCP mode
IKEv2/IPsecUDP500 and 4500Mobile 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

Читајте го излезот како контролна листа. Излезното работи кога одредиштето одговара со вклучен тунел. Влезното работи само кога домаќин надвор од вашата мрежа стигнува до слушателот на надворешната порта. Носачот работи кога ракувањето завршува на протокол што го дозволува вашата пристапна мрежа.

Две навики го држат листот чесен. Запишете го датумот и верзијата на клиентот до секој резултат, бидејќи и политиките на давателите и стандардните вредности на клиентот се движат. Потоа побарајте најтесното мапирање што му служи на текот, бидејќи барањето да се отвори сето обично заработува одбивање или дополнителна продажба, а не технички одговор.

Поврзани статии