خطای OpenVPN: گزینه ناشناخته tls-remote یا keysize
کلاینت جدیدتر OpenVPN خطوط قدیمی پروفایل مانند tls-remote و keysize را رد میکند. نام گزینه را بخوانید، بررسی را جایگزین کنید و تأیید هویت را روشن نگه دارید.
معمولاً با پروفایلی شروع میشود که سالها متصل بوده، روی کلاینت تازهتری باز میشود و پیش از آنکه تونل حتی آغاز شود شکست میخورد. ترمینال چیزی مانند Options error: Unrecognized option ... in client.ovpn:130: tls-remote چاپ میکند، با یک نسخه در پرانتز در انتها. آن را شکایت تجزیهکننده بخوانید: فایل دستوری دارد که این کلاینت دیگر آن را نمیشناسد.
همین پیام واحد توضیح میدهد که چرا تولید دوبارهٔ کلیدها، دوباره نوشتن گذرواژه یا بررسی سرور هیچ کاری نمیکند. شکست در حالی رخ میدهد که کلاینت پیکربندی خودش را میخواند، پیش از آنکه سوکتی باز کند. کار مفید این است که دستور ردشده را شناسایی کنید و آن را با معادل کنونی جایگزین کنید.
پیش از تغییر هر چیزی، خط خطادار را بخوانید
کلاینت را خودتان اجرا کنید نه از یک نماد در سینی سیستم، تا پیام دیده شود و مسیر پروفایل مبهم نباشد. فایل را در همان خطی که گزارش شده باز کنید و به توکنی که کلاینت نام برده نگاه کنید. شمارهٔ خط، خطِ پروفایل است نه نسخه، و همین مردم را گیج میکند چون همان شماره در پرانتز بهعنوان شناسهٔ انتشار میآید.
مولدهای پروفایل قدیمی یک دستور خراب تولید نمیکردند، بلکه چند دستور تولید میکردند. نخستین خطا را برطرف کنید، کلاینت را دوباره اجرا کنید و انتظار داشته باشید خطای بعدی پدیدار شود. این توالی طبیعی است و نشانهٔ آن نیست که ویرایشها اوضاع را بدتر کردهاند.
بر سر keysize و tls-remote چه آمد
keysize در دورهای که پروفایل صریحاً رمزنگار را انتخاب میکرد، طول کلید رمزنگار را درخواست میکرد. OpenVPN 2.4 آن را منسوخ اعلام کرد و کلاینتهای بعدی آن را از جدول گزینهها حذف کردند، پس تجزیهکننده اکنون خط را بهجای نادیده گرفتن رد میکند. مذاکرهٔ مدرن طول کلید را از رمزنگار انتخابشده میگیرد، از این رو چیزی برای دستور نمانده تا کنترل کند.
tls-remote در 2.4 حذف شد. گواهی سرور را با نامی مورد انتظار مقایسه میکرد و جانشین آن verify-x509-name است که در نحوهٔ تطبیق نام سختگیرتر است. دستور قدیمی رفته است، پس پروفایلی که آن را دارد هرگز روی کلاینت کنونی تجزیه نمیشود.
هر بار یک دستور را برطرف کنید. اگر پروفایل همچنین رمزنگاری را مشخص کند که کلاینت ارائه نمیدهد، آن بعداً خطای دیگری تولید میکند و آمیختن هر دو تغییر در یک ویرایش ناممکن میکند که بگویید کدام دستدادن را شکسته است. پس از هر ویرایش دوباره وصل شوید و متن خطا را نگه دارید. این عادت همچنین یک پسزمینهٔ کارآمد باقی میگذارد اگر ویرایشی اوضاع را بدتر کند.
بررسی هویت سرور را بازنویسی کنید
جانشین نام مورد انتظار و یک حالت مقایسه میگیرد. verify-x509-name vpn.example.edu name میخواهد که موضوع گواهی دقیقاً برابر آن مقدار باشد. حالتهای دیگر پیشوند یا رشتهٔ موضوع کامل را تطبیق میدهند و انتخاب حالت اشتباه یک پروفایل کارآمد را به شکست تأیید تمیز تبدیل میکند.
اگر آرگومان قدیمی tls-remote نام مشترک کامل سرور بود، مقایسهٔ دقیق name معمولاً درست است. اگر مقدار جزئی بود، بهجای کوتاه کردن نام مورد انتظار از حالت پیشوند استفاده کنید، چون تطبیق دقیق کوتاهتر تأیید نمیشود. وقتی مقدار اصلی نوشته نشده است، از کسی که سرور را اداره میکند موضوعی را که منتشر میکند بپرسید.
برای ناپدید شدن خطا بررسی را خاموش نکنید. حذف تأیید هویت سرور یک مشکل قابلرفع پروفایل را به تونلی تأییدنشده تبدیل میکند، که دقیقاً همان خطری است که دستور برای جلوگیری از آن وجود داشت.
پروفایل اصلاحشده، ویرایش محلی یا کلاینت قدیمیتر
وقتی سرور مال کس دیگری است، پاکترین راه یک پروفایل کنونی از اوست. نسخهٔ شما از مولد قدیمیتری آمده و خروجی او از قبل از دستورهای کنونی استفاده میکند. یک بار دانلود کل دستهٔ خطاها را حذف میکند و ویرایشهای آینده را در یک جا نگه میدارد.
وقتی هر دو سر شماست، یک نسخه را ویرایش کنید و اصل را نگه دارید. یک دستور را تغییر دهید، ذخیره کنید، وصل شوید و نسخهٔ کلاینتی را که آزمودهاید یادداشت کنید. کنار هر ویرایش یادداشت کوتاهی نگه دارید، چون پروفایلی که در چند نشست ویرایش شده از حافظه سخت قابل بازبینی است. اجرای خط فرمان روی فایل ویرایششده آن حلقه را سریع میکند چون خطا مستقیم به ترمینال میرود.
سنجاق کردن یا بازگشت به کلاینت پیش از 2.4 هم پیام را ناپدید میکند و با دستگاهی که هرگز بهروزرسانی نمیشود شاید تنها راهحل موقت عملی باشد. آن را موقت بدانید: کلاینت قدیمی روی رومیزی کنونی معمولاً یعنی کتابخانهٔ قدیمی و پیکربندی پشتیبانینشده، که مشکلی به تعویقافتاده است نه حلشده.
پس از بالا آمدن تونل، کل پروفایل را یک بار دیگر بخوانید. پروفایلهایی که یک دستور حذفشده داشتند غالباً دستور دیگری هم دارند و دومی فقط پس از رفتن اولی ظاهر میشود.