Ètò kan so mọ́ àdírẹ́sì VPN, ṣùgbọ́n ìsopọ̀ náà ṣì ń jáde nípasẹ̀ ọ̀nà àkọ́kọ́ tí ó wọ́pọ̀. Kò sí ohun tí ó kùnà nínú bind; ó ṣe gbọ́dọ̀ ohun tí bind ń ṣe. Sísọ sókẹ́tì mọ́ àdírẹ́sì ìbílẹ̀ yan àdírẹ́sì orísun tí kọ́nẹ́lì fi sínú orí. Kò fi ọ̀nà sílẹ̀, kò sì dá òfin ẹ̀kọ́ tí yóò fi àwọn pákẹ́tì tí ó gbé orísun yẹn ránṣẹ́ sínú ihò kan pàtó.

Ìyókù ìwé ìtọ́sọ́nà yìí ni ìtòlẹ́sẹẹsẹ àyẹ̀wò tí mo ń lò, pẹ̀lú àṣẹ tí ó ń fúnni ní àkíyèsí kọ̀ọ̀kan.

Ohun tí bind ń pinnu ní ti gidi

Bind ń fún sókẹ́tì ní àdírẹ́sì ìbílẹ̀. Lẹ́yìn náà kọ́nẹ́lì ń ṣe ìwárí ọ̀nà kan náà tí yóò ti ṣe bí bẹ́ẹ̀ kọ́, àyàfi tí òfin ẹ̀kọ́ bá yí i padà irú tábìlì tí ìwárí yẹn ń kà.

Ìdí nìyẹn tí pákẹ́tì fi lè jáde pẹ̀lú àdírẹ́sì orísun VPN lórí interfeis ti ara. Ní ẹ̀gbẹ́ kejì ó ń wá láti inú ìwọ̀n àdáni tí nẹ́tíwọ́kì kò retí rẹ̀ rí lórí ọ̀nà yẹn, ìrìnàjò ìpadà kò ní ọ̀nà láti padà, ìsopọ̀ sì ń dúró tàbí a tún un ṣe.

Ìtọ́kasí sókẹ́tì IP ti Linux ṣàlàyé ìtumọ̀ bind. Ìdajì ọ̀nà wà nínú ip-rule àti ip-route, wọ́n sì jẹ́ ìwé ìtọ́sọ́nà ọ̀tọ̀ọ̀tọ̀ fún ìdí kan.

Ìjẹ́rìí pé àdírẹ́sì jẹ́ ti àyè orúkọ yìí

Àdírẹ́sì tí o lè so mọ́ gbọ́dọ̀ wà lórí interfeis nínú àyè orúkọ nẹ́tíwọ́kì tí ètò ń ṣiṣẹ́. Àdírẹ́sì ẹlẹgbẹ́, àdírẹ́sì ẹnubodè, tàbí àdírẹ́sì tí ó wà nínú àyè orúkọ mìíràn nìkan kò lè so mọ́, ìpè sì kùnà pẹ̀lú EADDRNOTAVAIL.

ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>

Ṣe àwọn mẹ́ta yẹn nínú ipò kan náà pẹ̀lú ètò: àyè orúkọ kan náà, àti olùlò kan náà bí o bá lè rí i. Àwòrán net30 àtijọ́ kì í ṣe ẹ̀rí àdírẹ́sì tí topolojí rẹ ìsinsìnyí fún alábàárà. Ka interfeis tí ó wà lójú ẹsẹ̀ gan-an.

Ka ìwárí fún orísun àti ibi-ìlọ yẹn

Àṣẹ kan ń dáhùn ìbéèrè tí bind kò dáhùn:

ip route get 203.0.113.10 from 10.8.0.2
ip rule show

Ìlà àkọ́kọ́ ń tẹ̀ ọ̀nà tí pákẹ́tì yóò gbà láti orísun yẹn sí ibi-ìlọ yẹn, pẹ̀lú interfeis ìjáde àti orísun tí a fẹ́. Bí ó bá dárúkọ interfeis ti ara, bind àti ọ̀nà kò faramọ́, pákẹ́tì yóò sì jáde pẹ̀lú orísun tí ọ̀nà kò lè padà dé.

