Fi ìlànà ètò kún pẹ̀lú ip rule, ó sì ń ṣiṣẹ́ títí tí ọ̀nà yóò fi lọ; ní àkókò yẹn kò sí mọ́ rárá. Kò sí ohun tí ó kùnà sókè: ipò kernel yí padà, kò sì sí ẹnikẹ́ni tí ó ní ìtòlẹ́sẹẹsẹ tí ó mọ̀ pé ìlànà yẹ kí ó wà. Ìyàtọ̀ gbogbo láàrin ìlànà tí ó dúró àti èyí tí kò dúró ni ìyẹn. Ní orí ẹ̀rọ tí ó ní systemd-networkd, ojútùú ni láti fún ìlànà ní onígbà, kì í ṣe láti tún pàṣẹ náà ṣe lẹ́yìn àtúnso kọ̀ọ̀kan.

Ìlànà wà nígbà tí ẹnìkan bá ni í

Ètò ìtọ́nà kernel jẹ́ ipò, kì í ṣe ìtòlẹ́sẹẹsẹ. Ó ń gbé nínú ẹ̀rọ tí ó ń ṣiṣẹ́, ohunkóhun tí ó bá fọ́ interface tí ó gbára lé lè gbé e lọ. Pàṣẹ inú shell yí ipò yẹn padà, kò sì fi àkọsílẹ̀ èròǹgbà kankan sílẹ̀.

Àwọn olùṣàkóso nẹ́tíwọ́kì ń ṣiṣẹ́ ní ọ̀nà òdì: wọ́n ka ìtòlẹ́sẹẹsẹ, wọ́n fi í ṣiṣẹ́, wọ́n sì tún fi í ṣiṣẹ́ nígbà tí ìṣẹ̀lẹ̀ ọ̀nà bá sọ ipò àtẹ̀yìnwá di asán. Ìlànà tí a sọ jáde nínú ìtòlẹ́sẹẹsẹ wọn ni a tún ń dá, nígbà tí ìlànà tí a fi kún lẹ́gbẹ̀ẹ́ wọn jẹ́ ohun àjèjì tí kò ní onígbà.

Ìyàtọ̀ yẹn ní orúkọ nínú networkd, ó sì yẹ kí a kà á kí a tó mú ohunkóhun ṣiṣẹ́. Àwọn ìlànà àjèjì ni a ń yọ kúrò ní àkọ́kọ́ nínú àwọn ẹ̀dà tuntun, èyí ń yà àwọn tí wọ́n retí pé àwọn àkọsílẹ̀ ọwọ́ wọn yóò wà lẹ́nu.

Ka ẹ̀dà kí o tó gbẹ́kẹ̀lé ètò kan

Ìhùwàsí onígbà ni a ń ṣàkóso pẹ̀lú ètò kan nínú networkd.conf, ètò yẹn kò sì sí nínú àwọn ẹ̀dà systemd àtijọ́. Ṣàyẹ̀wò ẹ̀dà tí a ti fi sórí ẹ̀rọ kí o tó ṣe àpẹẹrẹ yí i ká, nítorí ẹ̀rọ àtijọ́ ń humọ̀ ní ọ̀nà mìíràn ju àwọn ìwé tí o ń kà lọ.

Iye méjì ṣe pàtàkì. Ọ̀kan ń pinnu bóyá a ó yọ àwọn ìlànà tí a kò sọ jáde nínú ìtòlẹ́sẹẹsẹ networkd kúrò, èkejì sì ń ṣe bẹ́ẹ̀ fún àwọn ọ̀nà. Àwọn méjèèjì jẹ́ nípa onígbà kì í ṣe nípa àkóónú ètò, àwọn méjèèjì sì ń yan ìhùwàsí tí ó le ju ní àkọ́kọ́ nínú àwọn ẹ̀dà lọ́wọ́lọ́wọ́. Pípa wọ́n ní àgbáyé ń jẹ́ kí gbogbo ìlànà àjèjì wà láàyè, èyí jẹ́ ìpinnu tí ó gbòòrò ju láti sọ ètò VPN kan tí a fẹ́ jáde.

systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null

grep yẹn ń sọ fún ọ ohun tí a ti gbé kalẹ̀ ní àdúgbò àti ohun tí ó jẹ́ àkọ́kọ́ ti olùpèsè. Àìsí pẹ̀lú jẹ́ ìsọfúnni, nítorí ó túmọ̀ sí pé àkọ́kọ́ tí a kó jọ wà lẹ́nu. Kọ àkọ́kọ́ náà sínú àwọn àkọsílẹ̀ rẹ kí ẹni tó ń bọ̀ má baà ní láti tún ṣàwárí rẹ̀.

Sọ ìlànà náà àti tábìlì tí ó ń tọ́ka sí jáde

Ìlànà nínú fáìlì .network ń dárúkọ tábìlì kan, orúkọ sì ń ṣe bẹ́ẹ̀ ni. Kò dá àwọn ọ̀nà inú tábìlì yẹn, kò sì ṣàyẹ̀wò bóyá wọ́n ní ìtumọ̀. Sísọ ìlànà jáde láìsí àwọn ọ̀nà ń dá ètò tí ó bá ìrìnàjò mu, tí ó sì ń sọ ọ́ nù.

