Списки портів для 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

Читайте вивід як контрольний список. Вихідний працює, коли призначення відповідає при ввімкненому тунелі. Вхідний працює лише тоді, коли хост поза вашою мережею досягає слухача на зовнішньому порту. Носій працює, коли рукостискання завершується на протоколі, який дозволяє ваша мережа доступу.

Дві звички тримають аркуш чесним. Записуйте дату й версію клієнта поруч із кожним результатом, бо рухаються і політики постачальників, і значення за замовчуванням клієнтів. Потім просіть найвужче відображення, що обслуговує потік, бо прохання відкрити все зазвичай приносить відмову або допродаж, а не технічну відповідь.

Схожі статті