OpenVPN Connect در برابر OpenVPN GUI: ویندوز پروفایلها را کجا نگه میدارد
دو کلاینت ویندوز، دو مدل پروفایل: GUI فایلهای .ovpn را از یک پوشه فهرست میکند، Connect یک انبار واردات نگه میدارد. سپس درست حذف یا وارد کنید.
در ویندوز، پرسش "پروفایل OpenVPN من کجاست" دو پاسخ متفاوت دارد و انتخاب پاسخ نادرست یک بعدازظهر را میبلعد. OpenVPN GUI اجتماعی یک پوشه را فهرست پروفایلهای خود میداند: هر فایل .ovpn در پوشهٔ پیکربندیشده در منوی سینی سیستم ظاهر میشود و فایلی که از آن پوشه حذف شود ناپدید میگردد. OpenVPN Connect از یک انبار واردات کار میکند، بنابراین پروفایلی را که از دیسک حذف کردهاید نگه میدارد و فایلی را که کپی کردهاید نادیده میگیرد. مقایسهٔ زیر همانی است که برای تصمیمگیری دربارهٔ اینکه پیش از دست زدن به هر چیز کدام پوشه را باز کنم به کار میبرم.
فهرست پوشه در برابر انبار واردات
GUI اجتماعی هنگام راهاندازی فایلها را میشمارد: یک پوشهٔ پیکربندی را که هنگام نصب انتخاب شده میخواند و فایل .ovpn که آنجا باشد یک پروفایل است. کلاینت را ببندید، فایلی را در آن پوشه کپی کنید، دوباره راهاندازی کنید و ورودی در منو است.
Connect در عوض فهرست خود را از سوابقی میسازد که هنگام واردات نوشته است، بنابراین فایل کپیشده نامرئی است در حالی که پروفایل واردشده از حذف دانلود اصلی جان سالم به در میبرد. همین یک تفاوت بیشتر گزارشهایی را توضیح میدهد که میگویند دو کلاینت پروفایلها را جای متفاوتی نگه میدارند، چون واقعاً همینطور است.
GUI اجتماعی: کدام پوشه واقعاً استفاده میشود
دو پوشه مهماند. نصب برای یک کاربر %USERPROFILE%\OpenVPN\config را میخواند؛ نصب برای همهٔ کاربران C:\Program Files\OpenVPN\config یا مسیر x86 را وقتی کلاینت 32-bit است میخواند. اگر پروفایلی فقط برای یک حساب ویندوز ظاهر شود، در پوشهٔ یک کاربر است و حساب دیگر هرگز آن را نخواهد دید.
مسیر را از نصبکننده استنتاج نکنید. GUI آرگومان --config_dir را میپذیرد و پوشهای را که با آن راهاندازی شده به یاد میآورد، بنابراین یک میانبر میتواند کاملاً جای دیگری اشاره کند. پیش از ساختن هر فایل، هدف میانبر و فیلد Start in یا تنظیمات GUI را بررسی کنید.
حذف یعنی حذف فایل. نخست GUI را ببندید تا ورودی را در حافظه نگه ندارد، فایل .ovpn را همراه هر فایل گواهی یا کلیدی که کنارش نگه داشته میشود پاک کنید و سپس کلاینت را دوباره راهاندازی کنید.
پوشهٔ همهٔ کاربران به حذف با دسترسی بالا نیاز دارد. حذفی که آنجا بیصدا هیچ کاری نمیکند UAC است، نه باگ کلاینت.
Connect: انبار واردات و تلهٔ دوگانهٔ AppData
نسخههای کنونی 2.x و 3.x پروفایلها را زیر %APPDATA%\OpenVPN Connect\profiles نگه میدارند. نسخههای حدود 2.5 به جای آن از %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile استفاده میکردند و به همین دلیل پاسخهای قدیمیتر و جدیدتر انجمن متناقض به نظر میرسند. ماشینی که در جا ارتقا یافته هنوز میتواند هر دو را داشته باشد.
مسیرها هنگام بازگویی خراب میشوند. %AppData% از پیش به AppData\Roaming تبدیل میشود، بنابراین نوشتن %AppData%\Roaming\OpenVPN Connect\profiles به AppData\Roaming\Roaming گسترش مییابد و به هیچجا اشاره نمیکند. از متغیر یا مسیر تحتاللفظی استفاده کنید، هرگز ترکیبی از این دو.
از طریق کلاینت حذف کنید: Profiles را باز کنید، از نماد مداد استفاده کنید، Delete را انتخاب کنید. این کار سابقه و نسخهٔ ذخیرهشده را با هم برمیدارد. حذف پوشه در حالی که Connect در حال اجراست میتواند سابقهای باقی بگذارد که چیزی باز نمیکند، و این همان شکایت "profile still shows up" در شکل دیگرش است.
نسخهٔ واردشده همانی است که کلاینت اجرا میکند. ویرایش فایل .ovpn که در Downloads مانده چیزی را تغییر نمیدهد، چون Connect نسخهٔ ذخیرهشدهٔ خود را میخواند؛ برای تغییر یک remote یا یک cipher، پروفایل را داخل کلاینت ویرایش کنید، یا فایل را ویرایش و دوباره وارد کنید .
چرا پروفایل حذفشده برمیگردد
دو نصب از یک خانوادهٔ کلاینت دلیل معمول است. GUI یک کاربر و GUI همهٔ کاربران پوشههای پیکربندی جداگانه دارند، بنابراین حذف از یکی دیگری را دستنخورده میگذارد و سینی هنوز نام را فهرست میکند. Programs and Features جایی است که تأیید میکنید آیا هر دو نصب شدهاند.
دلیل دوم پروفایلی است که هرگز در پوشهای که بررسی کردید نبوده. باز کردن یک بار .ovpn از یک اشتراک شبکه یا پوشهٔ Downloads میتواند آن را به پوشهٔ پیکربندی یک کاربر کپی کند و پروفایلهای واردشدهٔ Connect فقط در AppData وجود دارند. پیش از ویرایش هر چیز، نام فایل را هم زیر %USERPROFILE% و هم زیر %APPDATA% جستوجو کنید. پوشهٔ پروفایل معمولاً کلید خصوصی را کنار .ovpn نگه میدارد، پس هرگز پوشه را در تیکت یا گفتوگو نچسبانید تا ثابت کنید کدام پروفایل را حذف کردهاید - به جای آن نام فایل و مهر زمانی را ذکر کنید.
نسخههای قدیمیتر GUI ترجیحات کلاینت را نیز در رجیستری نگه میدارند. اگر سینی پس از رفتن فایل هنوز نامی را فهرست میکند و فقط یک نصب وجود دارد، یک بار کلاینت را دوباره راهاندازی کنید و پیش از آنکه به دست زدن به کلیدهای رجیستری فکر کنید، پوشهٔ پیکربندی میانبر را دوباره بررسی کنید.
دو تونل همزمان: نخست آداپترها، سپس مسیر
GUI میتواند چندین اتصال را نگه دارد، یکی برای هر آداپتر مجازی؛ آداپترها را از ورودی منوی Start که TAP-Windows6 را نصب میکند اضافه کنید، سپس تعداد را در Network Connections تأیید کنید، چون دو تونل همزمان به دو آداپتر نیاز دارند و هر دو باید نشانی خود را بهطور خودکار بگیرند. مسیریابی محدودیت سختتری است. دو پروفایلی که هرکدام همهٔ ترافیک را تغییر مسیر میدهند بر سر مسیر پیشفرض رقابت میکنند و تنها یکی میتواند مالک آن باشد، پس به جای دو تونل کارآمد دچار خرابیهای متناوب میشوید. یک تونل کامل را نگه دارید و به دومی یک پروفایل split-tunnel بدهید که فقط زیرشبکهٔ خودش را هل میدهد.
محدودههای خصوصی همپوشان با افزودن آداپتر درست نمیشوند. اگر هر دو سرور 10.8.0.0/24 را توزیع کنند، تونل دوم در سطح نشانی برخورد میکند و هیچ مقدار پیکربندی کلاینت آنها را جدا نخواهد کرد.
نام آداپترها به شما میگویند به چه چیزی نگاه میکنید. Get-NetAdapter در PowerShell آداپترهای TAP-Windows و آداپتر Wintun را با نام فهرست میکند، که وقتی تونلی روی آداپتر اشتباه بالا آمده از شمردن نمادها در Network Connections سریعتر است.
راهاندازی یک پروفایل نامدار از یک اسکریپت
GUI نام پروفایل را نسبت به پوشهٔ پیکربندی خود میگیرد، بنابراین یک راهانداز چنین است: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn". یک مسیر مطلق، یا فرایندی که در پوشهٔ کاری دیگری راهاندازی شده، بیصدا شکست میخورد و به همین دلیل میانبری که با دوبار کلیک کار میکند زیر Task Scheduler خراب میشود.
پوشهٔ کاری را تعیین کنید نه اینکه امیدوار باشید. در یک راهانداز AutoHotkey این SetWorkingDir است، C:\Program Files\OpenVPN\config؛ در Task Scheduler فیلد Start in عمل است. ارسال --config_dir با همان مسیر راهانداز را از هر دو مستقل میکند.
پیش از پایان، پروفایل را صادر کنید، آداپتر، زیرشبکه و زیرشبکهای که مسیریابی میکند را یادداشت کنید و گواهیهای هر مشتری را در زیرپوشهٔ خودش نگه دارید. سپس تأیید کنید که پوشه به کلاینتی تعلق دارد که واقعاً اجرا میکنید و وقتی آن کلاینت انبار واردات دارد از طریق کلاینت حذف کنید. رعایت همین ترتیب جلوی بازگشت دوبارهٔ همان پروفایل پس از راهاندازی مجدد بعدی را میگیرد.