''/> ''/> ''/> Thông báo lỗi 'sudo: không thể giải quyết máy chủ <USER>' | websitesolutions4u.com

Câu hỏi Thông báo lỗi 'sudo: không thể giải quyết máy chủ '


Khi tôi chạy sudo thiết bị đầu cuối bị kẹt trong vài giây và sau đó xuất ra một thông báo lỗi. Thiết bị đầu cuối của tôi trông như thế này:

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

Tôi có thể làm gì để giải quyết nó?


643
2017-08-31 19:09


gốc


Vui lòng đăng nội dung của /etc/hostname và /etc/hosts. - arrange
Tôi khuyên bạn không nên đóng câu hỏi này địa phương hóa quá. Có nhiều người dùng có thể nhầm lẫn nghĩ rằng họ đã đặt một tên trong hosts nhưng thay vì đặt tên khác, đặc biệt là vì trên nhiều mạng, máy tính được đặt tên tương tự. Câu hỏi này (và câu trả lời) sẽ hiển thị khi ai đó tìm kiếm vấn đề đó và câu trả lời sẽ nhắc họ kiểm tra những khác biệt như vậy, mặc dù lỗi chính tả chính xác sẽ khác. - Eliah Kagan
đảm bảo hostname giống với hosts. ví dụ. tên máy chủ là ubuntu-pc và máy chủ là ubuntu-pc phải giống nhau. - Muhammad Sholihin
Tôi chạy vào ngày hôm nay. Vấn đề là những gì tôi đã có trong tên máy chủ không phải là trong / etc / hosts. Để wit: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. Tôi cần thêm 'mybox' sau tên miền của mình trong / etc / hosts => 192.168.1.2 mybox.example.com mybox - Jim
Tôi không thể đăng câu trả lời vì câu hỏi này được bảo vệ và tôi không có đủ danh tiếng ở đây. Trong trường hợp của tôi, tôi đã giải quyết được vấn đề bằng cách khởi động lại trình quản lý mạng: sudo /etc/init.d/network-manager restart. Tuy nhiên, tôi tự hỏi tại sao ở nơi đầu tiên sudo lãng phí thời gian chờ đợi công cụ liên quan đến mạng. Không nên sudo làm việc mà không có vấn đề khi mạng không có sẵn? - bli


Các câu trả lời:


Hai điều cần kiểm tra (giả sử máy của bạn được gọi là my-machine, bạn có thể thay đổi điều này nếu thích hợp):

  1. Rằng /etc/hostname tập tin chỉ chứa tên của máy.

  2. Cái đó /etc/hosts có mục nhập cho localhost. Nó sẽ có một cái gì đó như:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 máy của tôi
    

Nếu một trong các tệp này không đúng (vì bạn không thể sudo), bạn có thể phải khởi động lại máy vào chế độ khôi phục và thực hiện các sửa đổi, sau đó khởi động lại môi trường bình thường của bạn.


877
2017-09-01 03:26



Tên máy chủ sẽ không thay đổi cho đến khi bạn khởi động lại. Nếu bạn muốn thay đổi nó mà không cần khởi động lại máy thì hãy làm theo các bước trên và sau đó chạy: - "sudo hostname my-machine" để xem điều này có hoạt động hay không "sudo hostname" Nó sẽ hiển thị tên máy chủ của máy. Phương pháp này có thể được sử dụng như một phương pháp tạm thời để thay đổi tên máy chủ. sau khi khởi động lại, giá trị từ tệp / etc / hostname được sử dụng. - Yashvit
Lưu ý: vì bạn không thể bắt đầu với sudo, rất khó để chỉnh sửa các tệp đó. Giải pháp của tôi là bằng cách nào đó tôi có thể sudo visudo và thay đổi #%admin ALL=(ALL) ALL đến %admin ALL=NOPASSWD: ALL , sau đó khởi động lại và sudo su -, chỉnh sửa các tệp đó, đặt / sửa tên máy chủ, khởi động lại và mọi thứ hoạt động. - Ian M
Tôi đang sử dụng hệ thống con Linux trong Windows và tôi phải đối mặt với vấn đề này. Sau khi làm theo câu trả lời của bạn, nó đã được giải quyết. - amarVashishth
bạn cũng có thể cần thêm ::1 localhost đến /etc/hosts (đây là phiên bản IPv6 127.0.0.1, còn gọi là địa chỉ loopback) - Woodrow Barlow
Tại sao ví dụ của bạn có 127.0.0.1 localhost nhưng 127.0.1.1 my-machine? - Adam


