Ìsopọ̀ àtúnṣe tó parí ní ìṣẹ́jú àáyá kan sọ fún ọ pé ẹ̀rọ ìsopọ̀ yára. Kò sọ bóyá ohun kan bọ́ jáde nígbà tí ọ̀nà abẹ́lẹ̀ wà ní ògbà. Ìsopọ̀ àtúnṣe tó gba ìṣẹ́jú kan sọ pé ẹ̀rọ ìsopọ̀ lọra, kò sì sọ bóyá wọ́n gbà ìrìn-àjò tààrà ní àlàfo. Ìwọ̀n méjì ni wọ́n, ìdánwò kill switch tó ń kéde ìkínní nìkan kò dán switch náà wò.

Ìwòye méjì, ìdájọ́ méjì ọ̀tọ̀ọ̀tọ̀

Ìbéèrè ìwàláàyè rọrùn: ìgbà wo ni ọ̀nà abẹ́lẹ̀ tún di ohun tó ṣe é lò, àti bóyá ohun èlò tí a dáàbò bò nílò ìsopọ̀ tuntun láti dé ibẹ̀. Ìbéèrè ìmúṣẹ yàtọ̀: àwọn pákẹ́tì wo ni ó kúrò nínú ẹ̀rọ láti àkókò tí ààbò já bo dé àkókò tí ó padà.

Dáhùn wọ́n pẹ̀lú àkọsílẹ̀ ọ̀tọ̀ọ̀tọ̀. Ìlà kan sọ pé àlàfo náà gba iye ìṣẹ́jú àáyá kan. Ìlà mìíràn sọ bóyá ìbéèrè tí kò ní ààbò ṣàṣeyọrí ní àlàfo yẹn. Bí a bá da wọ́n pọ̀ sí àṣeyọrí tàbí ìkùnà kan, a fi ọ̀ràn tó ṣe pàtàkì jùlọ pamọ́: ìsopọ̀ àtúnṣe kíákíá pẹ̀lú ìjáde.

Kọ́ ẹ̀rọ ìwádìí tí o lè díwọ̀n àkókò rẹ̀

Lo ìbéèrè tí kò léwu, kò wọ́n, kò sì sinmi lórí ikanni ìṣàkóso ti ọ̀nà abẹ́lẹ̀ fúnra rẹ̀. Ìyípo tó wà nísàlẹ̀ ń tẹ àmì àkókò, ipò HTTP àti àkókò tó kọjá lọ lẹ́ẹ̀kan ní ìṣẹ́jú àáyá, ó sì kùnà ní ariwo dípò kí ó so mọ́ra:

while true; do
  printf '%s ' "$(date +%H:%M:%S)"
  curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 2 https://example.com || echo "curl-exit-$?"
  sleep 1
done

Ka àwọn kóòdù ìjáde curl, kì í ṣe ipò nìkan. 28 túmọ̀ sí pé àkókò ìbéèrè ti tán, bẹ́ẹ̀ ni ọ̀nà tí a ti dí nà. 6 túmọ̀ sí pé ìṣètò orúkọ kùnà, èyí jẹ́ àwárí mìíràn tí ó sì sábà máa ń fani mọ́ra jù. 200 pẹ̀lú àkókò kúkúrú tó kọjá ní àlàfo túmọ̀ sí pé wọ́n gbà ìrìn-àjò jáde.

Kọ àbájáde sínú fáìlì kan kí o sì tọ́jú rẹ̀. Ìtàn ìrànlọ́wọ́ terminal kì í ṣe ẹ̀rí, apá tó fani mọ́ra sábà máa ń jẹ́ ìlà mẹ́ta ní àárín.

Fa ìkùnà gidi wá, kì í ṣe èyí tó mọ́

Pípa ìsopọ̀ láti inú àkójọ ẹ̀rọ ìsopọ̀ fúnra rẹ̀ ń dán ọ̀nà ìfọwọ́sowọ́pọ̀ wò, níbi tí ẹ̀rọ ìsopọ̀ ti ní àkókò láti fi àwọn òfin dídí rẹ̀ sílẹ̀. Dípò bẹ́ẹ̀ pa ìlànà náà, tàbí já ìsopọ̀ tó wà nísàlẹ̀, ìwọ yóò dán ọ̀nà tí ìkùnà gidi ń gbà wò.

