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

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

Процессоос эхлээрэй, тохиргооноос биш

Маршрутад хүрэхээс өмнө терминал нээж, юу одоо ч ажиллаж байгааг асуугаарай. pgrep -a openconnect жишээ бүрийг аргументуудын хамт жагсааж, pid файл болон түүнд өгсөн скриптийг харуулна. Таны хүлээгээгүй процесс фантом туннелийг ямар ч логоос хурдан тайлбарлана.

Хэрэв юу ч ажиллахгүй бол холбоосыг хараарай. ip link show tun0 интерфэйс амьд үлдсэн эсэхийг хэлж, ip route show dev tun0 одоо ч түүнд холбогдсон маршрутуудыг жагсаана. Дараа нь resolver-ыг үүгээр шалгана уу resolvectl status. Өөрчлөхөөс өмнө гурван гаралтыг бүгдийг нь бичиж аваарай, учир нь тэр бичлэг нь дараа нь хуучирсан бичлэгийг шинэ бичлэгээс ялгах арга юм.

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

Өөрчлөлтийг буцаадаг нь туслах скрипт юм

openconnect интерфэйс, маршрут эсвэл resolver бичлэгүүдийг өөрөө устгадаггүй. Тэр гадаад туслахыг дууддаг, /etc/vpnc/vpnc-script upstream build-д болон /usr/share/vpnc-scripts/vpnc-script Debian, Ubuntu багцуудад, сонгогдох сонголт нь: -s. Туннелийг босгосон скрипт нь түүнийг буулгадаг скрипт юм.

Хэрэв процесс тэр туслахыг дуудалгүй гарвал төлөв үлдэнэ. OpenConnect гарын авлага скриптгүйгээр маршрутлалт болон нэрийн үйлчилгээ зөв ажиллахгүй гэдгийг тодорхой хэлж, туслахыг гарах үед интерфэйсийн төлөвийг задалдаг бүрэлдэхүүн гэж тайлбарладаг. Тиймээс клиентийг эхлүүлэхэд зам чухал: -s.

Тэр замд аль сигнал хүрдэг нь хувилбаруудын хооронд өөрчлөгдсөн. 7.06 гарын авлага SIGTERM-ийг скриптийг алгасах шууд гаралт гэж үздэг. Одоогийн build-үүд INT болон TERM-ийг сессийг гаргаж, туслах ажилладаг цэвэр зогсолт гэж баримтжуулдаг. Хоёр зан үйлийн аль нэгийг таамаглахын оронд таны гар дээрх бинарын SIGNALS хэсгийг уншина уу.

man openconnect | sed -n '/^SIGNALS/,/^LIMITATIONS/p'

Таны build баримтжуулсан сигналыг илгээгээрэй

Сигналыг мэдсэний дараа процессыг загвараар биш, pid-ээр зогсоогоорой.

pgrep -a openconnect
sudo kill -INT "$(cat /var/run/openconnect.pid)"

Дараа нь гарах статуст итгэхийн оронд эхний хэсгийн гурван шалгалтыг давтана уу. ip link show tun0 бүтэлгүйтэх ёстой, ip route show dev tun0 юу ч хэвлэх ёсгүй, мөн resolvectl status VPN холбоосыг жагсаах ёсгүй.

SIGHUP нь зогсоох товч биш: тэр салгаж, скриптийг ажиллуулж, сессийг үргэлжлүүлэх боломжтой үлдээдэг: --cookie. SIGUSR2 шууд дахин холбогдохыг шаарддаг. SIGKILL цэвэрлэгээг бүрмөсөн алгасдаг бөгөөд энэ нийтлэл яг тэр төлөвийн тухай юм.

resolv.conf-ыг солихгүйгээр resolver-ыг засаарай

Ихэнх Ubuntu системд /etc/resolv.conf systemd-resolved рүү чиглэсэн симбол холбоос бөгөөд таны засах ёстой файл биш. Үүнийг солих нь зөвхөн VPN биш бүх сүлжээний нэрийн шийдвэрийг эвддэг. Үүний оронд туннелийн бүртгэлийг арилгаарай:

resolvectl revert tun0
resolvectl query example.com

Хэрэв систем systemd-resolved-ийн оронд resolvconf ашигладаг бол интерфэйс бүрийн бичлэг холбоосыг тавихыг хэлэх хүртэл үлдэнэ, мөн resolvconf -d tun0 нь тэнцүү үйлдэл юм. Командыг сонгохын өмнө аль resolver ашиглагдаж байгааг шалгаарай.

Үхсэн холбоосын цаана байгаа сервер рүү одоо ч чиглэсэн хайлт хугацаа дуустал өлгөөтэй байх бөгөөд тэр саатал нь үлдсэн маршрутаас илүү эвдэрсэн DNS сервер мэт харагддаг.

Дараагийн салгалтыг уйтгартай болгоорой

pid файлын замыг эхлүүлэх болон унтраах үед ижил байлгахын тулд --pid-file тус бүрт өгч, эсвэл openconnect-ийг unit-ийн дор ажиллуулаарай түүний KillSignal таны хувилбарын баримтжуулсан сигналтай таарч байна. Эхлээд урд талд турших нь туслахын хэвлэдэг унтраах мэдэгдлүүдийг харуулна.

Холбогдож, салж, гурван шалгалтыг нэг удаа ажиллуулаарай. Цэвэр гаралт нь VPN холбоос, VPN маршрут эсвэл VPN resolver бичлэг үлдээхгүй. Гурвын нэг нь амьд үлдвэл аль бүрэлдэхүүн цэвэрлэж чадаагүйг одоо мэдэж байна. Дараагийн мөрдөн шалгалт тэр үед өлгөөтэй хайлтаас биш, тэр хариултаас эхэлнэ.

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