შიდა სახელი კვლავ VPN სერვერზე წყდება გვირაბის დახურვიდან ერთი დღის შემდეგ, და გადამწყვეტის ფაილი ისევ და ისევ ბრუნდება იმ ჩანაწერით. იქ, სადაც Debian-ის resolvconf ფლობს მდგომარეობას, ეს ფაილი მომწოდებლების ჩანაწერებისგან იკვრება, და ერთი მათგანი სწორედ ნარჩენია. ჩანაწერის წაშლას ერთი წუთი სჭირდება; იმის დამტკიცება, რომ წაშლა უსაფრთხოა, ნამდვილი სამუშაოა. ეს ჭიშკრები რიგრიგობით მუშაობს, და წარუმატებელი ჭიშკარი ამთავრებს პროცედურას, ნაცვლად იმისა, რომ შემდეგ ნაბიჯზე გამოგზავნოს.

დაადასტურეთ, რომ resolvconf ფლობს მდგომარეობას

ჯერ მფლობელი დაადგინეთ, რადგან systemd-resolved-ის ქვეშ იგივე სიმპტომი სხვა ბრძანებებს და სხვა შეკეთებას მოითხოვს. resolvconf პაკეტი მონაცემთა ბაზას /run/resolvconf-ის ქვეშ ინახავს და /etc/resolv.conf-ს იმ ფაილზე მიუთითებს, რომელსაც ამ ბაზიდან აწყობს. ორი წაკითხვა წყვეტს საკითხს: სიმბმულის სამიზნე და ის, დაყენებული და აქტიურია თუ არა პაკეტი. /run/systemd/resolve-ის ქვეშ არსებული სამიზნე სხვა არქიტექტურას ნიშნავს, სადაც ქვემოთ ჩამოთვლილი არაფერი ვრცელდება.

dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service

თუ ბმული სხვაგან მიუთითებს ან პაკეტი აკლია, აქ გაჩერდით. თავსებადობის გარსი, რომელმაც სახელი ისესხა და სხვა გადამწყვეტის მმართველის მიერ მოდის, ამ მონაცემთა ბაზის მფლობელი არ არის.

მონაცემთა ბაზა შეყვანებს ინახავს, არა პასუხს

მონაცემთა ბაზა შეყვანებს ინახავს, ფაილი კი გამოსავალია, ამიტომ შეყვანების ჩამოთვლა ერთადერთი გზაა იმის სანახავად, თუ რომელმა პროგრამამ დააყენა ჩანაწერი, რომლის მოშორებაც გსურთ. ჩანაწერები მოკლეა, და მათი გასაღებები ის სახელურებია, რომლებიც მოგვიანებით დაგჭირდებათ. წაიკითხეთ ისინი სანამ გადაწყვეტთ, რომელია მოძველებული, რადგან VPN ინტერფეისის მსგავსი სახელი სხვა კლიენტის შეიძლება იყოს. კერძო მისამართები და შიდა ძიების დომენები საერთო დიაგნოსტიკას მოშორებით შეინახეთ; თავად გასაღები ჩვეულებრივ ცნობს ჩანაწერს.

sudo resolvconf --list
sudo resolvconf -i

პირველი ბრძანება მოწოდებულ ჩანაწერებს დამუშავების გარეშე ბეჭდავს, მეორე კი იმ ინტერფეისებს ჩამოთვლის, რომლებიც ახლა DNS კონფიგურაციას აწვდიან. გასაღებები ჩვეულებრივ ინტერფეისის სახელისა და მომწოდებელი პროგრამისგან იქმნება. resolvconf-ის სახელმძღვანელო აღწერს იმ მონაცემთა ბაზას, რომელზეც ეს გასაღებები მიუთითებს.

გასაღები გამოსავლიდან დააკოპირეთ, ნაცვლად იმისა, რომ თავიდან ააწყოთ. ჩანაწერს tun0 არ ჰქვია მხოლოდ იმიტომ, რომ ძველმა სკრიპტმა ეს სახელი გამოიყენა.

დაამტკიცეთ, რომ ჩანაწერს მფლობელი არ ჰყავს

ჩანაწერის წაშლა უსაფრთხოა, როცა არცერთ ცოცხალ კავშირს არ დაუყენებია ის. დაუკავშირეთ გასაღები იმ კავშირს, რომელმაც შექმნა, შემდეგ კი დაადასტურეთ, რომ ეს კავშირი აღარ არსებობს. ეს შესაბამისობა მთელი ჭიშკარია, და სწორედ ეს ნაბიჯი გამოტოვება ყველაზე ხშირად წაშლის ბრძანებისკენ მიმავალ გზაზე. თუ მტკიცებულება ბუნდოვანია, ჩანაწერი ცოცხლად მიიჩნიეთ და გაჩერდით.

