محتوای آموزشی وبلاگ نتآرام
مرورگر لپتاپ شما دامنهای را باز میکند اما برنامه داخل سرور پیام یافت نشدن نام میدهد. DNS سرور، مانند دفترچه تلفنی است که برنامه نام را به کمک آن به نشانی تبدیل میکند. جواب یک دستگاه الزاماً همان جواب دستگاه دیگر نیست.
متن ترمینال در تصویر یک مثال فرضی است و نتیجه واقعی آزمایش دامنه شما نیست.
مشکل را با یک نام عمومی شروع کنید
در همان محیطی که برنامه اجرا میشود این دستور را با نام واقعی اجرا کنید:
کد / دستورgetent ahosts example.com
اگر نتیجه آدرس نمایش دهد، مسیر معمول تبدیل نام در سیستم برای آن لحظه پاسخ داده است. اگر برنامه در کانتینر است، این آزمایش را در همان کانتینر نیز انجام دهید؛ فایل hosts و resolver آن ممکن است با میزبان فرق کند. یک پاسخ موفق هم سلامت اتصال به پورت مقصد یا TLS را ثابت نمیکند.
resolver فعال را ببینید
کد / دستورcat /etc/resolv.conf
ls -l /etc/resolv.conf
اگر فایل به یک سرویس محلی اشاره میکند یا پیوند نمادین است، ممکن است تنظیم واقعی توسط systemd-resolved، NetworkManager یا ابزار دیگر مدیریت شود. تغییر دستی فایل تولیدشده ممکن است پس از ریاستارت از بین برود. در سیستمهایی که systemd-resolved دارند میتوانید ببینید چه تنظیمی فعال است:
کد / دستورresolvectl status
resolvectl query example.com
اگر این دستور نصب نیست یا سرویس مربوط اجرا نمیشود، آن را به معنی خراب بودن کل DNS ندانید؛ ابزار مدیر شبکه در توزیع شما ممکن است متفاوت باشد. برای یک دامنه داخلی، وجود DNS خصوصی سازمان و مسیر VPN را نیز بررسی کنید. تعویض آن با DNS عمومی ممکن است نامهای داخلی را از دسترس خارج کند.
پاسخها را بهدرستی مقایسه کنید
پاسخ یک DNS عمومی، نتیجه resolver سیستم، فایل hosts و پاسخ DNS معتبر دامنه لزوماً یکسان نیستند. تفاوت میتواند ناشی از کش، رکورد خصوصی، تنظیم شبکه یا خطای موقت باشد. ابتدا زمان و نوع پیام را ثبت کنید. قبل از پاک کردن کش، تنظیمات و پاسخ فعلی را یادداشت کنید تا سرنخ از بین نرود.
اگر پشتیبانی پیشنهاد تغییر resolver میدهد، تنظیم را از همان ابزار مدیریتی سیستم و با برنامه بازگشت انجام دهید. پس از تغییر، نام عمومی و نامهای داخلی ضروری را هر دو امتحان کنید. به فایل شبکه یا DNS نیمسرور دامنه دست نزنید مگر اینکه خود آن لایه عامل مشکل باشد.
اگر فقط یک نام پاسخ نمیدهد
یک نام عمومی دیگر را هم با
getent ahosts امتحان کنید. اگر نام دوم پاسخ دارد اما نام سرویس شما نه، ابتدا املای نام، نوع پاسخ و DNS مسئول همان دامنه را با مدیر دامنه تطبیق دهید؛ تغییر تنظیم کل سرور ممکن است مسئله را حل نکند. اگر هر دو نام شکست میخورند، نشانی resolver را از resolvectl status یا تنظیم شبکه مدیر سرور پیدا کنید و با روش همان سیستم اصلاح کنید. بعد هم نام عمومی و هم نام داخلی موردنیاز برنامه را دوباره آزمایش کنید.نتیجه کاربردی را بررسی کنید
بعد از اصلاح، getent را دوباره اجرا کنید و سپس درخواست واقعی برنامه را با روش امن امتحان کنید. اگر تبدیل نام درست است ولی برنامه همچنان خطا دارد، مرحله بعد اتصال به پورت، TLS و پاسخ سرویس است؛ تعویض پیاپی DNS علت سایر خطاها را رفع نمیکند.
منبع: مستندات رسمی.
برچسبها:
اشتراکگذاری:
لینکدینتلگرامایکس
مقاله قبلی
تفاوت RAID 1، RAID 5 و RAID 10 برای سرور چیست؟
۱۱ آبان ۱۴۰۵مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
