FreeBind lodi si After=: só socket systemd mọ́ àdírẹ́sì VPN
FreeBind ń jẹ́ kí systemd ní olùgbọ́ kí àdírẹ́sì VPN tó wà; After= kàn ń ṣètò àwọn iṣẹ́. Fi wọ́n wé, kí o sì dán ìtòlẹ́sẹẹsẹ àti ìmúrasílẹ̀ wò.
Ní àkókò ìbẹ̀rẹ̀, ẹ̀ka socket tí ó so àdírẹ́sì VPN tí ó dúró ṣinṣin lè kùnà kí tunnel tó fún un ní àdírẹ́sì náà, iṣẹ́ tí ó wà lẹ́yìn rẹ̀ kò sì bẹ̀rẹ̀ rárá. Yíyípadà méjì dàbí àtúnṣe, wọ́n sì yanjú ìdajì ọ̀tọ̀ọ̀tọ̀ ti ìṣòro yẹn. FreeBind ń jẹ́ kí systemd dá olùgbọ́ sílẹ̀ nígbà tí àdírẹ́sì kò tíì sí. After= kàn ń ṣètò àwọn iṣẹ́, nítorí náà ó ń yí i padà nígbà tí àwọn nǹkan bẹ̀rẹ̀ láì mú kí àdírẹ́sì dé kíákíá.
Ìṣòro méjì ọ̀tọ̀ọ̀tọ̀, yíyípadà méjì ọ̀tọ̀ọ̀tọ̀
Ìṣòro àkọ́kọ́ ni ìkùnà ìsopọ̀: kérnẹ́lù kọ̀ láti gbọ́ lórí àdírẹ́sì tí ẹni tí ń gbàlejò kò ní, nítorí náà ẹ̀ka socket kùnà lẹ́sẹ̀kẹsẹ̀, a kò sì mú iṣẹ́ ṣiṣẹ́ rárá. Ìṣòro kejì ni ìkùnà ìmúrasílẹ̀: àdírẹ́sì wà níkẹyìn, ṣùgbọ́n ohun kan ń gbìyànjú láti lò ó kí tunnel tó gbé ìrìnàjò. FreeBind ń kojú èkíní, kò sì ṣe ohunkóhun fún èkejì. Àwọn ìtọ́ni ìtòlẹ́sẹẹsẹ kò kojú èyíkéyìí ní tààrà, nítorí pé wọ́n kàn ń pinnu ohun tí yóò bẹ̀rẹ̀ ní ìtòlẹ́sẹẹsẹ wo. Pípè ìkùnà tí o ní gan-an ni gbogbo ìpinnu náà.
Jẹ́rìí èyí tí o ní nínú méjèèjì láti inú ìwé àkọsílẹ̀, kì í ṣe láti inú àpèjúwe iṣẹ́. Ìkùnà ìsopọ̀ ń dárúkọ àdírẹ́sì kan ó sì ń sọ pé a kò lè fún un. Ìkùnà ìmúrasílẹ̀ máa ń farahàn nígbà tí ó ti pẹ́, gẹ́gẹ́ bí àkókò tí ó tán tàbí ìsopọ̀ tí a kọ̀ tí a rí láti ẹ̀gbẹ́ kejì, nígbà tí ẹ̀ka socket tí ó ní ìlera pátápátá wà nínú àwọn àkọsílẹ̀.
FreeBind: olùgbọ́ wà kí àdírẹ́sì tó dé
FreeBind ń sọ fún kérnẹ́lù pé kí ó gbà ìsopọ̀ mọ́ àdírẹ́sì tí kì í ṣe ti ibílẹ̀, kí systemd lè dá socket tí ń gbọ́ sílẹ̀ nígbà ìbẹ̀rẹ̀, kí ó sì fún àpùlẹ̀kùn nígbàkigbà tí àpùlẹ̀kùn bá bẹ̀rẹ̀. Ìdí ìmúṣiṣẹ́ socket ni èyí, àti ìdí tí socket fi lè gbé pẹ́ ju iṣẹ́ tí ó wà lẹ́yìn rẹ̀ lọ.
[Socket]
ListenStream=
ListenStream=10.8.0.1:8443
FreeBind=yes
Ìfúnni tí ó ṣófo ń nu àwọn àkọsílẹ̀ gbígbọ́ tí a jogún láti ẹ̀ka olùpèsè kí a tó fi èyí tuntun kún un, èyí sì ń dènà olùgbọ́ wildcard tí ó kù láti dáhùn lórí gbogbo àwọn ìsopọ̀. Rọ́pò àdírẹ́sì àti ebute pẹ̀lú tìrẹ, kí o sì jẹ́rìí ẹ̀ka tí ń ṣiṣẹ́, kì í ṣe fáìlì drop-in nìkan. Lo drop-in lábẹ́ orúkọ ẹ̀ka dípò ṣíṣàtúnṣe fáìlì àkópọ̀ ní ibi rẹ̀, nítorí ìmúdójúìwọ̀n àkópọ̀ tí ó tẹ̀lé yóò pa àtúnṣe náà rẹ́, kò sì ní fi àmì èròǹgbà kankan sílẹ̀. Lẹ́yìn náà fi wọ́n ṣiṣẹ́ nípasẹ̀ ìlànà àtúnkó àti àtúnbẹ̀rẹ̀ tí ẹ̀ka socket ń retí.
Ìtọ́kasí socket systemd ń kọ ìhùwàsí IPv4 àti IPv6 tí ó wà lẹ́yìn àṣàyàn yìí, kíákíá kúlẹ̀kùn ni pé ó kan ìsopọ̀ kì í ṣe ìtọ́sọ́nà. Kò sí ohunkóhun nínú rẹ̀ tí ń fún àdírẹ́sì tàbí tí ń bẹ̀rẹ̀ VPN. FreeBind jẹ́ ìyọ̀ǹda tí a fi fún olùgbọ́, kì í ṣe àropò ìsopọ̀.
After= àti Wants=: ìtòlẹ́sẹẹsẹ kì í ṣe ìmúrasílẹ̀
Ìtòlẹ́sẹẹsẹ àti àbùdá jẹ́ ọ̀nà méjì ọ̀tọ̀ọ̀tọ̀, pípọ̀ wọ́n papọ̀ ń dá àwọn ẹ̀ka tí ó bẹ̀rẹ̀ ní ìtòlẹ́sẹẹsẹ tí ó tọ́ tí wọ́n sì kùnà. After=vpn-client.service kàn túmọ̀ sí pé bí a bá bẹ̀rẹ̀ iṣẹ́ méjèèjì, èyí yóò dúró de kí a tó bẹ̀rẹ̀ èkejì. Kò fa VPN wọlé, kò sì dúró de kí VPN parí ìsopọ̀.
Àwọn ìtọ́ni àbùdá bí Wants= àti Requires= ń bo ìmúṣiṣẹ́, wọ́n sì yàtọ̀ nínú ohun tí ó ṣẹlẹ̀ nígbà tí ìgbẹ́kẹ̀lé bá kùnà: ọ̀kan ń tẹ̀síwájú, èkejì ń dúró. Kò sí ẹnikẹ́ni nínú wọn tí ó mọ ohun tí tunnel tí ó sopọ̀ túmọ̀ sí. Ìlànà VPN lè wà lójú iṣẹ́ láìsí àdírẹ́sì tí a fún un, tàbí pẹ̀lú àdírẹ́sì tí a fún un àti láìsí ọ̀nà sí alábàákẹ́gbẹ́, àwọn ipò méjèèjì sì ń mú àbùdá ṣẹ. Bí àpùlẹ̀kùn bá nílò kí àdírẹ́sì wà, ṣe àwòrán ipò yẹn ní kedere dípò kí o ka ìbẹ̀rẹ̀ ìlànà sí ẹ̀rí ìmúrasílẹ̀.
Ṣàyẹ̀wò ohun tí ẹ̀ka ń kéde gan-an pẹ̀lú systemctl cat àti systemctl show -p After -p Wants -p Requires. Àwọn drop-in láti dirẹ́kítórì mẹ́ta ọ̀tọ̀ọ̀tọ̀ lè fi àwọn ìtọ́ni kún un tí o kò kọ rí, systemd sì ń ka ẹ̀ka tí ń ṣiṣẹ́ nìkan.
Ohun tí network-online.target kò ṣe
Ẹ̀ka tí a tò lẹ́yìn network-online.target ń dúró de kí olùṣàkóso nẹ́tíwọ́kì kéde pé nẹ́tíwọ́kì lè ṣiṣẹ́, èyí jẹ́ ibi ìmúdọ́gba nígbà ìbẹ̀rẹ̀ kì í ṣe ipò tí ń lọ lọ́wọ́. Kò sọ ohunkóhun nípa bóyá tunnel kan pàtó wà lókè, kò sì ní tún ṣiṣẹ́ nígbà tí VPN bá tún sopọ̀ ní ọ̀sán. Kíka rẹ̀ gẹ́gẹ́ bí olùtọ́jú àtúnsopọ̀ ni ìkàwíìkà tí ó wọ́pọ̀ jùlọ ti ibi àfojúsùn yẹn.
Iṣẹ́ àgbékalẹ̀ systemd ń kọ ìyàtọ̀ yẹn tààrà, àbájáde ìṣe sì ni pé ohunkóhun tí ó nílò àdírẹ́sì tunnel gbọdọ̀ ní àbùdá fúnra rẹ̀. Ẹ̀ka tí ó dúró de network-online tí ó sì so àdírẹ́sì tunnel tọ́ nìkan nígbà tí tunnel bá ṣẹ̀ṣẹ̀ gòkè tẹ́lẹ̀, èyí sì jẹ́ àpapọ̀ ìṣẹ̀lẹ̀ kì í ṣe àgbékalẹ̀.
Dán ìyípo ìgbésí ayé tí o yàn gan-an wò
Dán ìbẹ̀rẹ̀ mímọ́, ìbéèrè lẹ́yìn tí àdírẹ́sì farahàn, àti ìhùwàsí lẹ́yìn tí VPN ṣubú tí ó sì padà wò. Àwọn ipò mẹ́ta yẹn ń ya olùgbọ́ tí ń ṣiṣẹ́ sótọ̀ kúrò nínú iṣẹ́ tí ń ṣiṣẹ́.
systemd-analyze verify myapp.socket
systemctl cat myapp.socket
ss -ltn "sport = :8443"
Àṣẹ àkọ́kọ́ ń mú àwọn àṣìṣe fáìlì ẹ̀ka kí àtúnbẹ̀rẹ̀ tó ṣẹlẹ̀, èkejì ń fi ẹ̀ka tí a dàpọ̀ hàn, ẹ̀kẹta sì ń fi hàn bóyá olùgbọ́ wà àti lórí àdírẹ́sì wo. Olùgbọ́ lórí àdírẹ́sì wildcard ní ibi tí o ti retí àdírẹ́sì tunnel ni àṣẹ́kù tí ListenStream ṣófo yẹ kí ó yọ kúrò gan-an. Tún àṣẹ ẹ̀kẹta ṣe lẹ́yìn àtúnsopọ̀ VPN láti wo bóyá àdírẹ́sì ti ṣí kúrò.
Yan ìyípo ìgbésí ayé pẹ̀lú ìmọ̀: yálà olùgbọ́ tí a so lọ́fẹ̀ẹ́ tí ń dúró de àdírẹ́sì tí ó dúró ṣinṣin láti padà, tàbí iṣẹ́ tí ó dúró pẹ̀lú tunnel tí ó sì tún bẹ̀rẹ̀ nígbà ìmúpadàbọ̀. Ìwọ̀nyí jẹ́ àgbékalẹ̀ ọ̀tọ̀ọ̀tọ̀, wọ́n sì ń kùnà ní ọ̀nà ọ̀tọ̀ọ̀tọ̀. Lẹ́yìn náà so ìlànà àǹfààní mọ́ àwọn orísun àti àwọn ọ̀nà tí o ní lọ́kàn, nítorí sísopọ̀ àdírẹ́sì ibi-àfojúsùn kò béèrè pé àwọn pákítì tí a gbà ti dé nípasẹ̀ ìsopọ̀ tí a gbẹ́kẹ̀lé.