ทำไมฉันถึงได้รับชื่อโฮสต์: ชื่อหรือบริการที่ไม่รู้จักผิดพลาด


23

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันติดตั้งแพคเกจใด ๆ ผ่าน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)

ทำไมสิ่งนี้จึงเกิดขึ้น


ฉันมีปัญหาเดียวกันปัญหาเกี่ยวข้องกับความจริงที่ว่า DNS ไม่ได้ช่วยรายการใด ๆ สำหรับชื่อโฮสต์ - ดังนั้น FQDN จึงไม่สามารถใช้งานได้

คำตอบ:


10

วิธีการแก้:

(ปัญหาประเภทนี้ไม่มีวิธีแก้ปัญหาที่ดี แต่มีเพียงบางตัวเท่านั้นที่แฮ็ก)

คุณควรลองคำสั่งนี้ในเทอร์มินัลก่อน:

sudo apt-get -f install

หากไม่ได้ผลให้ดำเนินการกับhaking-ishวิธีการแก้ปัญหา

ลองย้ายสคริปต์การกำหนดค่าของssmtpชั่วคราว

  1. เปิดเทอร์มินัลและเรียกใช้คำสั่งนี้เพื่อย้ายไปยัง dir ปัจจุบัน

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. จากนั้นลองใช้ apt-get

สาเหตุของปัญหา:

การติดตั้งหรือการลบก่อนหน้านี้อาจไม่เสร็จสมบูรณ์โดยออกจากขั้นตอนการกำหนดค่าบางอย่างที่จะทำสำหรับssmtpแพคเกจ เนื่องจาก dpkg จะไม่คืบหน้าหากไม่ทำตามขั้นตอนแรกการใช้งานในภายหลังapt-getจะติดอยู่กับขั้นตอนนั้น


18

วิ่ง hostname --fqdn

หากคุณได้รับข้อผิดพลาดให้แก้ไข / etc / hostname และ / etc / hosts ด้วยชื่อโฮสต์ที่เหมาะสม

จากนั้นaptitude install ssmtpอีกครั้งเพื่อนำไปติดตั้ง


13

เพียงเพื่อให้ทุกคนรู้ว่าการแก้ไข / etc / hosts ทำเคล็ดลับที่ etc / hostname นั้นถูกต้องกับ server.exmaple.com

อย่างไรก็ตามโฮสต์ไม่ถูกต้อง

127.0.0.1 localhost
127.0.0.1 server

เปลี่ยนเป็น:

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

ฉันใช้ชื่อโฮสต์ - f และชื่อโฮสต์ --fqdn และได้รับดังต่อไปนี้

server.example.com

แค่คิดว่าทุกคนอยากรู้


5

ส่วนใหญ่การเชื่อมต่ออินเทอร์เน็ตของคุณทำงานไม่ถูกต้อง ฉันคิดว่า DNS ของคุณไม่ได้รับการแก้ไขอย่างถูกต้อง

ลองเพิ่มบรรทัด

nameserver 80.80.80.80 

เพื่อคุณ /etc/resolv.conf

สิ่งนี้จะเพิ่มเซิร์ฟเวอร์ DNS freenom ชั่วคราว (จนกระทั่งบูตครั้งถัดไป)


นั่นคือไฟล์ที่สร้างขึ้น ฉันจะจัดการมันได้อย่างไร
chovy

@chovy หากคุณยังคงสงสัยเกี่ยวกับสิ่งนี้มันปลอดภัยที่จะดำเนินการต่อไปและsudoedit /etc/resolv.confเพื่อแทนที่ที่อยู่ใดก็ตามที่อยู่ที่นั่นด้วย8.8.8.8เพื่อแก้ไขปัญหา DNS ชั่วคราว ไฟล์จะถูกสร้างใหม่ในการบู๊ตครั้งถัดไปดังนั้นคุณจะไม่สามารถทำสิ่งใดได้อย่างหายนะที่นี่เว้นแต่ว่าการรีบูตไม่ใช่ตัวเลือก
Zanna

2

ฉันได้รับข้อความบนเครือข่ายในบ้านของฉันในระบบ Ubuntu ด้วยที่อยู่ IP ที่กำหนดแบบไดนามิกจากเราเตอร์ที่ให้ DHCP และ DNS เซิร์ฟเวอร์รวมสำหรับเครือข่ายของฉัน

ข้อความ: hostname: Name or service not knownอาจเกิดจากอุปกรณ์ดังกล่าวหยุดทำงานหากเป็นเพียงชั่วขณะ

ตัวอย่างเช่นอาจเกิดขึ้นได้หากเราเตอร์ที่บ้านของฉันรีบูทเมื่อไฟดับ

