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

Эхний алхам: интервал ба алдааны текстийг тэмдэглэ

Нийлүүлэгчийн хяналтын самбараас биш, клиентийн өөрийн логоос эхэл. Linux клиент дээр үйлчилгээний лог болон туннелийн амьд төлөв нь ихэнх хэсгийг хамардаг:

journalctl -u openvpn-client@client --since '3 hours ago' | tail -60
journalctl -u wg-quick@wg0 --since '3 hours ago' | tail -40
wg show
ip -s link show wg0

Зөвхөн дүрсний өнгө өөрчлөгдсөн мөчийг биш, сүүлчийн амжилттай гар барилтын цагийн тэмдэглэгээ болон урсгал зогссон мөчийг тэмдэглэ. Дараа нь тасарсан гэж хэлэх GUI клиент нь цөм хэдэн секундын өмнө хүрсэн төлөвийг мэдээлж байж магадгүй.

Алдааны найруулгыг хадгал. Хугацаа дуусах, баталгаажуулалтаас татгалзах, адаптер эсвэл драйверын алдаа гэсэн гурвын өөр өөр түвшинг заадаг бөгөөд энэ асуудалд үрэгдсэн хүчин чармайлтын ихэнх нь тэднийг нэг гэж үзэхээс үүдэлтэй. Мөрийг үгчлэн тэмдэглэлдээ хуулж бич.

Хоёр дахь алхам: профайлыг биш, нэг хувьсагчийг өөрчил

Төхөөрөмж болон профайлыг хөдөлгөөнгүй байлгаж, машиныг өөр хандалтын сүлжээнд, жишээ нь утасны хотспот руу зөө. Энэ нь клиентийг замаас тусгаарлах хамгийн хямд туршилт юм. Анхны доголдлын интервалыг хамрах хангалттай удаан ажиллуул; хоёр тогтвортой минут нь гучдугаар минутад болох тасралтын талаар юу ч нотлохгүй.

Ethernet порттой зөөврийн компьютер нь Wi-Fi-г зурагнаас бүрэн гаргах хоёр дахь харьцуулалтыг өгнө. Туннель хоёр хувилбарт ч тогтвол анхны хандалтын сүлжээ анхаарал хандуулах ёстой: хандалтын цэгүүдийн хоорондын роуминг, орчуулгын хүснэгт нь дуусдаг гэрийн чиглүүлэгч, эсвэл урт урсгалыг дахин тохируулдаг дээд холбоос.

Аль хувьсагчийг өөрчилснөө бич. Харьцуулалт нь бусад бүх зүйл ижил хэвээр байх үед л тооцогдох бөгөөд үүнд серверийн төгсгөлийн цэг болон өдрийн цаг орно.

Гурав дахь алхам: интервалыг түвшинтэй холбо

Сайн сессийн урт нь таны мэдэлд байгаа хамгийн мэдээлэлтэй ганц тоо юм. Таймеруудад хүрэхийн өмнө үүнийг энэ жагсаалттай харьцуулж унш:

  • Унтах эсвэл сэрэх дараах тасралт: туннелийн төлөв түр зогсолтыг давсан боловч интерфейс давсангүй. Клиентийн сэрэх үеийн дахин холбогдолтын зан төлөв, үйлчилгээ туннелийг дахин эхлүүлдэг эсвэл урсгалыг хүлээдэг эсэхийг шалга.
  • Зөвхөн идэвхгүй үед тасрах: дунд нь ямар нэг зүйл урсгалын хугацааг дуусгасан. keepalive нь яг энэ тохиолдолд зориулагдсан.
  • Тогтмол сессийн насал дээр тасрах: дахин баталгаажуулалт эсвэл түлхүүр шинэчлэх үйл явдал, замын доголдол биш. Лог дотор яг тэр интервалд тодорхой татгалзал байх нь шинж юм.
  • Том дамжуулалт эсвэл том хуудсуудын үеэр тасрах: MTU болон хуваагдалтад сэжиглэ, идэвхгүй таймерт биш.

Идэвхгүй тохиолдолд тохиргоо нь протоколд хамаарах бөгөөд хоёр төгсгөл чухал. Сервер дээрх OpenVPN-ийн keepalive 10 60 нь 10 секунд тутамд пинг илгээж, пинг байхгүй бол 60 секундын дараа холбоосыг дахин эхлүүлнэ; NAT-ийн ард байгаа WireGuard клиентүүд пээрийн блокт PersistentKeepalive = 25 ашигладаг. OpenVPN мөн өгөгдлийн сувгийг таймераар дахин хэлэлцдэг, reneg-sec, энэ нь 2.x-д анхдагчаар 3600 секунд байна.

Өөр нийлүүлэгчийн гарын авлагаас түрэмгий утгуудыг хуулж болохгүй. Алдагдалтай гар утасны холбоос дээр богино хугацаа дуусах нь урьдчилан сэргийлэх ёстой байсан тасралтуудыг үүсгэдэг бөгөөд серверээс илгээсэн утгууд клиентийн профайлд тавьснаас давамгайлна.

Дөрөв дэх алхам: нэг дэмжигдсэн хувилбарыг харьцуул

Хэрэв оператор UDP болон TCP профайлыг хоёуланг нь нийтэлдэг бол ижил төхөөрөмж, сүлжээг нөгөөгийн эсрэг ажиллуул. Хуулсан профайлд дамжуулалтыг засахын оронд бодит тохирох файлыг ашигла. UDP дахин тохируулагддаг зам дээр тогтвортой TCP профайл нь асуудлыг тэр замд нарийсгана; энэ нь TCP хаа сайгүй илүү сайн дамжуулалт гэдгийг нотлохгүй.

Мөн адил логик төгсгөлийн цэгүүдэд хамаарна. Өөр сервер туршиж үзээд анхны үр дүнг хажууд нь хадгал. Зөвхөн нэг гарц сессийг дахин тохируулж байвал энэ нь тэр төгсгөлийн цэгийн тухай нотолгоо бөгөөд зөөврийн компьютер дээрх бүх адаптерыг дахин барих шалтгаан биш.

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

Засварыг баталгаажуулж, буцаах боломжийг хадгал

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

wg show wg0 latest-handshakes
curl -m 5 -sS https://ifconfig.me
cp client.ovpn client.ovpn.bak   # before editing timers

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

Лог цэвэр хэвээр байгаа ч туннель давтагдах интервалаар тасарсаар байвал дараагийн зогсоол нь тэр сессийн серверийн тал юм. Клиентийн сессийн танихууль болон тасралтын яг цагийг авч яв, учир нь энэ хос нь серверийн логийг хайлтад оруулдаг. Протоколын холбоосын сонголтууд OpenVPN 2.6 гарын авлагад баримтлагдсан байдаг, утгын яг утга хэрэгтэй үед.

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