Haruskah seseorang menggunakan FQDN di / etc / hostname daripada hostname?

10

Saat saya membaca di halaman manual, disarankan untuk memasukkan nama host (tanpa nama domain) ke /etc/hostname. Misalnya, host alih-alih host.domainsub.domaintld. Tapi, yang saya tahu, beberapa perangkat lunak bergantung pada memiliki FQDNdi /etc/hostname.

Apa yang harus ditentukan di /etc/hostname mesin Debian / Ubuntu?

Jika bukan FQDN, di mana FQDN seharusnya ditentukan?

Saya tahu, pertanyaan sudah agak lama, tetapi tidak menemukan jawaban yang jelas. Beberapa orang mengatakan nama host, beberapa - FQDN. Terima kasih.

Bulat M.
sumber
1
Di mana Anda menemukan orang-orang yang mengatakan bahwa Anda meletakkan FQDN di file / etc / hostname? File itu hanya untuk nama host sistem.
Terrance
Saat membaca materi tentang itu di internet bertemu di suatu tempat. Dan di mana orang harus menentukan FQDN-nya?
Bulat M.
@Terrance, sebenarnya saya ingin mendapatkan jawaban dari orang-orang yang berpengalaman di lapangan sehingga mereka menunjukkan bagaimana melakukannya dengan "benar" dari awal. Tulis sebagai jawaban. Dan apa yang harus dilakukan dalam distribusi yang tidak memiliki / etc / hostname?
Bulat M.

Jawaban:

6

Dalam file / etc / hostname Anda hanya menggunakan nama host. FQDN yang dapat Anda atur di: / etc / hosts yang mungkin terlihat seperti:

127.0.1.1        thishost.mydomain.org    thishost

Menurut manual dari file hosts.

http://man7.org/linux/man-pages/man5/hosts.5.html

Adonis
sumber
1
MEMPERBAIKI: Terima kasih, namun akan mengetahui tentang pro dan kontra menentukan / tidak menentukan FQDN di / etc / hostname. Saya tahu tentang solusi Anda: itu adalah rintisan untuk program yang ingin mendapatkan FQDN diselesaikan untuk sesuatu (tidak masalah dengan alamat apa) untuk bekerja.
Bulat M.
11

Jawaban yang Direvisi:

Tuan rumah itu sendiri tidak menangani FQDN yang sebenarnya. Itu ditangani oleh DNS . FQDN (Fully Qualified Domain Name) ditangani oleh DNS yang menerjemahkan nama menjadi alamat IP. Menggunakan /etc/hostsfile, Anda pada dasarnya menimpa server DNS. Komputer melihat ke /etc/hostsfile terlebih dahulu untuk melihat apakah entri didefinisikan untuk nama host ke alamat IP. Entri dalam /etc/hoststampilannya seperti berikut:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Entri ini tidak spesifik distro. Semua OS menggunakan format yang sama untuk baris ini. Hanya lokasi hostsperubahan file. Linux, biasanya terletak di /etc/folder, di mana di Windows biasanya terletak di C:\Windows\System32\drivers\etc\folder.

Memecah barisan itu, Anda dapat melihat bahwa saya menetapkan keduanya terrance-ubuntu.local, yang merupakan FQDN saya sendiri untuk mengesampingkan DNS sehingga aplikasi tahu untuk tidak meninggalkan komputer saya, dan terrance-ubuntu, yang merupakan nama host, lagi sehingga aplikasi tahu untuk tidak meninggalkan komputer saya atau 127.0.0.1 ( localhost ). Menetapkan nama host saya pada sistem saya 127.0.1.1tidak berpengaruh pada komputer yang menemukan host saya di jaringan. Jika DNS berfungsi dengan benar, mereka akan melihat nama host saya sebagai 10.0.0.100. Alasan untuk menggunakan 127.0.1.1aplikasi saya adalah untuk menemukan sistem saya lebih cepat karena akan tahu bahwa sistem saya tidak keluar di tempat lain di jaringan saya. Nama host saya yang sebenarnya dengan .localmenjadi FQDN saya, the.local sebenarnya Domain saya yang saya setup melalui router saya yang juga merupakan server DNS lain di jaringan saya.

Sekarang, katakanlah layanan DNS di jaringan lokal tidak menetapkan nama host atau FQDN ke alamat IP, tetapi Anda tahu apa alamat IP dari host di jaringan lokal. Anda kemudian akan menetapkan host itu di /etc/hostsfile Anda sehingga Anda tidak perlu mengetikkan alamat IP host setiap kali Anda ingin mengaksesnya. Tuan rumah mungkin server alat, printer, atau sistem jaringan yang terhubung lainnya. Tambahkan entri seperti biasa ke /etc/hostsfile.

