سؤال رسالة الخطأ "sudo: غير قادر على حل المضيف "


عندما أركض sudo المحطة عالقة لبضع ثوان ثم إخراج رسالة خطأ. جهاز طرفي يبدو كالتالي:

ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)

ما الذي يمكنني فعله لحلها؟


643
2017-08-31 19:09


الأصل


يرجى نشر محتويات /etc/hostname و /etc/hosts. - arrange
أوصي بعدم إغلاق هذا السؤال باسم مترجم جدا. هناك العديد من المستخدمين الذين قد يعتقدون خطأ أنهم قد وضعوا اسما واحدا في حياتهم hostsملف ولكن اسم مختلف بدلا من ذلك ، خصوصا لأن العديد من الشبكات ، يتم تسمية أجهزة الكمبيوتر بالمثل. سيظهر هذا السؤال (والإجابة) عندما يبحث أحد الأشخاص في هذه المشكلة ، وستحثه الإجابة على التحقق من مثل هذه التناقضات ، على الرغم من أن الخطأ الإملائي الدقيق سيكون مختلفًا. - Eliah Kagan
تأكد الخاص بك hostname مع نفسه hosts. مثلا اسم المضيف هو أوبونتو-الكمبيوتر والمضيفين هو أوبونتو-الكمبيوتر يجب أن يكون هو نفسه. - Muhammad Sholihin
جريت في هذا اليوم. كانت المشكلة أن ما كان لي في اسم المضيف لم يكن في / etc / hosts. للاستمتاع: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. أحتاج إلى إضافة "mybox" بعد اسم النطاق الخاص بي في / etc / hosts => 192.168.1.2 mybox.example.com mybox - Jim
لا أستطيع نشر إجابة لأن هذا السؤال محمي وليس لدي سمعة كافية هنا. في حالتي ، قمت بحل المشكلة عن طريق إعادة تشغيل مدير الشبكة: sudo /etc/init.d/network-manager restart. ومع ذلك ، أنا أتساءل لماذا في المقام الأول sudo تضيع الوقت في انتظار الاشياء المتعلقة بالشبكة. لا ينبغي sudo العمل دون مشاكل عندما تكون الشبكة غير متوفرة؟ - bli


الأجوبة:


شيئين للتحقق (على افتراض أن الجهاز الخاص بك يسمى my-machine، يمكنك تغيير هذا حسب الاقتضاء):

  1. ان /etc/hostname ملف يحتوي فقط على اسم الجهاز.

  2. أن /etc/hosts لديه دخول ل localhost. يجب أن يكون لديك شيء مثل:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 جهازي
    

إذا لم يكن أيًا من هذين الملفين صحيحًا (نظرًا لأنك لا تستطيع sudo) ، فقد تضطر إلى إعادة تشغيل الجهاز في وضع الاسترداد وإجراء التعديلات ، ثم إعادة التشغيل إلى بيئتك المعتادة.


877
2017-09-01 03:26



لن يتغير اسم المضيف حتى تتم إعادة التشغيل. إذا كنت ترغب في تغييرها دون إعادة تشغيل الجهاز ، اتبع الخطوات المذكورة أعلاه وبعد ذلك التشغيل: - "sudo hostname my-machine" لمعرفة ما إذا كان هذا قد نجح في تشغيل "sudo hostname" سيظهر اسم مضيف جهازك. هذه الطريقة ربما تستخدم كطريقة مؤقتة لتغيير اسم المضيف أيضا. بعد إعادة التشغيل ، يتم استخدام القيمة من ملف / etc / hostname. - Yashvit
ملاحظة: نظرًا لأنك لا تستطيع sudo لتبدأ ، فمن الصعب تعديل هذه الملفات. كان الحل الذي أقوم به هو أنني تمكنت بطريقة أو بأخرى من sudo visudo والتغيير #%admin ALL=(ALL) ALL إلى %admin ALL=NOPASSWD: ALL ، ثم إعادة التشغيل ، و sudo سو - ، وتحرير تلك الملفات ، وتعيين / اسم المضيف الصحيح ، وإعادة التشغيل مرة أخرى ، وعملت كل شيء. - Ian M
أستخدم نظام Linux الفرعي في نظام Windows ، وقد واجهت هذه المشكلة. بعد اتباع إجابتك ، تم حلها. - amarVashishth
قد تحتاج أيضا إلى إضافة ::1 localhost إلى /etc/hosts (هذا هو الإصدار IPv6 من 127.0.0.1 ، ويعرف أيضًا باسم الاسترجاع) - Woodrow Barlow
لماذا لديك مثال على ذلك 127.0.0.1 localhost لكن 127.0.1.1 my-machine؟ - Adam


