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 needMechanism that fitsWhat it cannot do
Periodic list of connected clientsStatus file written on an intervalDeliver events as they happen
Interactive prompts and session controlThe single management connectionServe two controllers at once
Multiple consumers of eitherOne owner process that fans outExist 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.

Erthyglau cysylltiedig