Tại sao tôi nhận được tên máy chủ: Tên hoặc dịch vụ không biết lỗi?


23

Tôi gặp lỗi này khi tôi cài đặt bất kỳ gói nào qua apt-get:

hostname: Name or service not known
dpkg: error processing ssmtp (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up libt1-5 (5.1.2-3.4ubuntu1) ...
Setting up php5-gd (5.3.10-1ubuntu3.2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 ssmtp
E: Sub-process /usr/bin/dpkg returned an error code (1)

Tại sao điều này đang xảy ra?


Tôi có cùng một vấn đề, vấn đề liên quan đến thực tế là DNS không giúp được bất kỳ mục nhập nào cho tên máy chủ - do đó FQDN không khả dụng.

Câu trả lời:


10

Dung dịch:

(Những loại vấn đề này không có giải pháp tốt. Nhưng chỉ có một số vấn đề)

Trước tiên bạn nên thử lệnh này trong một thiết bị đầu cuối:

sudo apt-get -f install

Nếu nó không hoạt động, xử lý với giải pháp hakes-ish .

Hãy thử tạm thời di chuyển tập lệnh cấu hình của ssmtp.

  1. Mở một terminal và thực hiện lệnh này để di chuyển chúng đến thư mục hiện tại

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. Sau đó thử sử dụng apt-get

Nguyên nhân của vấn đề:

Việc cài đặt hoặc gỡ bỏ trước đó có thể không hoàn thành thành công, để lại một số bước cấu hình được thực hiện cho ssmtpgói. Vì, dpkg sẽ không tiến triển mà không hoàn thành các bước đầu tiên, việc sử dụng tiếp theo apt-getbây giờ bị kẹt ở bước đó.


18

chạy hostname --fqdn

Nếu bạn gặp lỗi, hãy chỉnh sửa / etc / hostname và / etc / hosts với tên máy chủ phù hợp.

Sau đó, aptitude install ssmtpmột lần nữa để có được nó để cài đặt.


13

Để mọi người đều biết, việc chỉnh sửa / etc / hosts đã thực hiện thủ thuật etc / hostname đúng với server.exmaple.com

tuy nhiên các máy chủ không đúng

127.0.0.1 localhost
127.0.0.1 server

thay đổi nó thành này:

127.0.0.1 localhost.localdomain  localhost
192.168.xxx.xxx  server.example.com   server

Tôi đã chạy tên máy chủ -f và tên máy chủ --fqdn và nhận được sau đây.

server.example.com

Chỉ cần nghĩ rằng mọi người sẽ muốn biết.


5

Nhiều khả năng kết nối internet của bạn không hoạt động đúng. Cụ thể tôi nghĩ DNS của bạn không được giải quyết đúng cách.

cố gắng thêm dòng

nameserver 80.80.80.80 

cho bạn /etc/resolv.conf

Điều này sẽ tạm thời thêm máy chủ DNS freenom (cho đến lần khởi động tiếp theo)


Đó là một tập tin được tạo ra. Làm thế nào để tôi quản lý nó?
chovy

@chovy nếu bạn vẫn đang thắc mắc về vấn đề này, việc tiếp tục và sudoedit /etc/resolv.confthay thế bất kỳ địa chỉ nào có 8.8.8.8để giải quyết các sự cố DNS tạm thời là an toàn . Tập tin sẽ được tạo lại trong lần khởi động tiếp theo, vì vậy bạn không thể làm bất cứ điều gì quá tai hại ở đây trừ khi khởi động lại không phải là một tùy chọn
Zanna

2

Tôi đã nhận được tin nhắn trên mạng gia đình của mình trên hệ thống Ubuntu có địa chỉ IP được gán động từ bộ định tuyến cung cấp máy chủ DHCP và DNS kết hợp cho mạng của tôi.

Thông báo: hostname: Name or service not knowncó thể được gây ra bởi một thiết bị như vậy đi xuống, nếu chỉ trong chốc lát.

Ví dụ, điều này có thể xảy ra nếu bộ định tuyến nhà của tôi được khởi động lại khi mất điện.

Vấn đề ở đây là dịch vụ DHCP mà mạng của bạn đang phụ thuộc vào việc quên tất cả các địa chỉ IP mà nó đã gán và các tên miền liên quan. Khi máy tính của bạn kiểm tra máy chủ dns liên quan để biết tên của chính nó, máy chủ không còn có nó. Một số máy chủ DHCP có thể tránh được sự cố bằng cách viết các bài tập mà chúng đã thực hiện vào đĩa hoặc bộ nhớ flash để không mất gì khi khởi động lại.


Máy chủ có thể thường lấy tên máy tính của bạn từ yêu cầu DHCP hệ thống của bạn, đặt tên máy tính đó .local và lưu trữ trong hồ sơ của nó, làm cho nó có sẵn trong máy chủ DNS được liên kết của nó. Thường hostname -fqdnyêu cầu tên miền đầy đủ qua mạng của bạn từ máy chủ DNS của bạn và nếu có bản ghi, nó sẽ trả về tên đó. Các .localhậu tố làm cho nó trông giống như một tên miền đầy đủ hợp lệ (mặc dù nó không phải là thực sự là một tên miền toàn cầu có giá trị). Đây là lý do tại sao bạn có thể không phải chỉ định tên miền theo cách thủ công trong các tệp / etc / hosts hoặc / etc / hostname.


Việc khởi động lại máy chủ DHCP có thể gây ra nhiều vấn đề hơn vì các địa chỉ IP có thể được gán cho nhiều máy tính cùng lúc, khiến một số không thể giao tiếp. Địa chỉ được gán một lần trước khi máy chủ khởi động lại và một lần nữa sau đó.

Nếu máy chủ DHCP của bạn quên nhiệm vụ của mình, điều an toàn cần làm là kết nối lại từng máy tính mà nó phục vụ khi khởi động lại. Khi tôi mất, tôi chỉ cần ngắt kết nối và kết nối lại với điểm truy cập wifi. Trên mạng có dây, bạn có thể sử dụng ifdownifupđơn giản là ngắt kết nối và kết nối lại cáp mạng. Khi kết nối lại hệ thống của tôi sẽ tự động sử dụng dhclient để nhận địa chỉ mới - máy tính của tôi và máy chủ hiện đồng ý tôi là ai và thông báo không còn xuất hiện nữa.

Nếu bạn chờ đủ lâu, hợp đồng thuê DHCP sẽ hết thời gian và hệ thống của bạn sẽ yêu cầu và nhận hợp đồng thuê mới từ máy chủ - giải quyết vấn đề. Điều này có thể sẽ là vài giờ hoặc vài ngày sau (đối với máy chủ của tôi là một ngày).

Nếu bạn đã xác định tên và địa chỉ IP tĩnh và nếu bản ghi tra cứu ngược DNS là chính xác thì không nên xảy ra sự cố.


1

Tôi đã gặp phải lỗi này sáng nay và hóa ra tên máy chủ đã bị sai chính tả /etc/hostname. Sửa lỗi này để nó đồng ý với cách đánh vần tên máy chủ để /etc/hostsgiải quyết vấn đề. Các hostname -b -F /etc/hostnamelệnh chạy lúc khởi động dường như không thể hoàn thành trừ /etc/hostname/etc/hostsđồng ý.


Câu trả lời này đã giải quyết nó cho tôi: Đầu tiên tôi chắc chắn /etc/hosts/etc/hostnameđồng ý. Sau đó, tôi đã chạy "lệnh chạy lúc khởi động", chỉ không có -bcờ (vì nó chỉ cho phép tệp được chỉ định là không tồn tại, nhưng nó ở đây). Và bang: hostname --fqdntrả lại FQDN thích hợp một lần nữa.
isync
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.