تصحيح  /etc/hosts وإلحاق اسم المضيف الجديد الخاص بك إلى خط 127.0.0.1 (أو إنشاء سطر جديد إذا كنت تفضل ذلك).

المنجم يشبه:

127.0.0.1       localhost localhost.localdomain penguin

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

يحل محل penguin في المثال أعلاه حسب اسم المضيف الجديد الخاص بك كما هو مذكور في /etc/hostname ملف.


171
2018-04-07 13:39



كيف يمكنه تعديل الملف / etc / hosts إذا كان لا يمكنه sudo؟ مالم ينشئ حساب rood بكلمة مرور (فكرة سيئة) - Dennis
لا يزال بإمكانك تنفيذ sudo حتى لو تم عرض هذه الرسالة. IIRC لا يزال لديك لإدخال كلمة المرور الخاصة بك في كل دعوة بالرغم من ذلك. إذا لم ينجح ذلك ، فيمكنك إعادة التشغيل في وحدة التحكم بالاسترداد وتطبيق التغييرات. لا يتم تشجيع حساب الجذر مع كلمة المرور. - Lekensteyn


أضف اسم المضيف الخاص بك إلى /etc/hosts مثل ذلك:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts

43
2017-09-15 16:03



كانت هذه إجابة رائعة لم تحصل على رصيد كافٍ - Edziu Eames
هذا لطيف! وافق على أنه لا يحصل على ما يكفي من الحب. :-) - Peter K.
إنه ذكي ، لكنني لا أعتقد أنه يميل إلى أن يكون فكرة جيدة لأتمتة شيء من هذا القبيل. - mwfearnley


ملاحظة ، هذه إجابة هذا السؤال التي تم دمجها مع هذا.

اسمك المضيف (dave00-G31M-ES2L) غير ممثلة في /etc/hosts. إضافة L لهذا الخط:

127.0.1.1   dave00-G31M-ES2

لذلك يصبح:

127.0.1.1   dave00-G31M-ES2L

من أجل تحقيق ذلك ، افتح وحدة التحكم (اضغط على السيطرة+البديل+تي) واكتب:

sudo gedit /etc/hosts

أضف الرسالة L كما ذكر ، حفظ والخروج.


30
2017-08-18 11:02



تذكر! استعمال sudoedit (أو sudo -e). لتحديد محرر المفضل ، استخدم EDITOR متغير البيئة (على سبيل المثال export EDITOR=vim) لأنه ينشئ نسخة دون اتصال للتعديل ثم يتم الكتابة فوقها بعد التحرير. - Jan
وهناك واحد آخر هنا يقترح sudo عندما لم يعد هناك sudo. sudo لا يعمل يا سيدي. sudo: unable to resolve host ... - Green
Green: لا sudo؟ رسالة الخطأ التي ذكرتها تأتي من sudo أمر. ربما كنت تقصد شيئا مختلفا؟ - Thor
@أخضر sudo يعمل على ما يرام. لا يمكن تخزين أي دولة (مثلما قال Lekensteyn في مكان آخر يجب عليك إدخال كلمة المرور الخاصة بك في كل مرة). - Wlerin
إذا كانت لديك هذه المشكلة في W10's Bash وتعرفت على هذا السؤال من google ، فهذا هو الجواب الذي عمل لي. لقد غيرت 127.0.0.1 لتبدو مثل "127.0.0.1 localhost DESKTOP-SLQK4CV" (من خلال القيام بـ "sudo vim / etc / hosts" (نصيحة سريعة للمبتدئين vim: اضغط i قبل الكتابة للتحويل إلى وضع الإدراج ، اضغط على esc للخروج هذا ، اكتب ": wq" للحفظ والخروج أو ": q!" للخروج دون الحفظ) ، في حالتي عملت sudo ولكن فقط قلت أنه لا يمكن الاتصال بـ DESKTOP-SLQK4CV) وبدأت العمل بالنسبة لي. - Ave


