پروفایل OpenVPN ویندوز روی اوبونتو شکست میخورد: سه لایه
خطی که فقط برای ویندوز فرستاده میشود تنها یک هشدار است. همین پروفایل از ترمینال ابتدا به دلیل مجوزها و سپس به دلیل یک راهیار تفکیککننده نام که وجود ندارد شکست میخورد.
همین پروفایل را از ترمینال اجرا کنید و پیامی که بیشتر مردم کپی میکنند یک هشدار است، نه دلیل توقف کارخواه. سه لایهٔ مستقل اینجا شکست میخورند: یک دستور فرستادهشده که ساخت لینوکس آن را پیاده نمیکند، مجوزهای لازم برای ساختن دستگاه tun، و راهیار تفکیککننده نام که اتصال را به DNS کارآمد تبدیل میکند. به ترتیب از آنها عبور کنید، چون هر لایه میتواند لایهٔ بعدی را پنهان کند.
بارگیری را همانطور که رسیده نگه دارید و یک نسخه را ویرایش کنید، تا بارگیری تازه تغییرات شما را بیصدا برنگرداند.
پیش از سرزنش، هشدار را بخوانید
block-outside-dns با استفاده از سکوی پالایش ویندوز، DNS را در ویندوز قفل میکند و کارخواه لینوکس چیزی برای نگاشت آن ندارد. وقتی کارساز آن را میفرستد، کارخواه برای آن ورودی فرستادهشده یک خط گزینهٔ ناشناخته چاپ میکند و ادامه میدهد، چون گزینهٔ فرستادهشده کشنده شمرده نمیشود. اما همان خط در پروندهٔ خودتان موضوع دیگری است: آنجا تجزیهگر متوقف میشود. پیش از دست زدن به هر چیز، تعیین کنید کدامیک از این دو را دارید، چون فقط یکی از آنها اجرا را پایان میدهد.
برای حذف شلوغی، آن را پیش از تجزیه پالایش کنید: یک ورودی pull-filter ignore برای آن نام، یا --ignore-unknown-option وقتی خط در پروندهٔ محلی است. هر دو خطی را که پیشتر خواندهاید خاموش میکنند؛ هیچکدام خرابیای را که تشخیص ندادهاید ترمیم نمیکند.
مجوزها پیش از هر چیز دیگری شکست میخورند
دستگاه tun و مسیرهایی که همراه آن میآیند اشیای دارای مجوزند و یک حساب عادی نمیتواند آنها را بسازد. گزینهٔ --user این تفکیک را توضیح میدهد: دیمن فقط پس از انجام کار دارای مجوز از مجوزهایش دست میکشد. آن را با root یا از طریق واحدی که آن را اینگونه آغاز میکند اجرا کنید، سپس پیش از نگاه کردن به گواهیها به دنبال خطای مجوز بگردید. سست کردن مجوزهای پرونده روی پروفایل، حقوقی را که فرایند ندارد به آن نمیدهد.
خطای TLS یعنی کارخواه از این لایه گذشته است. شکایت از دستگاه یا مسیر یعنی هرگز به لایهٔ بالاتر نرسیده است.
کاری که رابط گرافیکی میکند و ترمینال نمیکند
اتصال موفق در حالی که همهٔ جستوجوها هنوز شکست میخورند همان لایهٔ سوم است. NetworkManager کار تفکیککنندهٔ نام خود را انجام میدهد، و به همین دلیل درونریزی از میزکار میتواند DNS بدهد حتی وقتی up script پروفایل هرگز با موفقیت اجرا نشده است. فرمان openvpn --config هر چیزی را که --up نام ببرد اجرا میکند، و اگر آن راهیار نباشد، رابط پدیدار میشود در حالی که جستوجوها همچنان به کارسازهای پیشین میروند. پیش از نصب هر چیز، اسکریپتهای دو مسیر را مقایسه کنید.
از راهیار بستهبندیشدهٔ توزیع خود استفاده کنید؛ اسکریپتی که از یک نوشتهٔ وبلاگی کپی شده معمولاً تفکیککنندهٔ دیگری را هدف میگیرد. همگراییای که برای systemd-resolved عرضه میشود همان اسکریپت عمومی به سبک vpnc نیست، و هرکدام آرگومانها و متغیرهای خود را از کارخواه انتظار دارند. up scriptهای تعریفشده توسط کاربر نیز پیش از آنکه کارخواه اصلاً اجرایشان کند به script-security 2 نیاز دارند.
در اجرای بعدی لایهها را جدا کنید
یک بار با --verb 4 اجرا کنید و گزارش را به ترتیبی که رخ داده بخوانید: ساختن دستگاه، مسیرها، دستدادن TLS، سپس خروجی up script. نخستین شکست در این توالی همانی است که ارزش ترمیم دارد؛ هر چیز پس از آن معمولاً پیامد است. تونلی که برقرار میشود در حالی که تفکیککنندهٔ نام برقرار نیست شما را در لایهٔ سوم قرار میدهد، جایی که گواهی بیاهمیت است. هنگام مقایسه، پروفایل بارگیریشده را دستنخورده بگذارید.
وقتی هر تغییر اپراتور یک خط ردشدهٔ دیگر تولید میکند، پرونده به سکوی دیگری نشانه رفته است. به جای ساختن فهرست پالایش دائمی، یک خروجی لینوکس بخواهید.
یادداشت کنید کدام لایه شکست خورد و چه چیزی آن را تغییر داد، وگرنه نفر بعدی هم که همین پرونده به او داده شود در همان هشدار متوقف خواهد شد.