«VPN асаалттай юу?» гэдэг нь үнэндээ нэг өгүүлбэрт байгаа гурван асуулт юм. Тэдгээрийн алийг нь таны код шаардаж байгаа нь эхний шийдвэр бөгөөд ихэнх хэрэгжүүлэлт үүнийг орхидог. Энэ төхөөрөмж дээр туннель байгаа юу, энэ чиглэл рүү чиглэсэн урсгал түүгээр гарч байна уу, эсвэл холын тал таны хүлээж буй ижилхэн этгээдээр хариулж байна уу. Өгөгдмөл шинж чанарыг сонго, дараа нь түүнийг хэмждэг дохиог сонго, эцэст нь лог дээр алийг нь үнэхээр хэмжсэнээ бичээрэй.

Гурван шинж чанар, гурван дохио

Тус бүрийг нэг мөр болгон шахахад гурван асуултад гурван өөр хариулт байна. Доорх хүснэгт нь шийдвэр өөрөө, түүний хураангуй биш.

PropertySignal that answers itWhat it still leaves open
ExistenceThe platform's own connection state: RAS on Windows, NetworkManager on D-Bus on Linux, scutil on macOSTunnels of a type the platform does not manage, which includes most third-party clients
PathA route lookup for the one destination, or a scoped proxy or interface key that names the tunnelWhether the far end is the peer you trust
IdentityAn authenticated response from the far end, or a source-address policy applied on the serverWhich local interface carried the packets

Сүүлийн мөрийг аажмаар уншаарай. Хариулж буй хувийн хост ямар нэгэн зүйл хариулсныг нотолж байна, хариулт туннелиар ирснийг биш, мөн нөгөө талд хэн байгаа талаар юу ч хэлэхгүй. Хэрэв танд хэрэгтэй шинж чанар нь зам бол замаа хэмжээрэй.

Оршихуй: платформын өөрийн төлөв

Windows үүнийг эх орны профайлуудын хувьд Remote Access Service API-аар дамжуулан хариулдаг. RasEnumConnections юу холбогдсоныг жагсаана, RasGetConnectStatus нэг бичлэгийн төлөвийг мэдээлнэ, RasGetLinkStatistics хурд, байтын тоолуур, холболтын насыг нэмнэ. Хязгаарлалт нь гол зүйл: OpenVPN, WireGuard болон үйлдвэрлэгчийн клиентүүд RAS холболтыг хэзээ ч бүртгэдэггүй, тиймээс ийм төрлийн эрүүл туннель хоосон жагсаалт харуулж, мухар код түүнийг унтарсан гэж мэдээлдэг.

Linux ширээний системүүд ижил шинж чанарыг D-Bus дээрх NetworkManager-ээр ил гаргадаг, тэнд VPN холболтын объект дээрх PropertiesChanged шалгалтыг үйл явдал болгож хувиргаж, State шинж чанар холбоос холбогдсон төлөвт хүрэх үед мэдээлнэ. Shell-ээс nmcli connection show --active ижил мэдээллийг уншина, алдаа засахад танд хэрэгтэй зүйл нь энэ. macOS тэр жагсаалтыг System Configuration хүрээнд хадгалж, scutil нь түүний командын мөрийн харагдац. Гурвуулаа платформын удирддаг холболтыг дүрсэлж, гурвуулаа түүний удирддаггүй туннелийн талаар дуугүй байна.

Зам: пакет үнэндээ хаашаа явдаг

Нэрний таарлыг бүгд хамгийн түрүүнд барьдаг богино зам: интерфейсүүдийг жагсааж, мөрийг tun, tap, ppp эсвэл ipsec-тэй харьцуулж, таарлыг нотолгоо гэж үзээрэй. Энэ нь эвристик бөгөөд интерфейсийн багц дундуур ямар нэгэн зүйл хөдөлж байгаа эсэхээс үл хамааран ижил харагдаж болно. Хуучин iOS хувилбарууд ингэж хариулдаг байсан бол дараагийнхууд зогсоосон, учир нь харагдах интерфейсүүд хоёр төлөвийг ялгахаа больсон.

Тэнд түүнийг орлуулсан зүйл бол системийн прокси толь юм. VPN холбогдсон байх үед прокси тохиргооны дуудлага туннельтай холбоотой интерфейсүүдээр хязгаарлагдсан түлхүүрүүдийг буцааж өгдөг, харин юу ч холбогдоогүй үед толь хоосон буцаж ирдэг. Энэ нь сонсогдохоос сул мэдэгдэл, учир нь туннель байгаа гэсэн системийн итгэл үнэмшлийг бүртгэдэг, аль чиглэл үүнийг ашиглаж байгааг биш.

Android-д энэ урхины өөрийн хувилбар бий: vpn.connectivity нэвтрүүлэг зарим хувилбарт манифестод зарласан хүлээн авагчдад, бусдад ажиллах үед бүртгэсэн хүлээн авагчдад хүрдэг. Үүнийг хамгийн сайн оролдлого гэж үзэж, ард нь шууд шалгалт байлгаарай.

Чиглэл чухал үед адаптерын жагсаалтаас биш, чиглүүлэлтийн хүснэгтээс асуугаарай. Өгөгдмөл гарцын эвристик олон сүлжээт машин болон өөрийн гарцыг суулгадаг туннель дээр эвдэрдэг.

Ижилхэн этгээд: холын талыг шалга

Хэдхэн секунд тутамд холын тал руу ICMP цуурай илгээдэг давталт нь энэ төрлийн хамгийн хямд шалгалт бөгөөд ашигтай чиглэлд бүтэлгүйтдэг. Үүнийг зөвхөн хувийн сүлжээний дотор орших хаяг руу чиглүүлээрэй, учир нь нийтийн хаяг ажиллаж буй дурын дээд холбоосоор хариулж, юу ч нотлохгүй. ICMP шүүгддэг газарт үйлчилгээний порт руу богино TCP холболт ижил ажлыг хийнэ.

Серверийн талын шалгалтад яг нэг дохио бий: холболтын эх хаяг. Хүрээний бүртгэлийг хадгалах нь засвар үйлчилгээний ажил бөгөөд ижил блокыг санамсаргүй ашигладаг бусад сүлжээнээс туннелийг ялгаж чадахгүй.

Бүдүүлэг бодлого үүнтэй амьдарч чадна. Ижилхэн этгээд чадахгүй, тиймээс пакетууд нь хаанаас ирж байгаа мэт харагдахыг итгэхийн оронд клиентийг баталгаажуулаарай.

Ангиллыг бич, дүгнэлтийг биш

Алдааны ангиллуудыг лог дээр тусдаа байлгаарай: интерфейс огт байхгүй, интерфейс бий боловч чиглэл хүрэхгүй, чиглэл хүрэх боломжтой боловч баталгаажуулалт татгалзагдсан. Эдгээр нь гурван өөр эзэн бөгөөд тус бүр өөр мөрдөн байцаалт нээдэг.

Тэднийг нэг «VPN унтарсан» болгон нэгтгэх нь засаж чадахгүй баг руу тайланг илгээдэг. Ангилал нь ашигтай гаралт; дүгнэлт нь түүнийг буруу болгодог зүйл юм.

Холбоотой нийтлэлүүд