Isang application sa makina ang lumalabas sa VPN at isa ay hindi, at kapwa nagmamatigas ang dalawang user na wala silang binago. Ang pagkakaiba ay madalas desisyon sa pagkakabit na ginawa ng app mismo: socket na nakakabit sa device, source address na pinili bago ang koneksyon, o namespace na may sariling routing table. Binabago ng bawat isa kung aling landas ang umiiral, at wala sa mga ito ang lumilitaw sa pangkalahatang IP check sa browser.

Tatlong magkaibang pagkakabit, tatlong magkaibang epekto

Ang pagkakabit sa device at pagkakabit sa source address ay magkaugnay na operasyon na may magkaibang resulta. Ang pagkakabit sa device ay maaaring pilitin ang trapiko na lumabas sa isang interface at laktawan ang normal na paghahanap ng ruta para sa socket na iyon. Ang pagkakabit sa source address ay dumadaan pa rin sa pagpili ng ruta, ngunit ang napiling source ay maaaring tumugma sa isang patakaran at ipadala ang packet sa ibang lugar. Ang pagkakaiba ay parang akademiko hanggang ang isang patakaran ay mag-ruta ayon sa source. Pagkatapos ay nagpapasya ito sa lahat.

Ang network namespace ay ang ikatlong kaso. May sariling interface at routing table, kaya ang app sa loob nito ay hindi apektado ng default ng host. Ang pagtrato sa tatlo bilang isang bagay ay gumagawa ng kumpiyansang paliwanag na hindi pumasa sa unang pagsubok.

Alamin kung ano talaga ang itinatakda ng app

Basahin ang network configuration ng application o ang dokumentadong pag-uugali nito bago hawakan ang mga ruta. Kung nag-aalok ito ng pagpili ng interface, field ng source address o opsyon sa namespace, iyon ang unang dapat suriin. Kung wala, maaaring panloob ang pagkakabit at makikita lamang sa pamamagitan ng pagsubaybay o sariling diagnostics.

Sa Linux, ang mga opsyon sa socket tulad ng SO_BINDTODEVICE ay may dokumentadong saklaw at pangangailangan sa pahintulot, at ang prosesong walang pribilehiyo ay maaaring hindi ito magawang itakda. Ang limitasyong iyon ay kapaki-pakinabang na palatandaan: kung hindi magamit ang opsyon, malamang hindi ang app ang pinagmulan ng pagkakaiba.

Binabasa ng policy routing ang source

Kapag naka-configure ang policy routing, ang isang patakaran ay maaaring pumili ng table batay sa source ng packet. Kaya ang socket na nagkakabit ng source address ay maaaring sumunod sa patakarang hindi hinahawakan ng default na landas, kahit walang interface na tahasang pinangalanan.

Ulitin ang paghahanap gamit ang parehong address family, source at namespace na ginagamit ng app. Ang pangkalahatang paghahanap ng ruta mula sa shell sa namespace ng host ay sumasagot sa ibang tanong, at ang pagkakaibang iyon ang pinakakaraniwang dahilan kung bakit mukhang sira ang isang gumaganang ruta.

Split tunneling at mga katulong na proseso

Ang split tunneling bawat app ay nagdaragdag ng isa pang antas. Maaaring itugma ng client ang package o proseso ng app, at ang katulong na nagbubukas ng sariling socket ay hiwalay na paksa. Ang launcher at ang background service nito ay makakagawa ng magkaibang koneksyon sa ilalim ng parehong nakikitang pangalan.

Tingnan kung saklaw ng patakaran ng split tunnel ang prosesong aktwal na kumokonekta. Kung ang app ay nakakabit sa isang partikular na interface at ang VPN client ay tumutugma ayon sa package, maaaring magkaiba ang dalawang desisyon nang walang alinman sa kanila na mali.

Subukan ang sariling landas ng app

Magpatakbo ng bagong kahilingan mula sa application pagkatapos ng bawat pagbabago. Ang browser na nagpapakita ng exit na gusto mo ay hindi katumbas na ebidensya para sa ibang program na nakakabit sa ibang interface, at ang mga naka-cache na koneksyon ay maaaring magpatuloy na gumamit ng lumang landas matagal pagkatapos magbago ang isang setting. Isara ang lumang session bago hatulan ang bagong patakaran. Kung hindi, sinusukat ng pagsubok ang nakaraan.

Ang Linux socket reference ay nagdodokumento ng SO_BINDTODEVICE at mga pangangailangan nito. Basahin muna ang sariling configuration ng app, ulitin ang paghahanap sa parehong konteksto, at pagkatapos lamang magpasya kung kailangang baguhin ang ruta o ang pagkakabit.

Kaugnay na mga artikulo