Chỉnh sửa  /etc/hosts và thêm tên máy chủ mới của bạn vào dòng 127.0.0.1 (hoặc tạo một dòng mới nếu bạn thích).

Của tôi trông giống như:

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

Thay thế penguin trong ví dụ trên bằng tên máy chủ mới của bạn như được nêu trong /etc/hostname tập tin.


171
2018-04-07 13:39



Làm thế nào ông có thể chỉnh sửa tập tin / etc / hosts nếu anh ta không thể sudo? Trừ khi anh ta tạo một tài khoản rood với một mật khẩu (ý tưởng tồi) - Dennis
@ Dennis Bạn vẫn có thể thực thi sudo ngay cả khi thông báo đó được hiển thị. IIRC bạn vẫn phải nhập mật khẩu của bạn vào mỗi lời gọi. Nếu điều này không hoạt động, bạn có thể khởi động lại vào bảng điều khiển khôi phục và áp dụng các thay đổi. Tài khoản gốc có mật khẩu không được khuyến khích. - Lekensteyn


Thêm tên máy chủ của bạn vào /etc/hosts như vậy:

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

43
2017-09-15 16:03



Đây là một câu trả lời tuyệt vời mà không nhận được đủ tín dụng - Edziu Eames
Đẹp nhất! Đồng ý nó không có đủ tình yêu đại diện. :-) - Peter K.
Đó là thông minh, nhưng tôi không nghĩ rằng nó có xu hướng là một ý tưởng tốt để tự động hóa một cái gì đó như thế này. - mwfearnley


Lưu ý, đây là câu trả lời cho câu hỏi này đã được hợp nhất với cái này.

Tên máy chủ của bạn (dave00-G31M-ES2L) không được đại diện trong /etc/hosts. Thêm một L vào dòng này:

127.0.1.1   dave00-G31M-ES2

Vì vậy, nó sẽ trở thành:

127.0.1.1   dave00-G31M-ES2L

Để thực hiện việc này, hãy mở bảng điều khiển (nhấn Ctrl+Alt+T) và gõ:

sudo gedit /etc/hosts

Thêm chữ cái L như đã đề cập, lưu và thoát.


30
2017-08-18 11:02



Nhớ lại! Sử dụng sudoedit(hoặc là sudo -e). Để chỉ định trình chỉnh sửa ưu tiên, hãy sử dụng EDITOR biến môi trường (ví dụ: export EDITOR=vim) vì nó tạo bản sao ngoại tuyến để chỉnh sửa và sau đó sẽ ghi đè lên sau khi chỉnh sửa. - Jan
Và có một người khác ở đây đề nghị sudo khi không còn sudo. sudo không làm việc, thưa ngài. sudo: unable to resolve host ... - Green
@Green: Không sudo? Thông báo lỗi mà bạn đề cập đến từ sudo chỉ huy. Có lẽ bạn có ý nghĩa gì đó khác? - Thor
@Màu xanh lá sudo hoạt động tốt. Nó không thể lưu trữ bất kỳ trạng thái nào (ví dụ như Lekensteyn nói ở nơi khác bạn phải nhập mật khẩu của bạn mọi lúc). - Wlerin
Nếu bạn có vấn đề này trên Bash của W10 và đến câu hỏi này từ google, đây là câu trả lời đã làm việc cho tôi. Tôi đã thay đổi 127.0.0.1 thành giống như "127.0.0.1 localhost DESKTOP-SLQK4CV" (bằng cách làm "sudo vim / etc / hosts" (mẹo nhanh cho người mới sử dụng vim: nhấn i trước khi gõ để chuyển sang chế độ chèn, nhấn esc để thoát rằng, viết ": wq" để lưu và thoát hoặc ": q!" để thoát mà không lưu), trong trường hợp của tôi sudo đã làm việc nhưng chỉ nói rằng nó không thể kết nối với DESKTOP-SLQK4CV) và nó bắt đầu làm việc cho tôi. - Ave