პროცესების სახელები სუსტი მტკიცებულებაა. OpenConnect vpnc-script-ს იძახებს, ამიტომ vpnc პროცესის შემოწმება არაფერს ამბობს იმაზე, რომელი ჩანაწერია მიმდინარე. ახალ კავშირს შეუძლია ძველის მიერ დატოვებული ინტერფეისის სახელის ხელახლა გამოყენება, რის გამოც გასაღები უფრო ძველად გამოიყურება, ვიდრე სინამდვილეშია. შეადარეთ ჩანაწერის შიგნით არსებული სერვერის მისამართი ჯერ კიდევ აქტიური გვირაბების მისამართებს, და გაჩერდით, თუ ისინი ემთხვევა.

მფლობელი მმართველის მეშვეობით ჩვეულებრივი გაწყვეტა პირველი საშუალებაა. ის უკან იწევს იმას, რაც ამ კავშირმა დააყენა, და სხვა მომწოდებლებს ხელუხლებლად ტოვებს.

შეამოწმეთ წაშლა და გადაწერა

როცა ჩანაწერი მოძველებულად დადასტურდა, წაშალეთ იგი ზუსტი გასაღებით და შემდეგ წაიკითხეთ შედეგი, ნაცვლად იმისა, რომ ჩავთვალოთ. ბრძანება ცვლის გადამწყვეტის მდგომარეობას ჰოსტის ყველა აპლიკაციისთვის, ამიტომ გაუშვით ის თქვენს მიერ კონტროლირებად ფანჯარაში. გასაღები ბრჭყალებში ჩასვით, რადგან ის შეიცავს სიმბოლოებს, რომლებსაც shell სხვაგვარად გააფართოებდა. ბლოკში არსებული ჩანაცვლება აღნიშნავს სიიდან დაკოპირებულ გასაღებს და არა ლიტერალურ სტრიქონს.

sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example

წაშლა განახლების ჩართვისას განახლების სკრიპტებს უშვებს; განახლების გამორთვისას ის განახლებას აყოვნებს, ამიტომ წაშლილი ჩანაწერი და გადაწერილი ფაილი ორი ცალკე მოვლენაა. სანამ ფაილს შეხედავთ, ხელახლა წაიკითხეთ სია და დაადასტურეთ, რომ გასაღები გაქრა. შემდეგ ჰკითხეთ ერთი სახელი, რომელიც ჯერ კიდევ უნდა წყდებოდეს დარჩენილი მომწოდებლების მეშვეობით, და ერთი საჯარო სახელი, და ორივე შეადარეთ იმას, რაც ცვლილებამდე ნახეთ. თუ კერძო სახელი სრულიად წყვეტს წყვეტას, ეს ჩანაწერი ჯერ კიდევ ატარებდა მას.

resolvconf -u მხოლოდ იმ განახლების სკრიპტებს უშვებს. ის არასოდეს ცნობს ან არ შლის მოძველებულ ჩანაწერს, და მოძველებული შეყვანებიდან ხელახალი აწყობა იმავე არასასურველ ფაილს აწარმოებს.

მოკლული გაწყვეტის კაუჭი ჩანაწერს ტოვებს

ერთჯერადი გაწმენდა დღევანდელ მდგომარეობას აბრუნებს, და შემდეგი შეწყვეტილი გამორთვა ჩანაწერს ისევ აბრუნებს. გაიარეთ დაშლის გზა: კლიენტის გაწყვეტის კაუჭი, ის დამხმარე, რომელსაც კაუჭი იძახებს, და რა ხდება, როცა რომელიმე მათგანი იკვდება. შეწყვეტილი გამორთვა ჩვეულებრივი წყაროა, რადგან კაუჭი საერთოდ არ გაშვებულა. ერთხელ ჩაწერეთ კაუჭის გასვლის სტატუსი და გაიგებთ, ჩუმად მარცხდება თუ არა.

დაყენება და გაწმენდა ერთი მფლობელის ქვეშ შეინახეთ. მეორე სკრიპტი, რომელიც ინტერფეისების სახელებს გამოიცნობს, საბოლოოდ სხვა კავშირის ჩანაწერს წაშლის, რაც უარესია, ვიდრე ის მოძველებული ჩანაწერი, რომლითაც დაიწყეთ. მფლობელმა ასევე უნდა გადაწყვიტოს, როდის არის ჩანაწერი მოძველებული, რადგან იცის, რომელმა კავშირმა დააყენა ის.

შემდეგ გამოსცადეთ სასიცოცხლო ციკლი: დაუკავშირდით, გაწყვიტეთ, კვლავ ჩამოთვალეთ ჩანაწერები. ჩანაწერის თავისით გაქრობა ერთადერთი მტკიცებულებაა, რომ შეკეთება ძლებს.

დაკავშირებული სტატიები