Olùfà kọ̀ọ̀kan ń dán ọ̀nà kóòdù ọ̀tọ̀ọ̀tọ̀. Ìdínà ní ẹ̀gbẹ́ olùsìn, pípàdánù ìsopọ̀ àdúgbò àti ìṣubú ẹ̀rọ ìsopọ̀ kọ̀ọ̀kan lè fi ipò ọ̀tọ̀ọ̀tọ̀ sílẹ̀, ọ̀kan nínú wọn sì ṣeé ṣe kí ó jẹ́ ọ̀ràn tí ìwọ yóò bá pàdé nígbẹ̀yìn. Ṣe ẹ̀rọ ìwádìí náà pẹ̀lú ó kéré tán olùfà méjì kí o sì fi àmì sí àwọn àbájáde gẹ́gẹ́ bí olùfà.

Ka àkọsílẹ̀ láti wo bí ìrìn-àjò tí a gbà ṣe rí

200 tàbí ìkùnà ìsopọ̀ kíákíá ní àlàfo jẹ́ ìjáde, sí ibi kí ó ti tọ́ka. Àkókò pípa ní gbogbo àlàfo ni ìrísí tí a retí nínú ìlànà dídí. Ìṣètò orúkọ tó ṣàṣeyọrí nígbà tí àwọn ìsopọ̀ ń kùnà fi hàn pé olùyẹ́sí ṣì wà ní àárọ̀ọ́kẹ̀, èyí jẹ́ ìjáde irú mìíràn.

Àwọn socket tó wà nílẹ̀ nílò ìṣọ́ra. Ètò kan lè máa lo ìsopọ̀ tí ó ṣí kí ìpínyà tó dé, nítorí náà ìrìn-àjò tó dàbí ẹni pé ó wà láàyè lè má fi hàn pé a gbà ọ̀nà tuntun. Àkójọ socket fi hàn bóyá ìsopọ̀ náà ti wà kí ìṣẹ̀lẹ̀ tó dé:

ss -tunp | grep -E 'ESTAB|SYN-SENT'
ip route get 198.51.100.7
resolvectl status | sed -n '1,20p'

Fi àkókò ìbẹ̀rẹ̀ socket wé àmì àkókò ìpínyà. Ìsopọ̀ tó dàgbà ju ìdínà lọ jẹ́ ẹ̀rí lílò socket lẹ́ẹ̀kan sí i, kì í ṣe ìjáde, pípè é ní ìkùnà sì ń rán ẹni tó kàn lọ wá àṣìṣe tí kò sí.

Ṣàkọsílẹ̀ àbájáde ní ìrísí tó máa yè lẹ́yìn ìmúdójúìwọ̀n

Kọ olùfà náà, àlàfo ní ìṣẹ́jú àáyá, bóyá ìbéèrè tí a kò dí kankan ṣàṣeyọrí, bóyá ìṣètò orúkọ ṣàṣeyọrí, àti àwọn ẹ̀yà ẹ̀rọ ìsopọ̀ àti ẹ̀rọ ìṣiṣẹ́. Àkójọ ìṣẹ̀lẹ̀ márùn-ún yìí ṣeé fi wé láàárín àwọn ìtújáde, ohun tí ìpínrọ̀ ọ̀rọ̀ kan kò lè ṣe.

Tún ìdánwò kan náà ṣe lẹ́yìn ìmúdójúìwọ̀n ẹ̀rọ ìsopọ̀ tàbí ìyípadà profáìlì, nítorí ìhùwàsí dídí jẹ́ kúlẹ̀kúlẹ̀ ìmúṣẹ, ó sì ń lọ. Èrò àkọsílẹ̀ ni láti ṣàkíyèsí ìṣísẹ̀ kí ó tó di ìṣẹ̀lẹ̀, kì í ṣe láti fọwọ́ sí ẹ̀rọ ìsopọ̀ lẹ́ẹ̀kan.

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