systemd dúró iṣẹ́ VPN: bá Type= mu pẹ̀lú alábàáṣiṣẹ́
Ẹ̀yà VPN ní àkókò ìbẹ̀rẹ̀ yóò di aláìṣiṣẹ́ nígbà tí Type= kò bá ìgbésí ayé alábàáṣiṣẹ́ mu. Bá irú rẹ̀ mu, tún ìní ṣe, kí o sì tò iṣẹ́ náà lẹ́yìn túnéèlì.
Àwọn ẹ̀yà lè dàbí ẹni tí ó tọ́, systemctl start lè sọ àṣeyọrí, àti ní ìṣẹ́jú mẹ́wàá lẹ́yìn iṣẹ́ náà wà ní àìṣiṣẹ́. Tàbí ó máa ń tún bẹ̀rẹ̀ ní gbogbo ìlàjì ìṣẹ́jú kan títí tí ààlà ìbẹ̀rẹ̀ yóò fi dá a dúró. Kò sí ọ̀kan nínú àwọn ìhùwàsí méjèèjì tí ó jẹ́ àṣìṣe nẹ́tíwọ́kì: ẹ̀yà náà ń ṣàpèjúwe ìgbésí ayé ìlànà tí kò bá ohun tí alábàáṣiṣẹ́ ń ṣe gan-an mu. Alábàáṣiṣẹ́ lè ṣe fork kí ó sì jáde, tàbí ó lè ṣètò ìpàdé kí ó sì jáde lẹ́sẹ̀kẹsẹ̀.
Kí ni ìdí tí ẹ̀yà náà fi di aláìṣiṣẹ́ ní ìṣẹ́jú àáyá lẹ́yìn ìbẹ̀rẹ̀ àṣeyọrí
systemd ń yọ ipò jáde láti inú ìlànà tí òun fúnra rẹ̀ bẹ̀rẹ̀, nítorí náà Type= jẹ́ ọ̀rọ̀ nípa ìlànà yẹn, kì í ṣe ìwé àkọsílẹ̀. Pẹ̀lú Type=simple ẹ̀yà náà ka bí ẹni tí ń ṣiṣẹ́ nígbà tí àṣẹ náà ń ṣiṣẹ́, ó sì di aláìṣiṣẹ́ nígbà tí ó padà. Nítorí náà alábàáṣiṣẹ́ tí ó fi ìsopọ̀ lé olùrànlọ́wọ́ lọ́wọ́ tí ó sì jáde máa ń dàbí ìṣubú, kódà nígbà tí túnéèlì náà ń ṣiṣẹ́. Lẹ́yìn náà ìwé ìṣẹ̀lẹ̀ máa ń fi àwòrán ìbẹ̀rẹ̀ àti ìdúró hàn tí a ń kà bí bínárì tí ó bajẹ́.
Ka irú ẹ̀yà náà lẹ́gbẹ̀ẹ́ ìhùwàsí alábàáṣiṣẹ́ kí o tó fi ọwọ́ kan ìṣètò nẹ́tíwọ́kì.
Yan irú tí ó bá alábàáṣiṣẹ́ mu
Àwòrán méjì ń bo ọ̀pọ̀ jùlọ CLI àwọn olùtà: àṣẹ tí ń ṣètò ìpàdé tí ó sì jáde, àti àṣẹ tí ń ṣe fork olùrànlọ́wọ́ kí ó tó padà. Ọ̀kọ̀ọ̀kan nílò ìrísí ẹ̀yà tí ó yàtọ̀.
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnectoneshot pẹ̀lú RemainAfterExit=true ń jẹ́ kí ẹ̀yà náà wà ní ìṣiṣẹ́ lẹ́yìn tí àṣẹ náà padà, èyí tí ó bá àwòrán ṣètò kí o jáde mu, àṣẹ ìdúró sì ń fún iṣẹ́ náà ní ìparí mímọ́. Alábàáṣiṣẹ́ tí ń ṣe fork ń pa ìrísí kan náà mọ́ ṣùgbọ́n ó nílò Type=forking kí systemd lè tẹ̀lé ọmọ náà. Ṣètò Restart=on-failure, RestartSec=30 àti StartLimitBurst aláàlà, kí ìdálẹ́sẹ̀ olùpèsè má baà di ìyípo ìbẹ̀rẹ̀ tí ń sin àṣìṣe náà.
Má ṣe jẹ́ kí alábàáṣiṣẹ́ tí a ń ṣọ́ di daemon láé
Àwọn olùṣọ́ tí ó wà ní ìta systemd ń kọlu odi kan náà. Script ìṣiṣẹ́ runit tí ó ń bẹ̀rẹ̀ alábàáṣiṣẹ́ tí ó ti di daemon yóò padà sọ́dọ̀ olùṣọ́ lẹ́sẹ̀kẹsẹ̀, ẹni tí yóò ka ìpadà yẹn bí ìṣubú tí yóò sì bẹ̀rẹ̀ ẹ̀dà mìíràn. Gbogbo olùṣọ́ ń retí láti ní ìlànà iwájú, gẹ́gẹ́ bí sshd -D ti ń dúró ní iwájú. Yọ àsíá daemon kúrò fún àwọn àṣẹ tí a ń ṣọ́ kí o sì fi iṣẹ́ ẹ̀yìn fún olùṣọ́. Àwọn script ìgbòkè tí ó padà kí túnéèlì tó wà ń fa ìdàrúdàpọ̀ kan náà.
Ìlànà tí ó ya ara rẹ̀ sọ́tọ̀ kò hàn sí ohunkóhun tí ó yẹ kí ó máa ṣọ́ ọ.
Ìpàdé náà parí, ó sì gbé túnéèlì náà lọ pẹ̀lú ara rẹ̀
Ìpàdé ojú-iṣẹ́ ń ní alábàáṣiṣẹ́ tí ó bẹ̀rẹ̀. Parí ìwọlé, bọ́ọ̀sì ìpàdé náà yóò sì pòórá, ó gbé túnéèlì náà lọ pẹ̀lú, èyí sì ṣàlàyé ìdí tí ìsopọ̀ alábàáṣiṣẹ́ àwòrán fi máa ń já bó nígbà tí fèrèsé ìkẹyìn bá tiì. Àwọn sáfà yẹ kí ó lo ẹ̀yà ẹ̀rọ tàbí profáìlì NetworkManager tí ó ń gbé ara rẹ̀ ró. Ẹ̀yà olùmúlò ń ní ìtumọ̀ nìkan nígbà tí túnéèlì yẹ kí ó parí pẹ̀lú ìwọlé, nítorí náà so ó mọ́ àfojúsùn ìpàdé àwòrán kí o sì sọ èyí nínú àpèjúwe rẹ̀.
Olùmúlò iṣẹ́ náà ni ìdajì kejì ìṣòro kan náà. Kọ́kọ́rọ́ tí root ní pẹ̀lú ipò 0600 kò lè kà fún ẹ̀yà tí ń ṣiṣẹ́ lábẹ́ àkọsílẹ̀ mìíràn, ohunkóhun tí sudo bá ṣe nínú shell rẹ.
systemctl cat openvpn-server@work
sudo chown -R openvpn:network /etc/openvpn/server
sudo find /etc/openvpn -type f -perm /077 -lsTò àwọn tí ó gbára lé lẹ́yìn tí àdírẹ́sì náà bá wà
Nígbà tí daemon so ara rẹ̀ mọ́ àdírẹ́sì túnéèlì tí a kò tíì dá, ó jáde pẹ̀lú Cannot assign requested address. Àtúnṣe náà ni ìtòlẹ́sẹẹsẹ tí ó ṣe kedere, kì í ṣe ìyípo ìgbìyànjú.
[Unit]
After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.deviceAfter= ń tò àwọn iṣẹ́, nígbà tí Requires= lórí ẹ̀yà ẹ̀rọ ń so ẹni tí ó gbára lé mọ́ wíwà interface, èyí tí ó lágbára ju dídúró de àfojúsùn nẹ́tíwọ́kì nìkan. Tún gbé olùṣàkóso wọ̀lẹ̀ lẹ́yìn àtúnṣe kí o sì tún iṣẹ́ tí ó gbára lé bẹ̀rẹ̀, lẹ́yìn náà ka ìwé ìṣẹ̀lẹ̀ rẹ̀ dípò ríro pé ìtòlẹ́sẹẹsẹ náà ti ṣiṣẹ́. Fi ìjáde alábàáṣiṣẹ́ ránṣẹ́ sí ìwé ìṣẹ̀lẹ̀ pẹ̀lú StandardOutput=journal tàbí àṣàyàn log, nítorí alábàáṣiṣẹ́ tí a ń ṣọ́ tí ń kọ sínú fáìlì tí ẹnikẹ́ni kò ṣí dàbí ẹni tí kò bẹ̀rẹ̀ rí.
Lẹ́yìn náà tún ẹ̀rọ náà bẹ̀rẹ̀ lẹ́ẹ̀kan kí o sì jẹ́rìí pé ẹ̀yà náà wà ní ìṣiṣẹ́ lẹ́yìn tí ẹ̀rọ túnéèlì bá farahàn. Àtúnṣe tí a fi systemctl start nìkan ṣàyẹ̀wò kò ti dán ìtòlẹ́sẹẹsẹ ìbẹ̀rẹ̀ tí ó yẹ kí ó tún ṣe.