Un cleient rheoli yn unig: pam mae eich monitor yn taflu'r rhyngwyneb graffig allan
Mae'r soced rheoli'n derbyn un cysylltiad ar y tro. Mae ail danysgrifiwr naill ai'n methu cysylltu neu'n dwyn rheolaeth oddi wrth y gydran sy'n berchen ar yr anogiadau.
Mae rhyngwyneb graffig bwrdd gwaith yn dal y cysylltiad rheoli, felly mae sgript fonitro sy'n ceisio agor ei un ei hun yn darllen dim neu, yn waeth, mae'r rhyngwyneb yn stopio ymateb i anogiadau. Y casgliad arferol yw bod y daemon yn ansafadwy. Yn y daemon cymunedol mae'r cyfyngiad yn fwriadol: mae'r rhyngwyneb rheoli'n gwasanaethu un cleient rheoli cysylltiedig ar y tro, ac nid oes gan y nifer hwnnw ddim i'w wneud â faint o ddefnyddwyr y gall y VPN eu cario.
Un soced, un deiliad
Mae'r sianel rheoli'n derbyn un cleient cysylltiedig. Pan ddaw ail un tra bo'r cyntaf yn weithredol, mae'n aros neu'n cael ei wrthod, ac nid oes unrhyw fodd tanysgrifiwr cyfochrog wedi'i guddio y tu ôl i opsiwn. Mae datgysylltu'r deiliad presennol yn gadael i'r daemon dderbyn yr un nesaf, a throsglwyddiad yw hynny yn hytrach nag ail sianel.
Mae hynny'n gwneud pob offeryn ychwanegol yn gystadleuydd. Os y rhyngwyneb sy'n berchen ar y cysylltiad, mae sgript arolygu naill ai'n methu cysylltu neu'n llwyddo dim ond ar ôl i'r rhyngwyneb ildio, ac mae'r dilyniant yn ailadrodd ar yr ailgysylltiad nesaf. Os y sgript sy'n cysylltu gyntaf, mae'r rhyngwyneb yn colli ei lwybr rheoli ac mae ei anogiadau'n stopio gweithio. Nid yw'r un o'r offerynnau'n adrodd y gwrthdaro, oherwydd dim ond ei orchymyn aflwyddiannus ei hun y mae pob un yn ei weld.
| What you need | Mechanism that fits | What it cannot do |
|---|---|---|
| Periodic list of connected clients | Status file written on an interval | Deliver events as they happen |
| Interactive prompts and session control | The single management connection | Serve two controllers at once |
| Multiple consumers of either | One owner process that fans out | Exist without you writing it |
Penderfynwch pa gydran sy'n berchen ar y rheolaeth
Dewiswch un deiliad ar gyfer y sianel ryngweithiol a gadewch iddo fod yr unig beth sy'n cysylltu. Mae rhyngwyneb sy'n rheoli'r cysylltiad, sgript sy'n ateb anogiadau dilysu a rheolydd sy'n terfynu sesiynau i gyd yn cyfrif fel deiliaid, a dim ond un all ddal y rôl.
Pan fo rhyngwyneb yn berchen ar y cysylltiad, defnyddiwch yr integreiddiad y mae'r rhyngwyneb hwnnw'n ei gynnig yn hytrach na brwydro yn ei erbyn. Mae rasio â'r deiliad am y soced yn cynhyrchu methiannau ysbeidiol sy'n ymddangos yn hap i ddefnyddwyr, ac mae'r sawl sy'n dadfygio fel arfer yn gweld dim ond ail hanner y ras. Nodwch pa broses sy'n cysylltu gyntaf ar ôl ailgychwyn, oherwydd y drefn honno sy'n penderfynu pwy sy'n ennill bob tro. Bydd monitor sy'n cychwyn cyn y rhyngwyneb yn cadw'r sianel nes i'r rhyngwyneb ildio.
Defnyddiwch snapshots statws ar gyfer y casglwyr
Mae rhan fwyaf o'r monitoreaeth angen rhestr, nid sgwrs. Mae ffeil statws gyfnodol yn ateb hynny heb gyffwrdd â'r sianel reoli, ac mae'n parhau i weithio tra bo'r rhyngwyneb yn parhau'n gysylltiedig.
status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix
Y cyfwng yw'r gyllideb fireinder, felly gosodwch ef yn ôl yr hyn sydd ei angen ar y dangosfwrdd mewn gwirionedd ac nid yn ôl yr lleiaf o werth sy'n ymddangos yn ddiogel. Mae snapshot a ysgrifennir bob ychydig eiliadau yn rhad; nid yw sgript sy'n ailgysylltu â'r soced rheoli bob ychydig eiliadau, oherwydd mae pob ailgysylltiad yn cystadlu â'r deiliad.
Nid hanes yw snapshot ac nid ffrwd digwyddiadau ydyw. Ni welir byth gysylltiadau sy'n cyrraedd ac yn gadael o fewn un cyfwng, felly ni ellir bodloni gofyniad archwilio trwy arolygu ffeil sy'n trosysgrifo ei hun. Os oes angen i chi wybod a gysylltodd defnyddiwr o gwbl, y snapshot yw'r offeryn anghywir.
Mae ffanio allan yn ddyluniad, nid yn fodd
Os oes angen data rheoli byw ar sawl defnyddiwr mewn gwirionedd, rhowch un gydran ymddiriedus o flaen y soced a gadewch iddi gyhoeddi arsylwadau dethol yn dynn i'r gweddill. Mae'r gydran honno'n berchen ar yr ailgysylltiad, yr anogiadau dilysu a'r penderfyniad ynghylch beth sy'n ddiogel i'w amlygu.
Adeiladwch ef yn fwriadol: diffiniwch ba ymholiadau sy'n cael eu caniatáu, cofnodwch pwy a ofynnodd, ac osgowch droi'r haen ffanio allan yn banel rheoli o bell ar ddamwain. Nid oes gan y daemon unrhyw fodd aml-gleient i'w alluogi, ac nid oes unrhyw linell ffurfweddu'n creu un. Triniwch y deiliad fel rhan o'r ffin diogelwch, oherwydd mae'n dal rhyngwyneb a all ddatgysylltu pobl. Dylai ei ailgychwyn fod yn weithrediad arferol gyda llwybr adfer wedi'i ddogfennu.
Triniwch y soced fel braint, nid fel metrigau
Gall y rhyngwyneb rheoli ddatgysylltu defnyddwyr, newid statws a darllen digwyddiadau sy'n enwi pobl. Mae ei gyfrinair yn dilysu'r cleient ac nid yw'n amgryptio'r cludiant, felly mae gwrandäwr rhwydwaith yn amlygu'r sgwrs i unrhyw un a all ei harsylwi.
Gwell soced lleol neu wrandäwr sydd wedi'i gyfyngu'n llym, a gwirio pa broses y mae eich casglwr yn cyfeirio ati mewn gwirionedd, oherwydd mae cynhyrchion gweinydd yn dod â'u API rheoli eu hunain sy'n ymddwyn yn wahanol. Mae casglwr wedi'i anelu at y daemon anghywir yn cynhyrchu casgliadau hyderus a chlir. Cadarnhewch y llwybr a'r broses berchenogol cyn dadfygio ymholiad sy'n dychwelyd dim.