Lẹ́yìn náà ip rule show sọ fún ọ bóyá òfin kan yóò ti yan tábìlì mìíràn. Ipò àkọ́kọ́ ṣe pàtàkì níbí, nítorí òfin àkọ́kọ́ tí ó bá mu ni yóò borí, òfin tí ó ń mú gbogbo nǹkan tó wà lókè òfin rẹ yóò sì jẹ́ kí òfin rẹ má ṣeé rí.

Fi òfin ẹ̀kọ́ sílẹ̀ kìkì bí ìyẹn bá jẹ́ àpẹẹrẹ

Ìtọ́ ọ̀nà tí ó dá lórí orísun jẹ́ àpẹẹrẹ tí a mọ̀ọ́mọ̀ ṣe, kì í ṣe àtúnṣe fún ètò kan. Bí onígbà-ẹ̀kọ́ bá fẹ́ kí ìrìnàjò láti abẹ́ nẹ́tíwọ́kì ihò lo ihò náà, òfin jẹ́ ti ìṣètò rẹ̀ kì í ṣe àṣẹ ẹ̀ẹ̀kan lórí kọ̀mpútà rẹ.

Ẹ̀dá tí ó lè ṣiṣẹ́ ni tábìlì pàtó pẹ̀lú ọ̀nà àkọ́kọ́ la inú ihò, pẹ̀lú òfin tí ó rán ìwọ̀n orísun VPN sínú tábìlì yẹn. Fi àwọn ìyàtọ̀ tí àpẹẹrẹ nílò kún, nítorí tábìlì tí ó ní àkọ́kọ́ ihò nìkan yóò mú àwọn ibi-ìlọ tí ó yẹ kí ó wà ní ìbílẹ̀ tàbí tí a lè dé nípasẹ̀ ọ̀nà ti ara.

ip route add default dev tun0 table 100
ip rule add from 10.8.0.2 table 100 priority 100
ip route get 203.0.113.10 from 10.8.0.2

Yí padà pẹ̀lú ip rule del àti ip route flush table 100. Gbogbo ohun tí a fi kún bẹ́ẹ̀ yóò parẹ́ nígbà àtúnbẹ̀rẹ̀ àyàfi bí olùṣàkóso bá kọ ọ́, èyí tí ó jẹ́ ànímọ́ ààbò àti ìdí láti má ṣe tọ́jú ẹ̀dà kan ṣoṣo nínú ìtàn shell rẹ.

Ṣàyẹ̀wò pẹ̀lú àkíyèsí mẹ́ta

Kọ orísun tí ètò béèrè, ọ̀nà tí ìwárí yàn, àti orísun tí olùsìn rí gan-an.

Àwọn mẹ́ta yìí lè yàtọ̀, gbogbo ìyàtọ̀ sì ń tọ́ka sí ibòmíì. Gbígba pákẹ́tì lórí interfeis ihò fi hàn pé pákẹ́tì jáde pẹ̀lú orísun tí ó tọ́. Gbígba lórí interfeis ti ara fi hàn pé ó jáde ní ọ̀nà tí kò tọ́. Ojú-ìwòye ẹ̀gbẹ́ olùsìn nìkan ni ó ń jẹ́rìí ọ̀nà náà láti ìbẹ̀rẹ̀ dé ìparí.

Bí ètò bá pèsè àṣàyàn sísọ mọ́ ẹ̀rọ tàbí ipò ìtọ́ ọ̀nà fún ètò kọ̀ọ̀kan, wo ó bí ẹ̀rọ mìíràn pẹ̀lú àwọn ààlà mìíràn. Àwọn ìṣètò tí ó jọra kì í ṣe gbogbo wọn ni ó ń dópin ní ìpinnu kọ́nẹ́lì kan náà.

Àwọn àpilẹ̀kọ tó jọra