hostname
digunakan untuk menampilkan nama DNS sistem, dan untuk menampilkan atau mengatur nama host atau nama domain NIS.
Apakah sistem komputer (Linux) hanya memiliki satu nama host?
Dalam hosting virtual, beberapa nama host dapat diselesaikan ke direktori root yang berbeda di server web. Jika sistem komputer (Linux) hanya dapat memiliki satu nama host, bagaimana mungkin hosting virtual?
Terima kasih.
hostname
pernah digunakan dalam menyelesaikan nama host ke alamat IP? (2) A berarti alamat IPv4, AAAA IPv6. Apa itu AAA?avahi
tergantung pada nama host mesin. Dalam hal ini,hostname.local
akan menyelesaikan ke alamat IP lokal dari mesin. Saya melihat seseorang menulis jawaban yang merupakan perluasan dari komentar pertama saya ... terlalu simultan untuk notifikasi browser saya.Jawaban:
Iya dan tidak. Ada dua hal berbeda yang disebut nama host.
Nama host "internal" pada dasarnya adalah string yang disimpan oleh kernel. Ini adalah yang dikembalikan oleh
hostname
perintah (ataugethostname()
panggilan) dan unik dalam sistem (*) .Ini sebagian besar digunakan ketika sebuah program ingin menampilkan beberapa pengenal untuk sistem yang sedang berjalan. Misalnya
\h
dalam Bash,PS1
memperluas ke nama host. Demikian pula, logfiles syslog-style juga menyertakan nama host pada entri log.(* Meskipun seperti komentar Stephen Kitt, ruang nama dapat digunakan untuk menunjukkan nama host yang berbeda untuk proses pada sistem yang sama. Itu sebagian besar digunakan untuk kontainer, yang mencoba bertindak seolah-olah mereka adalah sistem yang berbeda.)
Lalu ada juga nama DNS yang digunakan oleh sistem lain untuk mencari alamat IP yang lain. Mungkin ada lebih dari satu nama DNS yang mengarah ke alamat IP yang sama, dan host yang sama.
Hostname internal dan nama DNS tidak harus sama. Misalkan seseorang memiliki server web mereka telah memutuskan untuk memanggil
orange
(*) , dengan alamat IP192.0.2.9
. Itu bisa melayani dua domain yang berbeda dan DNS akan diatur untuk memilikiwww.example.org
danwww.example.com
keduanya mengarah ke192.0.2.9
, sementara nama host internal sistem mungkinorange.example.org
atau hanyaorange
. Dalam hal ini, pengaturan DNS biasanya juga akan memiliki pencarian terbalik pada192.0.2.9
titik kembali ke namaorange.example.org
, tetapi tidak ada yang memaksa itu.(* karena mereka suka memberi nama server mereka setelah buah. Seseorang mungkin menggunakan
webserver1
atau semacamnya, tetapi intinya adalah bahwa itu tidak perlu diberi nama setelah salah satu domain yang sebenarnya.)Selain itu, hosting virtual mengharuskan browser memberi tahu server web nama situs yang akan diakses. Kalau tidak, server tidak akan tahu situs virtual mana yang coba dijangkau oleh klien. HTTP memiliki
Host
header untuk itu.Apa yang membuat perbedaan antara nama DNS dan hostname internal adalah protokol mDNS (diimplementasikan misalnya oleh avahi daemon ) dan protokol penemuan lainnya. mDNS memungkinkan host untuk menanyakan semua host lain di jaringan yang sama untuk informasi nama, dan membuat nama host mereka sendiri terlihat di host lain tanpa secara eksplisit mengaturnya di DNS.
sumber
hostname
pernah digunakan dalam menyelesaikan nama host ke alamat IP?hostname
perintah mereka , benar? Apakah router bertindak seperti DNS untuk menyelesaikan outputhostname
ke alamat IP pribadi dalam jaringan?mDNS
. Baik atau buruk, ini memungkinkan pemilik sistem memilih nama host mereka sendiri, dapat diakses oleh sistem lain di jaringan lokal, tanpa perlu mendaftar dengan server DNS.Tidak.
[Saya benar-benar akan mengabaikan bahwa siapa pun dapat memberikan host Anda nama apa pun yang mereka suka dengan memiliki catatan DNS yang menunjuk ke alamatnya, atau bahwa Anda dapat memiliki lebih dari satu alias untuk itu
/etc/hosts
, atau pertimbangan filosofis tentang apa nama sebenarnya]Pada sistem linux, nama host hanyalah sumber daya per-proses ("namespace UTS") yang diwarisi oleh anak-anaknya secara default, tetapi dapat dipisahkan dari dengan
unshare(2)
atauclone(2)
dengan menggunakanCLONE_NEWUTS
bendera. Anda harus melihat ke halamannamespaces(7)
manual.Sama seperti pids, nomor port, mount point, dll, nama host tidak lagi menjadi pengidentifikasi global, dan itu bisa divirtualisasikan sama seperti ruang alamat (memori virtual) atau tabel deskriptor file dari suatu proses.
Hosting virtual adalah sesuatu yang sama sekali berbeda, dan biasanya dilakukan dengan mengonfigurasi catatan DNS wildcard (mis.
*.foo.com
=>13.13.13.13
) Dengan server web yang berjalan13.13.13.13
dan menyajikan direktori / sumber daya yang berbeda berdasarkan nilaiHost:
header http [1] (yang sangat dapat dikonfigurasi sebagian besar server web dapat menyajikan sumber daya yang berbeda berdasarkan pada header http apa pun , bukan hanyaHost:
). Dalam semua ini, OS dari sistem yang dijalankan oleh server web tidak berperan.[1] atau pada nilai indikasi nama server dalam hal https, yang memungkinkan server web yang sama untuk menggunakan sertifikat yang berbeda untuk host virtual yang berbeda.
sumber
Anda biasanya menetapkan satu nama host di / etc / hostname. Dan, Anda menetapkan banyak nama domain di / etc / hosts.
Ruang nama UTS memungkinkan satu sistem tampak memiliki nama host dan domain yang berbeda untuk proses yang berbeda. Untuk info lebih lanjut: https://en.wikipedia.org/wiki/Linux_namespaces . Jadi, sangat mungkin untuk memiliki beberapa nama host dan nama domain untuk sistem yang sama. Misalnya, buruh pelabuhan kontainer di dalam host yang sama memiliki nama host yang berbeda dari sistem host.
sumber