Bir bilgisayar sisteminin (Linux) yalnızca bir ana bilgisayar adı var mı?


15

hostname sistemin DNS adını görüntülemek ve ana bilgisayar adını veya NIS etki alanı adını görüntülemek veya ayarlamak için kullanılır.

Bir bilgisayar sisteminin (Linux) yalnızca bir ana bilgisayar adı var mı?

Sanal barındırmada, birkaç ana bilgisayar adı bir web sunucusundaki farklı kök dizinlere çözümlenebilir. Bir bilgisayar sistemi (Linux) yalnızca bir ana bilgisayar adına sahipse, sanal barındırma nasıl mümkündür?

Teşekkürler.


DNS A veya AAA kayıtları, birden çok etki alanı için aynı IP adresini gösterir. Makinenin ana bilgisayar adı mutlaka önemli değildir.
RubberStamp

(1) Çıktı hostnameşimdiye kadar IP adresini ana bilgisayar adının çözümlenmesinde kullanıyor mu? (2) A, IPv4 adresi, AAAA IPv6 anlamına gelir. AAA nedir?
Tim

mDNS hizmetleri, örneğin avahimakine ana bilgisayar adına bağlıdır. Bu durumda, hostname.localmakinenin yerel IP adresine gider. Birisinin ilk yorumumun bir uzantısı olan bir cevap yazdığını görüyorum ... tarayıcı bildirimlerim için çok eşzamanlı.
RubberStamp

AAA bir 'A' kısa yazım
hatasıdır

Sanal Ana Bilgisayar'ın ana bilgisayar adıyla ilgisi yoktur. Tamamen web sunucusu davranışına bağlıdır. Sunucu, HTTP istek üstbilgisinin farklı Ana Bilgisayar alanına farklı yanıt verir. Tipik web sunucusunun sanal ana bilgisayar işlevselliği sunmak için DNS veya ana bilgisayar adı ile ilgili bir şey yapacağını düşünmüyorum.
炸鱼 薯条 德里克

Yanıtlar:


26

Evet ve hayır. Hostnames olarak adlandırılan iki ayrı şey vardır.

"İç" ana bilgisayar adı temel olarak çekirdek tarafından tutulan bir dizedir. Bu hostnamekomut (veya gethostname()çağrı) tarafından döndürülen ve bir sistem (*) içinde benzersiz olanıdır .

Çoğunlukla bir program, üzerinde çalıştığı sistem için bazı tanımlayıcılar vermek istediğinde kullanılır. Örneğin \h, Bash'ın PS1ana bilgisayar adına genişler. Benzer şekilde, syslog tarzı günlük dosyaları da günlük girişlerinde ana bilgisayar adını içerir.

