Хэн нэгэн VPN клиентийг дахин холбохыг хүсч байгаа бөгөөд энэ хүсэлт гурван өөр зүйлийг илэрхийлж болно. Энэ нь нэг баталгаажуулсан сессийг таслах, UDP сервер явж байгааг клиент бүрд мэдэгдэх, эсвэл демоноо өөрөө дахин эхлүүлэх гэсэн үг байж болно. Тус бүр өөр нөлөөллийн радиустай бөгөөд буруу сонголт нэг хэрэглэгчийн засварыг бүхэл үйлчилгээний тасалдал болгоно. Хүрээ бол шийдвэр бөгөөд тушаал түүнээс үүдэн гарна.

Ямар хяналт ашиглахыг асуухаас өмнө хэнд нөлөөлөх ёстойг асуугаарай.

Нэг жишээ: удирдлагын интерфэйс

Тохируулсан удирдлагын интерфэйс холбогдсон жишээнүүдийг жагсааж, тэдгээрийн яг нэгийг тасалж чадна. Сессия бүр клиентийн таних тэмдэг агуулдаг бөгөөд client-kill CID нийтлэг нэр биш, яг тэр таних тэмдгийг зоридог. Одоогийн төлөвийн гаралтаас амьд таних тэмдгийг уншина уу, учир нь хуучин логоос хуулсан утга нь одоо байхгүй сессийг заана. Жишээг таслах нь тэр холболтыг дуусгаад өөр юу ч биш.

Энэ нь шинэ холболтыг баталгаажуулахгүй. Клиент буцаж ирэх эсэх нь түүний дахин оролдлогын тохиргоо, үлдсэн алсын бичлэгүүд, баталгаажуулалтын шаардлага, хяналтын програм ажиллаж байгаа эсэхээс хамаарна. Буцаж ирсэн клиент шинэ таних тэмдэг авдаг тул таних тэмдгийг харьцуулах нь хуучин ба шинийг ялгах цорын ганц найдвартай арга юм.

UDP гарах мэдэгдэл нь клиент бүрийн тушаал биш

explicit-exit-notify нь гарах болон дахин эхлүүлэх үйл явдлын тухай тохиргооны заавар юм. UDP клиент дээр энэ нь сессия дуусч байгааг нөгөө талд мэдэгдэх бөгөөд тоон аргумент нь мэдэгдэл хэдэн удаа давтагдахыг удирддаг. Сервер UDP-ээр ажиллах үед холбогдсон клиентүүддээ дахин эхлүүлэх хяналтын мессеж илгээдэг бөгөөд баримтжуулсан утгууд нь ижил серверт дахин холбогдохыг өөр алсын бичлэгт шилжихээс ялгадаг. Энэ бол өргөн үзэгчидтэй амьдралын мөчлөгийн дохио юм.

Түүнд юу ч дурын мөчид дурын клиентийг сонгодоггүй. Үүнийг дахин холболтын товч гэж үзэх нь бүх холбогдсон сессийд нэгэн зэрэг хүрнэ.

Дохио нь сессийд биш, процессд үйлчилнэ

SIGUSR1 ажиллаж буй процесст тохиргоог дахин уншихгүйгээр холболтоо дахин эхлүүлэхийг хүсдэг бөгөөд тогтвортой байдлын сонголтууд тэр дахин эхлэлээс юу үлдэхийг шийддэг. SIGHUP урагшаа явна: тохиргооны файлыг дахин уншиж, нөөцөө дахин нээнэ. SIGTERM ба SIGINT эмх цэгцтэй унтраахыг хүснэ. Эдгээр нь процессын түвшний үйлдэл юм: олон клиенттэй сервер дээр процесс агуулж буй бүх сессийд нөлөөлнө, тасалбаронд нэрлэсэн сессийд биш.

Процесс үйлчилгээний менежерийн доор ажиллах үед процессын жагсаалтаас олсон PID-д дохио илгээхийн оронд менежерийн өөрийн хяналтыг ашиглана уу. Менежер ямар дохио илгээдэгийг харахын тулд нэгжийг уншина уу, учир нь дахин эхлүүлэх ба дахин ачаалах нь нэг демонд өөр өөр зүйл хийдэг.

Хяналтыг сонгохоос өмнө хүрээг тодорхойл

Гурван асуулт үүнийг шийднэ. Хэнд нөлөөлөх ёстой: нэг хэрэглэгч, нэг серверийн бүх клиент, эсвэл демон ба түүний агуулж буй бүхэн. Юу үлдэх ёстой: тохиргоо, туннелийн төлөв, эсвэл аль нь ч биш. Хэнд эрх олгогдсон: удирдлагын интеграци, үйлчилгээний эзэмшигч, эсвэл гарах мэдэгдлийг хянадаг сүлжээний оператор. Эдгээрт хариулбал зөвхөн нэг хяналт тохирно.

Дахин холболтын товч авахын тулд баталгаажуулалтгүй удирдлагын сонсогчийг нэмэх нь портод хүрэх хэн бүхэнд тэр товчноос хамаагүй илүүг өгдөг.

Шинэ сессийг шалгана уу, таслалтыг биш

Таслалтын үйл явдал хуучин сессия дууссныг нотолдог. Шинэ сессия баталгаажиж, хаяг авч, маршрут суулгаж, хэрэглэгчид хэрэгтэй нөөцөд хүрч байгаа талаар энэ нь юу ч хэлэхгүй. Шинэ таних тэмдгийг, дараа нь туннелийн төлөвийг, дараа нь нэг бодит нөөцийг шалгана уу. Тэр гурван алхам нь дахин холболт ба ажиллаж буй холболтын ялгаа юм.

Өөрчлөлтийн бүртгэлд хүрээг бичнэ үү. «Би клиентийг дахин холбосон» гэдэг нь клиент хуваалцсан серверийн дөчөөс нэг байсан үед тайлбар болохгүй.

Холбоотой нийтлэлүүд