آیا شما هم با این خطا روبرو می شوید و به دنبال راهی برای رفع ارور sudo: unable to resolve host می گردید؟
ارور sudo: unable to resolve host یکی از مشکلات رایج است که کاربران لینوکس، به خصوص کسانی که با سرور مجازی کار میکنند، ممکن است با آن مواجه شوند.
این ارور معمولاً هنگامی رخ میدهد که سیستم قادر به تطبیق نام میزبان (hostname) با آدرس IP مناسب در فایلهای پیکربندی سیستم نیست. مشکل مذکور ممکن است به دلایل مختلفی از جمله تنظیمات نادرست فایلهای `hosts` و `hostname`، یا مسائل مربوط به DNS به وجود آید.
برطرف کردن این ارور نه تنها موجب افزایش بهرهوری سیستم شما میشود، بلکه از وقوع مشکلات بیشتر در اجرای دستورات sudo جلوگیری میکند. در این مقاله از وبلاگ یونیکس وب، قصد داریم تا با ارائه یک راهنمای کامل و گام به گام، شما را در رفع خطای sudo: unable to resolve host یاری دهیم.
از بررسی فایلهای پیکربندی تا اصلاح تنظیمات و انجام تستهای نهایی، تمامی مراحل به صورت دقیق و ساده توضیح داده شدهاند تا شما بتوانید به راحتی این مشکل را حل کنید و سرور لینوکسی خود را به حالت بهینه بازگردانید؛ پس با ما تا انتهای این مقاله ی کاربردی همراه باشید.
رفع ارور sudo: unable to resolve host
علت اصلی خطا در واقع به تغییر نام میزبان مربوط می شود. اجازه دهید به شما نشان دهم چگونه این خطای unable to resolve hostname را برطرف کنید.
ابتدا نام هاست سیستم خود را با دستور hostname بررسی کنید. در مورد من، نام میزبان test-server است.
$hostname test-server
به طور دقیق تر، نام میزبان از فایل /etc/hostname گرفته شده است.
cat /etc/hostname test-server
همان نام میزبان باید در فایل /etc/hosts نیز ذکر شود. اما در مورد من (و حدس میزنم در مورد شما نیز) این نام میزبان در فایل /etc/hosts موجود نبود، همانطور که در خروجی زیر مشاهده میکنید:
۱۲۷.۰.۰.۱ localhost The following lines are desirable for IPv6 capable hosts ::۱ ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
از آنجایی که در اینجا وجود ندارد، سیستم قادر به تشخیص نام میزبان نیست و بنابراین ارور sudo: unable to resolve host را نمایش می دهد.
برای رفع این مشکل، این فایل را ویرایش کنید و یک خط جدید اضافه کنید و آدرس Loopback را با نام میزبان تنظیم کنید. می توانید از Vim یا nano برای ویرایش فایل ها در خط فرمان استفاده کنید.
۱۲۷.۰.۰.۱ <hostname>
بنابراین اکنون، فایل /etc/hosts من به شکل زیر است:
۱۲۷.۰.۰.۱ localhost ۱۲۷.۰.۰.۱ test-server The following lines are desirable for IPv6 capable hosts ::۱ ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
بلافاصله پس از افزودن خط ذکر شده در بالا، خطای sudo: unable to remove host ناپدید شد و من حتی نیازی به راه اندازی مجدد سرور اوبونتو نداشتم.
نتیجه گیری
رفع ارور sudo: unable to resolve host در سرورهای لینوکسی ممکن است در ابتدا پیچیده به نظر برسد، اما با دنبال کردن مراحل سادهای که در این مقاله توضیح داده شد، میتوانید به راحتی این مشکل را حل کنید. با اطمینان از تطبیق نام میزبان در فایلهای /etc/hostname و /etc/hosts، سیستم شما قادر خواهد بود نام میزبان را به درستی تشخیص دهد و از بروز ارور جلوگیری کند.
این کد ها نه تنها به رفع خطای sudo: unable to resolve host کمک میکند، بلکه به بهبود عملکرد کلی سرور شما نیز منجر میشود. اگر این مراحل را به درستی انجام دهید، نیازی به راهاندازی مجدد سرور نخواهید داشت و میتوانید بلافاصله به کار خود ادامه دهید. همچنین، توجه داشته باشید که در صورت تغییر نام میزبان در آینده، باید مجدداً این فایلها را بهروز کنید تا از بروز مشکلات مشابه جلوگیری کنید.
یکی دیگر از مجموعه آموزش های سیستم عامل لینوکس به اتمام رسید. امیدواریم این راهنما به شما در رفع ارور sudo: unable to resolve host کمک کرده باشد و بتوانید بدون هیچ مشکلی از سرور لینوکسی خود استفاده کنید. اگر سوال یا مشکلی داشتید، حتماً در بخش نظرات با ما در میان بگذارید؛ همچنین ممکن است مقاله های دسته بندی مجموعه آموزش های ویندوز نیز برای شما کاربردی و مفید باشد.