ปัญหาที่นี่คือบริการ DHCP ที่เครือข่ายของคุณใช้นั้นจะลืมที่อยู่ IP ทั้งหมดที่กำหนดไว้และชื่อโดเมนที่เกี่ยวข้อง เมื่อคอมพิวเตอร์ของคุณตรวจสอบเซิร์ฟเวอร์ dns ที่เกี่ยวข้องสำหรับชื่อของตนเองเซิร์ฟเวอร์จะไม่มีอีกต่อไป เซิร์ฟเวอร์ DHCP บางตัวอาจหลีกเลี่ยงปัญหาด้วยการเขียนการมอบหมายที่ทำไว้กับดิสก์หรือหน่วยความจำแฟลชจึงไม่มีอะไรหายไปเมื่อรีสตาร์ท


เซิร์ฟเวอร์อาจใช้ชื่อคอมพิวเตอร์ของคุณตามปกติจากคำขอ DHCP ของระบบทำให้เป็นชื่อคอมพิวเตอร์ . local และเก็บไว้ในระเบียนของเซิร์ฟเวอร์ทำให้สามารถใช้งานได้ในเซิร์ฟเวอร์ DNS ที่เชื่อมโยงพร้อมกัน โดยปกติแล้วจะhostname -fqdnขอชื่อโดเมนแบบเต็มผ่านเครือข่ายของคุณจากเซิร์ฟเวอร์ DNS ของคุณและหากมีการบันทึกก็จะส่งคืนชื่อนั้น .localต่อท้ายทำให้มีลักษณะเหมือนชื่อโดเมนที่ถูกต้องครบถ้วน (แม้ว่ามันจะไม่ได้จริงๆชื่อโดเมนระดับโลกที่ถูกต้อง) นี่คือเหตุผลที่คุณอาจไม่ต้องระบุชื่อโดเมนด้วยตนเองในไฟล์ / etc / hosts หรือ / etc / hostname


การรีสตาร์ทเซิร์ฟเวอร์ DHCP อาจทำให้เกิดปัญหาเพิ่มเติมเนื่องจากที่อยู่ IP อาจถูกกำหนดให้กับคอมพิวเตอร์หลายเครื่องพร้อมกันทำให้บางเครื่องไม่สามารถสื่อสารได้ ที่อยู่จะถูกกำหนดหนึ่งครั้งก่อนที่เซิร์ฟเวอร์จะรีสตาร์ทและอีกครั้งหลังจากนั้น

หากเซิร์ฟเวอร์ DHCP ของคุณลืมงานที่มอบหมายสิ่งที่ปลอดภัยที่ต้องทำคือเชื่อมต่อคอมพิวเตอร์แต่ละเครื่องที่ให้บริการเมื่อรีสตาร์ท เมื่อฉันทำของฉันหายฉันก็ตัดการเชื่อมต่อและเชื่อมต่อกับจุดเชื่อมต่อ wifi อีกครั้ง ในเครือข่ายแบบใช้สายคุณสามารถใช้ifdownและifupหรือเพียงแค่ถอดและเชื่อมต่อสายเคเบิลเครือข่ายอีกครั้ง เมื่อทำการเชื่อมต่อระบบของฉันอีกครั้งโดยอัตโนมัติจะใช้ dhclient เพื่อรับที่อยู่ใหม่คอมพิวเตอร์และเซิร์ฟเวอร์ของฉันเห็นด้วยว่าฉันเป็นใครและข้อความไม่ปรากฏ

หากคุณรอนานพอ DHCP lease จะหมดเวลาและระบบของคุณจะขอและรับสัญญาเช่าใหม่จากเซิร์ฟเวอร์เพื่อแก้ไขปัญหา นี่อาจจะเป็นชั่วโมงหรือหลายวันต่อมา (สำหรับเซิร์ฟเวอร์ของฉันมันคือหนึ่งวัน)

หากคุณได้กำหนดชื่อและที่อยู่ IP แบบคงที่และหากระเบียนการค้นหา DNS ย้อนกลับถูกต้องปัญหาจะไม่เกิดขึ้น


1

/etc/hostnameฉันวิ่งเข้าไปในข้อผิดพลาดนี้ในเช้าวันนี้และมันกลับกลายเป็นว่าชื่อโฮสต์ที่ถูกสะกดผิดใน การแก้ไขสิ่งนี้จึงเห็นด้วยกับการสะกดชื่อโฮสต์/etc/hostsเพื่อแก้ไขปัญหา hostname -b -F /etc/hostnameคำสั่งที่วิ่งในเวลาบูตเห็นได้ชัดว่าไม่สามารถดำเนินการเว้นแต่/etc/hostnameและ/etc/hostsเห็นด้วย


คำตอบนี้ได้รับการแก้ไขสำหรับฉัน: ก่อนอื่นฉันต้องแน่ใจ/etc/hostsและ/etc/hostnameเห็นด้วย จากนั้นฉันก็รันคำสั่ง "ที่รันตอนบูท" โดยไม่มี-bแฟล็ก (เพราะจะทำให้ไฟล์ที่ระบุไม่มีอยู่ แต่มันอยู่ที่นี่) และปัง: hostname --fqdnส่งคืน FQDN ที่เหมาะสมอีกครั้ง
isync
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.