Sọ àwọn ọ̀nà jáde nínú fáìlì kan náà, pẹ̀lú àwọn ìfò tó ń bọ̀ tí a lè dé àti tábìlì tó tọ́. Pa ipò àkọ́kọ́ mọ́ nínú ìlànà tí a sọ jáde kí ó lè wọ ibi tí o retí nínú àkọsílẹ̀ tí a tò lẹ́sẹẹsẹ. Ìlànà tí ó dé tábìlì tí kò tọ́ kí àsìkò tó yẹ ń yí ìrìnàjò púpọ̀ ju iṣẹ́ tí o fẹ́ túnṣe lọ. Ka apá tí ó wà nísàlẹ̀ gẹ́gẹ́ bí ìrísí, kì í ṣe gẹ́gẹ́ bí fáìlì pípé, nítorí onígbà interface àti ìyókù ìsopọ̀ gbọ́dọ̀ wà.

[RoutingPolicyRule]
Family=ipv4
IPProtocol=tcp
SourcePort=443
Table=100
Priority=1000

[Route]
Destination=10.80.0.0/24
Gateway=10.80.0.1
Table=100

Lẹ́yìn náà tún gbé e sókè kí o ka ipò kernel dípò fáìlì. Ìtòlẹ́sẹẹsẹ tí a ṣàyẹ̀wò dáadáa lè ṣì dá ìlànà tí o kò pète, ojú méjèèjì sì ń bá ara wọn mu nígbà tí ìkéde náà pé.

Yan onígbà kan fún interface

Àwọn olùṣàkóso méjì lórí ojú ọ̀nà kan ń dá ìjà tí ó dà bí àṣìṣe nínú àwọn méjèèjì. Gbígbé ìtòlẹ́sẹẹsẹ wg-quick tí ó wà tẹ́lẹ̀ sínú networkd jẹ́ ìṣíkiri kì í ṣe àfikún, gbígbé àwọn méjèèjì ń fi interface àti àwọn ìlànà rẹ̀ sábẹ́ onígbà méjì.

Ṣe ìṣíkiri náà lẹ́ẹ̀kan: dá ẹ̀yà àtijọ́ dúró, pa á, sọ interface àti àwọn ọ̀nà rẹ̀ jáde nínú networkd, lẹ́yìn náà tún gbé e sókè. Ṣàyẹ̀wò pé ẹ̀yà àtijọ́ kò lè padà wá nígbà ìbẹ̀rẹ̀. Ẹ̀yà tí ó kù tí ó tún ṣiṣẹ́ lẹ́yìn àtúntò yóò kọ sórí ipò tí o ṣẹ̀ṣẹ̀ sọ jáde. Pa fáìlì ìtòlẹ́sẹẹsẹ àtijọ́ mọ́ títí tí èyí tuntun yóò fi faradà àtúnso kan, lẹ́yìn náà fẹ̀yìntì kúrò.

Onígbà àmì pẹ̀lú yẹ kí a tọ́jú bẹ́ẹ̀: bí ìlànà bá bá àmì ògiri iná mu, ẹnìkan gbọ́dọ̀ gbé àmì yẹn kalẹ̀. Ìlànà tí ó ń tọ́ka sí àmì tí ẹnìkan kò gbé kalẹ̀ jẹ́ ìtòlẹ́sẹẹsẹ tí ó ti kú tí ó dà bí ẹni pé a mọ̀ọ́mọ̀ ṣe é.

Ṣe àdánwò àwọn ìṣẹ̀lẹ̀ ìgbésí ayé

Ìtòlẹ́sẹẹsẹ dára tó bí ìhùwàsí rẹ̀ ti dára láàrin àwọn ìṣẹ̀lẹ̀. Sọ ọ̀nà náà kalẹ̀, gbé e sókè, tún iṣẹ́ náà bẹ̀rẹ̀ kí o sì tún àdírẹ́sì ṣe. Lẹ́yìn ọ̀kọ̀ọ̀kan, ka àkọsílẹ̀ àwọn ìlànà àti àkóónú tábìlì.

sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd

Èsì tí a retí ni pé kí a tún dá ètò onígbà kan náà àti kí ipò àtijọ́ fẹ̀yìntì, èyí tí ó dúró pẹ́ ju láti tún fi ìlànà shell kún lẹ́yìn àtúnso kọ̀ọ̀kan. Pa ìlà kan mọ́ nínú àkọsílẹ̀ àyípadà tí ó dárúkọ fáìlì tí ó ni ìlànà àti ẹ̀dà tí ó ń gbà á lẹ́yìn. Nígbà náà onímọ̀-ẹ̀rọ tó ń bọ̀ lè rí ètò náà láìwá nínú ìtàn shell. Ìlànà tí ẹnìkan kò ní ni ìlànà tí yóò sọnù lẹ́ẹ̀kan sí i.

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