Tagann daichead comhad .ovpn d’aon tír amháin ó sholáthraí, agus tá an plean soiléir: cóipeáil ceann fánach ina áit, ansin tosaigh an tollán. Má scríobhtar mar phíobán taobh istigh de ExecStart é, faigheann an plean sin bás ag am tosaithe le cód stádais nach míníonn aon rud. Ní script é an comhad aonaid, agus is é an deisiú ná shell a thabhairt isteach go sainráite nó stopadh go hiomlán ag roghnú comhad.

An tsiomptóm: aonad a thosaíonn agus a fhaigheann bás láithreach

Taispeánann an stádas gur theip ar an tseirbhís i bhfaireog de shoicind, agus ainmníonn líne an irise ordú nach bhfaigheadh aon shell riamh. Ní fheictear aon rud faoin tollán, mar níor thosaigh an tollán riamh.

Is é an bealach is tapúla chun é seo a dhearbhú an líne ordaithe bheacht a léamh ón iris. Athshonraíonn systemd an rud a d’fhorghníomhaigh sé, agus taispeánfaidh an teaghrán carachtair an phíobáin mar argóintí litriúla seachas mar oibreoirí.

Cén fáth nach féidir le ExecStart píobán a rith

Roinneann systemd féin an líne ordaithe, cuireann sé a chomharthaíocht féin agus a ionadú athróg féin i bhfeidhm, agus ansin forghníomhaíonn sé an toradh go díreach. Níl píopaí, atreorú, leathnú patrún ag shell ná ionadú ordaithe mar chuid den ghramadach sin ar chor ar bith. Is rogha dearaidh é seachas faillí: deir aonad go dearbhaitheach cad atá le rith, agus baineann loighic shell le script a nglaonn an t-aonad air. Leanann an dá dheisiú as sin, agus ní éilíonn ceachtar acu níos mó pribhléidí a thabhairt don aonad.

Míníonn sé freisin an cód scoir mhíthreorach. Caitear leis an gcéad argóint mar an dénártha, mar sin teipeann ar líne mhífhoirmithe sula ritheann aon chuid de do loighic.

Déan an rogha in ExecStartPre

Is é an deisiú díreach ná céim ullmhúcháin a ghlaonn shell go sainráite, ag coinneáil na rogha agus an tosaithe san aonad céanna ionas nach féidir le teip i gceann acu an ceann eile a fhágáil ag rith ina aonar.

[Service]
Type=notify
ExecStartPre=/bin/bash -c "ls /etc/openvpn/profiles/au* | shuf -n 1 | xargs -r -I{} cp -f {} /etc/openvpn/%i.conf"
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/%i.conf

Cinneann trí shonra an maireann sé seo i dteagmháil le meaisín fíor. Is é an t-ainmniú an chéad ghaiste: ionadaíonn systemd %i le linn an aonaid a pharsáil, i bhfad sula ritheann bash, mar sin caithfidh an sonraitheoir seasamh lasmuigh de chomharthaí athfhriotail aonair. Cuireann xargs -r cosc ar cp rith gan argóint nuair nach n-oireann an patrún d’aon rud. Agus stoptar an t-aonad le céim ullmhúcháin a theipeann, agus sin an toradh ceart: is measa tosú le cumraíocht an lae inné ná gan tosú ar chor ar bith. Ní droch-ádh de ghnáth rogha fhánach a thógann an comhad céanna i gcónaí. Seiceáil an bhfuil an comhad cóipeáilte á fhorscríobh ag nuashonrú pacáiste, nó an bhfuil an patrún ag teacht le haon iontráil sheanchaite amháin.

Nó lig do OpenVPN an críochphointe a roghnú

OpenVPN in ann cheana féin roinnt críochphointí a choinneáil in aon phróifíl agus rogha go fánach eatarthu, rud a bhaineann an shell, an chóip agus an rochtain scríofa amach as cosán an tosaithe ar fad.

client
remote-random
<connection>
remote au1.example.net 1194 udp
</connection>
<connection>
remote au2.example.net 1194 udp
</connection>

Coinníonn an fhoirm seo rogha an fhreastalaí laistigh den chomhad a scríobh an soláthraí, mar sin ní bhrisfidh rothlú a athainmníonn comhaid an t-aonad. Déanann sé an liosta iarrthóirí inchíonta freisin, rud nach bhfuil patrún thar eolaire riamh. Tuilleann an mheascadh a áit fós nuair a bhíonn próifílí difriúil i níos mó ná críochphointe: deimhniúcháin dhifriúla, treoracha ródaithe dhifriúla, beartas sifir dhifriúil. Sa chás sin tá an rogha idir cumraíochtaí iomlána agus is é céim shell an bealach macánta chun é sin a chur in iúl.

Léigh an t-aonad agus an comhad a d’úsáid sé ar ais

Deimhnigh cén t-aonad atá ag rith i ndáiríre sula ndéanann tú dífhabhtú ar a ábhar. Is bonneagar iad an tseirbhís meitea phacáistithe agus an teimpléad; is iad na haonaid a fhreagraíonn do do chomhaid na hábhair atá ainmnithe ina ndiaidh.

systemctl list-units 'openvpn*'
systemctl cat [email protected]
journalctl -u openvpn@au -n 30 --no-pager

Is gnách go dtagann ábhar nach cuimhin le haon duine a chur ar siúl ó chomhad cumraíochta ar strae i bhfillteán an phacáiste. Múch an t-ábhar ainmnithe sin in ionad an teimpléid, nó tabharfaidh an chéad uasghrádú pacáiste eile ar ais é. Tar éis an athraithe, tosaigh an t-aonad agus léigh an líne ordaithe a thuairiscíonn an iris, ansin deimhnigh an cosán cumraíochta a d’oscail sé i ndáiríre. Scarann an t-aon seiceáil sin rogha fhánach atá ag obair ó sheirbhís atá ag athúsáid comhad ón mhí seo caite go ciúin.

Ailt ghaolmhara