(* Stephen Kitt'in yorumlarına rağmen, ad alanları aynı sistemdeki işlemlere farklı ana bilgisayar adları göstermek için kullanılabilir. Bu çoğunlukla farklı sistemler gibi davranmaya çalışan kaplar için kullanılır.)

Sonra DNS adları da var , başka sistemler tarafından başka birinin IP adresini aramak için kullanılan da vardır. Aynı IP adresini ve dolayısıyla aynı ana bilgisayarı gösteren birden fazla DNS adı olabilir.

Dahili ana bilgisayar adının ve DNS adlarının aynı olması gerekmez. Birisinin IP adresiyle orange(*) aramaya karar verdikleri bir web sunucusuna sahip olduğunu varsayalım 192.0.2.9. İki farklı etki hizmet edebilir ve DNS olması kurulacaktı www.example.orgve www.example.comher iki nokta 192.0.2.9sistemin iç hostname olabilirken, orange.example.orgya da sadece orange. Bu durumda, DNS ayarları genellikle de olurdu ters arama üzerindeki 192.0.2.9isme noktası arka orange.example.org, ama bu kuvvetin bir şey yok.

(* çünkü sunucularını meyve verdikten sonra adlandırmak isterler. Birisi kullanabilir webserver1veya böyle olabilir , ancak asıl nokta, gerçek alanlardan birinin adını vermesine gerek olmamasıdır.)

Buna ek olarak, sanal barındırma, tarayıcının web sunucusuna erişmeye çalıştığı sitenin adını söylemesini gerektirir. Aksi takdirde sunucu, istemcinin hangi sanal siteye ulaşmaya çalıştığını bilemez. HTTP bunun için bir Hostbaşlığa sahiptir.


Bir DNS adı ile dahili ana bilgisayar adı arasındaki farkı karıştıran şey mDNS protokolü (örn. Avahi arka plan programı tarafından uygulanır ) ve diğer keşif protokolleridir. mDNS, ana bilgisayarların aynı ağdaki diğer tüm ana bilgisayarları ad bilgileri için sorgulamasını ve kendi ana bilgisayar adlarını DNS'de açıkça ayarlamadan diğer ana bilgisayarlarda görünür hale getirmelerini sağlar.


Teşekkürler. (1) "DNS kurulumunda genellikle orange.example.org adında 192.0.2.9 noktası olur" Belirli bir ana bilgisayar adı için IP adresi alınamıyor, neden tam tersi? (2) Ana hostnamebilgisayar adının IP adresine çözümlenmesinde şimdiye kadar kullanılan çıktı var mı ?
Tim

(2) ... Bir yönlendirici ve modem kullanarak bir ISS'den evinizde yerel bir wifi ağı kurarken, ağdaki makineler hostnamekomutlarının çıktılarıyla tanımlanabilir , değil mi? Yönlendirici hostname, ağdaki özel IP adreslerinin çıkışlarını çözmek için DNS gibi davranıyor mu?
Tim

2
(1) 'e gelince, IP adresini alıp bir isim döndüren ters aramalar da vardır. (Tek bir isme ve tek bir adrese sahip bir sistem için, sadece netlik uğruna, ikisinin de diğerine çözümlenmesini istersiniz)
ilkkachu

3
Küçük ağlar kullanıyor olabilir mDNS. Daha iyisi ya da daha kötüsü, sistem sahiplerinin DNS sunucusuna kaydolmaya gerek kalmadan yerel ağdaki diğer sistemler tarafından erişilebilen kendi ana bilgisayar adlarını seçmelerine izin verir.
Mark Plotnick

2
Birçok ev ağında, yerel yönlendirici DNS çözümleyicisi olarak işlev görür. Ana bilgisayarlar, DHCP kullanarak bir adres istediklerinde ana bilgisayar adlarını gönderir ve yönlendirici bu adı hatırlar ve ağdaki tüm ana bilgisayarlar için çözer. Mark ve RubberStamp'ın da belirttiği gibi, LAN'da (özellikle yazıcılar) servis keşfine izin veren Bonjour (Avahi'de uygulandı) da var. Ana bilgisayarların birden fazla IP adresine sahip olabileceğini ve ana bilgisayar adlarının artık ad boşluklu olduğunu unutmayın, böylece işlemler aynı ana bilgisayarda farklı ana bilgisayar adlarını görebilir.
Stephen Kitt

7

Bir bilgisayar sisteminin (Linux) yalnızca bir ana bilgisayar adı var mı?

Hayır.

[Herhangi bir kişinin adresinize işaret eden bir DNS kaydına sahip olarak barındırıcınıza herhangi bir ad verebileceğini veya içinde birden fazla takma adınızın/etc/hosts olabileceğini veya bir adın gerçekte ne olduğu hakkında felsefi düşüncelerin olduğunu tamamen görmezden geleceğim

Bir Linux sistemde, ana makine adı varsayılan olarak kendi çocukları tarafından miras, ancak birlikte gelen disjoined edilebilecek bir işlem başına kaynak ( "UTS ad") basitçe unshare(2)veya clone(2)kullanarak CLONE_NEWUTSbayrağı. namespaces(7)Manpage'e bakmalısın .

Tıpkı pids, port numaraları, bağlama noktaları vb. Gibi ana bilgisayar adı artık global bir tanımlayıcı değildir ve bir işlemin adres alanı (sanal bellek) veya dosya tanımlayıcı tablosuyla aynı sanallaştırılabilir.

Sanal barındırmada, birkaç ana bilgisayar adı bir web sunucusundaki farklı kök dizinlere çözümlenebilir. Bir bilgisayar sistemi (Linux) yalnızca bir ana bilgisayar adına sahipse, sanal barındırma nasıl mümkündür?

Sanal barındırma tamamen farklı bir şeydir ve genellikle bir web sunucusu üzerinde çalışan ve http üstbilgisinin [1] değerine bağlı olarak farklı dizinlere / kaynaklara hizmet veren bir joker karakter DNS kaydı (ör. *.foo.com=> 13.13.13.13) Yapılandırılarak yapılır (son derece yapılandırılabilir Çoğu web sunucusu yalnızca http değil , herhangi bir http başlığına göre farklı kaynaklar sunabilir ). Bütün bunlarda, web sunucusunun üzerinde çalıştığı sistemin işletim sistemi hiçbir rol oynamaz.13.13.13.13Host:Host:

[1] veya aynı web sunucusunun farklı sanal ana bilgisayarlar için farklı sertifikalar kullanmasına izin veren https durumunda sunucu adı göstergesinin değerinde .


Bu konuda sana katılmıyorum. Sanal barındırma için, genellikle tek ana makineye işaret eden belirli bir cname kaydı setimiz vardır. Etki alanında sanal ana bilgisayarlara ihtiyaç duyan birçok sistemimiz olduğu için joker karakter DNS kaydı kullanmıyoruz. UTS ad alanları hariç (bu zaten ne kadar yaygın kullanılıyor?), Belirli bir sunucu için tek bir ana bilgisayar adı bildiren hostnamectl'e sahipsiniz. DNS ve hostnamectl dikeydir ve birbirleriyle çok az ilgileri vardır.
doneal24

1
@ DougO'Neal Neye katılmıyorsunuz? Bu joker karakter DNS kayıtları, tarif ettiğim şekilde kullanılıyor mu? Hoşuna gitsin ya da sevmesin, çılgınca böyle kullanılırlar (pun için üzgünüm). Linux bilgisinin Linux'ta işlem başına sanallaştırıldığını mı? Sadece bu şekilde. İsim alanlarının sadece konserve konteynerizasyon / sanallaştırma çözümleri (diğer cevapta önerildiği gibi) tarafından kullanıldığı / kullanılacağı fikrine gelince, üzgünüm ama bu sadece "bebeklerle oynayan kızlar" veya "manuel şanzımanlar sadece ağır kamyonlarda kullanılıyor" kalite ;-)
Billy Amca

1

/ Etc / hostname içinde genellikle tek bir ana bilgisayar adı ayarlarsınız. Ve / etc / hosts içinde birçok alan adı belirlersiniz.

UTS ad alanları, tek bir sistemin farklı işlemler için farklı ana bilgisayar ve etki alanı adlarına sahip görünmesine olanak tanır. Daha fazla bilgi için: https://en.wikipedia.org/wiki/Linux_namespaces . Bu nedenle, aynı sistem için birden fazla ana bilgisayar adı ve etki alanı adının olması kesinlikle mümkündür. Örneğin, aynı ana makinedeki docker kapsayıcısı ana bilgisayar sisteminden farklı bir ana bilgisayar adına sahiptir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.