OpenVPN არ ირთვება და შეცდომის შეტყობინება მიუთითებს ხაზზე, რომელიც სრულიად ნორმალურად გამოიყურება: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. სერტიფიკატი არ შეცვლილა, ფაილი რედაქტორში იხსნება და გზაში არაფერი გამოიყურება არასწორად. პარსერი ოფციის სახელს არ ედავება; ის ედავება იმას, რამდენი არგუმენტი მოვიდა მასთან ერთად. ოთხი შემოწმება თითქმის ყველა ასეთ შემთხვევას წყვეტს და ღირს მათი შესრულება ღირებულების მიხედვით.

რატომ ადანაშაულებს პარსერი ოფციას

კონფიგურაციის თითოეული ხაზი იყოფა სივრცეებად და ბრჭყალებად მანამ, სანამ რომელიმე ოფცია მას დაინახავს. ამიტომ სივრცის შემცველი მნიშვნელობა რამდენიმე არგუმენტად მოდის, თუ ის ბრჭყალებში არ არის, და ხაზის მფლობელი ოფცია იუწყება შეუთანხმებლობაზე. Windows-ზე ამას უდავოს ხდის ნაგულისხმევი ინსტალაციის საქაღალდე, რადგან C:\Program Files კონსტრუქციით გზის შუაშია. ამ შეცდომაში სერტიფიკატი არასოდეს იხსნება, ამიტომ ფაილის არსებობის შემოწმება სასარგებლოს არაფერს ამტკიცებს.

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

ca C:\Program Files\OpenVPN\config\office-ca.crt

ბრჭყალებში ჩასვით ყოველი გზა, რომელსაც სივრცე აქვს

მნიშვნელობის გარშემო ერთი წყვილი ორმაგი ბრჭყალები მთელი შეკეთებაა და Windows-ზე დახრილი ხაზები მისაღებია, ამიტომ გაქცევა არასოდეს ხდება პრობლემის ნაწილი. გაასწორეთ გზის ყველა ოფცია იმავე გავლაში, რადგან პარსერი პირველ წარუმატებლობაზე ჩერდება და შემდეგი უბრალოდ მომდევნო გადატვირთვას ელოდება. ნაკრები ჩვეულებრივ მოიცავს ca, cert, key, tls-auth და auth-user-pass.

ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"

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

Select-String -Path .\office.ovpn -Pattern 'Program Files'

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

აღადგინეთ რეჟიმის დეკლარაცია სერტიფიკატებამდე

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

client
dev tun
proto udp
remote vpn.example.net 1194

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

კოდირების დაზიანება ოფციის სახელს ჰგავს

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

Format-Hex .\office.ovpn | Select-Object -First 1

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

რომელი შემოწმება პირველი და რატომ

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

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

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