Tôi đã có vấn đề này khi tôi đang sử dụng ubuntu trên một VPS. Tôi giải quyết nó chỉnh sửa tập tin / etc / hosts.

chạy lệnh này:

sudo nano /etc/hosts

và sau đó thêm:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Tôi hy vọng rằng sẽ giải quyết vấn đề của bạn :)

PS: Nhớ khởi động lại máy tính của bạn!


16
2018-04-01 01:18



Ngoài ra, hãy xem tên thiết bị của bạn (được in trên thanh tiêu đề Thiết bị đầu cuối sau ký hiệu @) có khớp với tên trên dòng thứ hai của hosts tập tin ("ubuntu" trong ví dụ của Luca). Dòng đầu tiên cũng có thể chỉ là "localhost". - Waldir Leoncio
Nhớ lại! Sử dụng sudoedit(hoặc là sudo -e). Để chỉ định trình chỉnh sửa ưu tiên, hãy sử dụng EDITOR biến môi trường (ví dụ: export EDITOR=vim) vì nó tạo bản sao ngoại tuyến để chỉnh sửa và sau đó sẽ ghi đè lên sau khi chỉnh sửa. - Jan


Tôi đã gặp vấn đề tương tự mặc dù tên máy chủ trong tập tin / etc / hostname của tôi và / etc / hosts tập tin phù hợp.

Tên máy chủ của tôi là "dàn dựng_1". Nó chỉ ra rằng bạn không thể có một gạch dưới trong tên máy của bạn, đó là lý do tại sao tôi đã nhận được lỗi này. Thay đổi dấu gạch dưới thành dấu gạch ngang cố định vấn đề của tôi.


10
2017-08-13 13:50





Trong AWS, truy cập vpc của bạn và bật "Tên máy chủ DNS".


9
2018-01-15 05:15



Chào mừng bạn đến với askubuntu! Bạn có thể mở rộng một chút về điều này? Nó không dồi dào ý nghĩa của bạn (ít nhất là với tôi) .. - Elder Geek
Điều này có thể không liên quan đến câu hỏi, nhưng nó đã giúp tôi rất nhiều. Cảm ơn bạn! - clayzermk1
Đây là câu trả lời đã giúp tôi. Amazon AWS đã thay đổi kể từ lần cuối cùng tôi nhìn vào nó. VPC có tùy chọn DNS và chúng cần được bật trước khi bất kỳ độ phân giải DNS nào hoạt động. - Chris Moore
tùy chọn Bật tên máy chủ lưu trữ DNS có thể được tìm thấy (ví dụ) trong trình đơn nhấp chuột phải của mục nhập vpc - Matteo Scotuzzi
Không có DNS Hostnames - Green


Tôi đã gặp thông báo lỗi tương tự này. Tôi nghĩ rằng chuỗi thảo luận này tại Diễn đàn Nhà phát triển AWS là một giải pháp tốt hơn:

"Vào giao diện quản lý VPC, chọn VPC, nhấn vào Actions, chọn Edit DNS Hostnames và chọn Yes."

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


5
2018-02-13 11:44





Một số trình giả lập thiết bị đầu cuối sẽ không cập nhật lời nhắc với tên máy chủ chính xác cho đến khi bạn đóng và khởi động lại trình mô phỏng (lxterminal, tôi đang nói chuyện với bạn).

Tôi đã dành 30 phút chiến đấu với lỗi này sau khi chỉnh sửa tên máy chủ và máy chủ tệp và chạy sudo service hostname restart cho đến khi tôi chạy sudo hostname và thấy rằng tên máy chủ là giá trị mới, mặc dù dấu nhắc đã hiển thị giá trị cũ.


5
2018-06-19 16:29



Vấn đề không phải là trình giả lập thiết bị đầu cuối, đó là các shell đã lưu trữ giá trị. - Mark Stosberg


Trong trường hợp của tôi, đó là vấn đề, tôi đã thay đổi hostname đến man bởi vì tôi muốn biết nếu có một số thông số bạn có thể sử dụng hostname. Thay vào đó nó đã thay đổi hostname đến man và tôi luôn nhận được tin nhắn giống như bạn

sudo: unable to resolve host (none)

sau khi đổi tên máy chủ thành `localhost, mọi thứ hoạt động tốt trở lại

hostname localhost

4
2018-01-09 22:24