VPN xizmatlari uchun port ro‘yxatlari ular muhimmi yoki yo‘qligini hal qiladigan tafsilotsiz taqqoslash sahifalari orasida ko‘chiriladi: ulanishni kim boshlaydi. Chiquvchi TCP 443 ga ruxsat beruvchi qoida boshqa xost sizning mashinangizdagi tinglovchiga yeta oladimi-yo‘qmi haqida hech narsa demaydi. Bitta rejani taqqoslashdan oldin uchta alohida talab yozing va vazifangizga qaysilari haqiqatan kerakligini belgilang. O‘sha varaq mavjud bo‘lsa, ko‘p taqqoslashlar bitta qisqa savolga qisqaradi.

Har qanday port ro‘yxatini o‘qishdan oldin talabni ajrating

Uch satr deyarli barcha holatlarni qamrab oladi: tunnelning narigi tomonidagi manzilga yetish, boshqalar ichkariga ulanashi uchun biror narsani e’lon qilish va tunnelning o‘zini tashish. Har bir satr boshqa sabab bilan muvaffaqiyatsiz bo‘ladi va bittasini qanoatlantiradigan provayder siyosati qolgan ikkitasiga tegmasligi mumkin. Vazifani to‘g‘ri satrga joylashtirish besh daqiqa vaqt oladi va keyin bir tortishuvni tejaydi.

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?

Marketing bayonotlari uch satrni ataylab xiralashtiradi. P2P ruxsati manzil siyosatini tavsiflaydi, ajratilgan manzil manzilni tavsiflaydi, port cheklovlari yo‘qligi haqidagi da’vo esa odatda reja ularni sanab o‘tmasligini bildiradi. Bu iboralarning hech biri qolganlariga javob bermaydi.

Bitta aniq oqimni tanlab, uni gap sifatida yozing: boshlovchi, transport, port, manzillar oilasi, yo‘nalish. Uzoq xostga yuklaydigan tungi zaxira mijozi faqat chiquvchi. Stolingizdagi do‘stlar qo‘shiladigan o‘yin serveri kiruvchi. Ikkalasini bitta tunneldan o‘tkazish varaq ikkala satrni ham talab qilishini bildiradi, ular orasidagi kelishuvni emas.

Chiquvchi kirish tunnelda emas, manzil siyosatida muvaffaqiyatsiz bo‘ladi

Tarjima qiluvchi shlyuz orqali chiquvchi trafik holat yaratadi. Ichki manzil va portdan kelgan birinchi paket tarjima yozuvini quradi va javoblar unga mos keladi; bu RFC 3022 da tasvirlangan xaritalash xatti-harakati. Aynan shu mexanizm brauzer yorlig‘i odatda hech qanday port so‘rovisiz ishlashining sababidir.

Ikki narsa buni hanuz buzadi. Chiqish tuguni suiiste’mol qilinadigan deb hisoblagan manzillarni yoki port raqamlarini filtrlashi mumkin, ilova esa chiqish siyosati hech qachon kutmagan portda tinglayotgan bo‘lishi mumkin. Kiruvchi qoidalar haqida emas, manzil juftligi haqida so‘rang va TCP hamda UDP uchun har xil javoblarni kuting.

Bahslashishdan oldin o‘lchang. Bularni tunnel orqasida turadigan mashinada ishga tushiring, bir marta tunnel o‘chirilganda va bir marta yoqilganda:

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

Xuddi shu buyruqlar, xuddi shu manzil, tunnelning ikki holati operatorga asosida harakat qilish mumkin bo‘lgan oldin-keyin taqqoslashini beradi. Hujjat manzilini haqiqatan kerak bo‘lgan xost bilan almashtiring; muhimi taqqoslashning takrorlanishi, biron raqamning ta’sirli ko‘rinishi emas.

Ichkariga e’lon qilish xaritalash, manzil va umr talab qiladi

Ochiq tomonda biror narsa uni qayerga yetkazishni bilmasa, tashqaridan hech narsa sizning tinglovchingizga ulanish boshlay olmaydi. Operator ushlab turgan statik port rezervatsiyasi, mijoz UPnP, NAT-PMP yoki PCP orqali so‘ragan xaritalash va marshrutlangan ochiq manzil — bu uch xil mahsulot, uch xil chegara bilan.

Ularning har biri haqida beshta savol bering: qaysi protokol, qaysi tashqi port, tashqi port mahalliydan farq qilishi mumkinmi, qaysi manzillar oilasini qamrab oladi va qayta ulangandan keyin xaritalash qancha turadi. Faol sessiyaga bog‘langan rezervatsiya o‘sha sessiya tugaganda yo‘qoladi, reja sahifasi nima desa ham.

Avval mahalliy yarmini tasdiqlang, chunki o‘lik tinglovchi va to‘silgan kiruvchi yo‘l tashqaridan bir xil ko‘rinadi:

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

Mahalliy so‘rov 200 qaytarsa va siz boshqarmaydigan tarmoqdan kelgan so‘rov hali ham vaqt tugab tugasa, bo‘shliq ochiq tomonda. Ilovani nomi bilan tasvirlash o‘rniga operatorga protokol va tashqi portni aytish kerak bo‘lgan lahza shu.

Tunnelning o‘z transporti alohida savol

Tashuvchi portlari muammoning eng kichik qismi va eng oson qidiriladigani. Standart qiymatlar protokolga qarab farq qiladi, mijoz nimani kelishib olishi esa har qanday reja tavsifidan muhimroq.

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

Chiquvchi UDP ni tashlaydigan tarmoq TCP 443 tunnelini qabul qiladi va UDP ni rad etadi, shuning uchun zaxira rejim talablar varaqiga tegishli. Tashuvchini almashtirish tunnel ichidagi ilova portini siljitmaydi va manzil siyosatini kengaytirmaydi; ular o‘z satrlarida qoladi.

U yerda bo‘lganingizda bo‘laklanish bitta sinovga arziydi, chunki ulanib keyin katta uzatishlarda tiqilib qoladigan tunnelda odatda yopiq port emas, noto‘g‘ri MTU bo‘ladi:

ping -M do -s 1400 203.0.113.10
ping -M do -s 1372 203.0.113.10

Windows da xuddi shu sinov — ping -f -l 1400 203.0.113.10. O‘tadigan eng katta o‘lchamdan pastroq tunnel MTU sini qo‘ying, so‘ng muvaffaqiyatsiz uzatishni qayta sinab ko‘ring.

Reja uchun to‘lashdan oldin uch satrni tekshiring

Uch satrni bitta sahifaga qo‘ying va har bir katakni va’da o‘rniga o‘lchangan natija bilan to‘ldiring. Bu buyruqlar o‘sha sahifaning mahalliy yarmini taxminan bir daqiqada yaratadi:

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

Natijani nazorat ro‘yxati sifatida o‘qing. Tunnel yoqilganda manzil javob bersa, chiquvchi ishlaydi. Faqat tarmog‘ingizdan tashqaridagi xost tashqi portdagi tinglovchiga yetsa, kiruvchi ishlaydi. Tashuvchi kirish tarmog‘ingiz ruxsat bergan protokolda qo‘l berish tugasa ishlaydi.

Ikki odat varaqni halol tutadi. Har bir natija yoniga sana va mijoz versiyasini yozib qo‘ying, chunki provayder siyosatlari ham, mijoz standart qiymatlari ham o‘zgaradi. So‘ng oqimga xizmat qiladigan eng tor xaritalashni so‘rang, chunki hammasini ochish iltimosi odatda texnik javob o‘rniga rad yoki qo‘shimcha savdo keltiradi.

O'xshash maqolalar