Saya akan menggunakan printer yang terhubung ke jaringan saya misalnya. Ini memiliki IP statis 10.0.0.253. Saya tidak tahu nama itu. Untuk ini, saya ingin menyebutnya hp_printer. Saya akan ping IP dan nama host untuk itu, lalu tambahkan /etc/hosts.

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

Sekarang, saya juga dapat mengakses halaman web untuk pengaturan printer saya di nama yang saya berikan bukan alamat IP yang lebih mudah diingat:

masukkan deskripsi gambar di sini

File /etc/resolv.conf Anda juga digunakan oleh DNS untuk membantu menemukan nama host. Ini adalah file konfigurasi untuk resolver. Ini menyediakan domain pencarian sehingga Anda tidak harus menentukan FQDN Anda sepanjang waktu ketika Anda mencari host. Ini juga memasok alamat IP untuk DNS atau server nama jaringan lokal Anda. The searchgaris bawah menunjukkan nama localyang nama domain saya.

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

Semoga ini membantu memberikan pemahaman yang lebih baik tentang bagaimana DNS dan FQDN bekerja.

Terrance
sumber
mengapa Anda memetakan FQDN di / etc / hosts ke 127.0.1.1?
Bulat M.
1
@BulatM. Silakan lihat jawaban saya yang telah direvisi.
Terrance
dapatkah Anda menjelaskan perbedaan antara kata kunci pencarian dan domain di /etc/resolv.conf? Saya membaca halaman manual dari resolv.conf, masih belum terlalu jelas.
Bulat M.
Dan bisakah seseorang memasukkan keduanya? Bisakah Anda menyajikan kasus valid yang bermanfaat sebagai jawaban? Terima kasih.
Bulat M.
1
@BulatM. Klik tautan di jawaban saya, dan itu akan membawa Anda ke informasi lebih lanjut tentang berbagai hal. Seperti en.wikipedia.org/wiki/Resolv.conf memberikan lebih banyak informasi. Saya di sini untuk membantu, bukan untuk mengajar Anda. Saya tidak dibayar, karena ini semua sukarelawan, jadi silakan belajar sendiri.
Terrance
4

Halaman manualhostname(1) membahas ini (paragraf dalam huruf tebal ditekankan oleh saya):

FQDN
   FQDN (Fully Qualified Domain Name) dari sistem adalah nama itu
   yang resolver (3) kembali untuk nama host, seperti, ursula.example.com .
   Biasanya nama host diikuti oleh nama domain DNS (bagian
   setelah titik pertama). Anda dapat memeriksa FQDN menggunakan nama host --fqdn   atau
   nama domain menggunakan dnsdomainname .

   Anda tidak dapat mengubah FQDN dengan nama host atau nama domain .

   Metode pengaturan FQDN yang disarankan adalah membuat nama host menjadi
   alias untuk nama yang sepenuhnya memenuhi syarat menggunakan / etc / hosts, DNS, atau NIS.
   Misalnya, jika nama host adalah "ursula", orang mungkin memiliki satu baris
   / etc / hosts yang bertuliskan

          127.0.1.1 ursula.example.com ursula

   Secara teknis: FQDN adalah nama getaddrinfo (3) yang dikembalikan untuk host
   nama dikembalikan oleh gethostname (2). Nama domain DNS adalah bagian setelahnya
   titik pertama.

   Karena itu tergantung pada konfigurasi resolver (biasanya dalam
   /etc/host.conf) bagaimana Anda bisa mengubahnya. Biasanya file host diurai
   sebelum DNS atau NIS, jadi paling umum untuk mengubah FQDN di
   / etc / hosts.

Dan jika Anda memberikan FQDN sebagai nama host selama instalasi, itu hanya menulis komponen tinju ke /etc/hostnamedan menjaga FQDN /etc/hosts.

Jadi, dalam hal ini, biarkan pemasang melakukan apa yang dilakukannya.

muru
sumber
Apakah itu (dimasukkannya 127.0.1.1 ursula.example.com ursula di / etc / hosts) Debian \ Ubuntu spesifik atau dapat diterapkan sama baiknya dengan distr lain?
Bulat M.
1
Tak tahu tentang distro lain. Anda dapat melakukan hal yang sama di Arch dan Cent OS. Pertanyaan tentang distro lain harus ditanyakan di Unix & Linux .
muru