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
Гаралтыг шалгах жагсаалт мэт унш. Туннель асаалттай үед очих газар хариулж байвал гадагш гарах нь ажиллана. Таны сүлжээний гаднах хост гадаад портын сонсогчид хүрсэн үед л дотогш орох нь ажиллана. Таны хандалтын сүлжээ зөвшөөрсөн протокол дээр гар барилт дууссан үед тээвэрлэгч ажиллана.
Хоёр дадал хуудсыг шударга байлгадаг. Үр дүн бүрийн хажууд огноо, клиентийн хувилбарыг тэмдэглэ, учир нь нийлүүлэгчдийн бодлого болон клиентүүдийн анхдагч утга хоёулаа хөдөлдөг. Дараа нь урсгалд үйлчилдэг хамгийн нарийн зураглалыг хүс, учир нь бүгдийг нээхийг хүссэн хүсэлт ихэвчлэн техникийн хариултын оронд татгалзал эсвэл нэмэлт борлуулалт авчирдаг.