لقد واجهت هذه المشكلة عندما كنت أستخدم أوبونتو على VPS. أنا حلها تحرير / الخ / تستضيف الملف.

قم بتشغيل هذا الأمر:

sudo nano /etc/hosts

ثم أضف:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

آمل أن يحل مشكلتك :)

ملاحظة: تذكر إعادة تمهيد جهاز الكمبيوتر الخاص بك!


16
2018-04-01 01:18



أيضا ، معرفة ما إذا كان اسم جهازك (مطبوع على شريط العنوان الطرفي بعد علامة @) يطابق الاسم الموجود في السطر الثاني من hosts ملف ("أوبونتو" في مثال لوكا). قد يكون السطر الأول مجرد "localhost". - Waldir Leoncio
تذكر! استعمال sudoedit (أو sudo -e). لتحديد محرر المفضل ، استخدم EDITOR متغير البيئة (على سبيل المثال export EDITOR=vim) لأنه ينشئ نسخة دون اتصال للتعديل ثم يتم الكتابة فوقها بعد التحرير. - Jan


كنت أواجه نفس المشكلة على الرغم من مطابقة اسم المضيف في ملفي / etc / hostname و / etc / hosts.

كان اسم مضيفي "staging_1". اتضح أنه لا يمكن أن يكون لديك شرطة سفلية في اسم المضيف الخاص بك ، وهذا هو السبب في أنني كنت أتلقى هذا الخطأ. تغيير تسطير أسفل السطر إلى واصلة حل المشكلة.


10
2017-08-13 13:50





في AWS ، انتقل إلى VPC وشغِّل "أسماء مضيفات DNS".


9
2018-01-15 05:15



مرحبا بك في askubuntu! هل يمكنك التوسع قليلاً في هذا؟ ليس من الواضح ما الذي تعنيه (على الأقل بالنسبة لي) .. - Elder Geek
قد لا يكون هذا ذا صلة بالسؤال ، لكنه ساعدني كثيرًا. شكرا لكم! - clayzermk1
كان هذا هو الجواب الذي ساعدني. تغيرت الأمازون AWS منذ آخر مرة نظرت فيه. تحتوي VPCs على خيارات DNS ، ويجب تشغيلها قبل عمل أي حل DNS. - Chris Moore
يمكن العثور على خيار تمكين أسماء مضيف DNS (على سبيل المثال) في قائمة النقر بزر الماوس الأيمن لإدخال vpc - Matteo Scotuzzi
لا يوجد DNS Hostnames - Green


صادفت نفس رسالة الخطأ هذه. أعتقد أن موضوع المناقشة هذا في منتديات AWS للمطورين هو حل أفضل:

"انتقل إلى وحدة تحكم إدارة VPC ، وحدد VPC ، وانقر على" إجراءات "، وحدد" تعديل أسماء مضيفي DNS "، ثم حدد" نعم ".

https://forums.aws.amazon.com/thread.jspa؟messageID=699718


5
2018-02-13 11:44





لن تقوم بعض المحاكيات الطرفية بتحديث المطالبة باستخدام اسم المضيف الصحيح حتى تقوم بإغلاق المحاكي وإعادة تشغيله (lxterminal ، أنا أتحدث إليك).

قضيت 30 دقيقة في القتال مع هذا الخطأ بعد تحرير اسم المضيف و المضيفين الملفات وتشغيلها sudo service hostname restart حتى ركضت sudo hostname ورأوا أن اسم المضيف هو القيمة الجديدة ، على الرغم من أن المطالبة كانت تظهر القيمة القديمة.


5
2018-06-19 16:29



المشكلة ليست المحاكيات الطرفية ، إنها الأصداف التي خزنت القيمة. - Mark Stosberg