Спісы партоў для сэрвісаў 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

Чытайце вывад як кантрольны спіс. Зыходны працуе, калі пункт прызначэння адказвае пры ўключаным тунелі. Уваходны працуе, толькі калі хост па-за вашай сеткай дасягае слухача на знешнім порце. Носьбіт працуе, калі рукапоціск завяршаецца на пратаколе, які дазваляе ваша сетка доступу.

Дзве звычкі трымаюць аркуш сумленным. Запісвайце дату і версію кліента побач з кожным вынікам, бо палітыкі пастаўшчыка і значэнні па змаўчанні кліента рухаюцца абедзве. Затым прасіце самае вузкае адлюстраванне, якое абслугоўвае паток, бо запыт адкрыць усё звычайна прыносіць адмову або прапанову палепшыць тарыф, а не тэхнічны адказ.

Падобныя артыкулы