Linux ana bilgisayar adını ne belirler?


13

Birkaç yıl içinde Linux'u ana sistemim, özellikle Fedora olarak kullanıyorum, bazı ağlara bağlandığımda ve IP'im haline geldiğimde, ana bilgisayar adımı her zaman sadece "localhost" olarak ayarlanmış olarak gördüm. Bugün anladığımda sorun yaşadığım şu davranışı yaşadım.

Dizüstü bilgisayarımın başka bir bölümüne bir Ubuntu kurulumu kurdum ve Ubuntu kurulumu sırasında bir bilgisayar adı / ana bilgisayar adı ayarladım. Yine de Fedora'ya yeniden başladığımda, Fedora ana bilgisayar adımı Ubuntu kurulumunda belirlediğim isimle güncellemişti.

Her zaman anasistem adının dağıtım kurulumunun bölümünde yapılandırıldığını ve saklandığını düşündüm ve Fedora'daki / etc / hostname içeriği hala "localhost.localdomain" 'i okudu, ancak hostnamekomutu çalıştırmak yeni ana bilgisayar adını gösteriyor. Her iki kurulum da bir efi önyükleme bölümünü paylaşır, ancak aksi halde ayrıktır. Fedora kurulumunun yeni ana bilgisayar adını nerede ve neden okuduğunu merak ediyorum?


İçin giriş nedir hosts:/etc/nsswitch.conf içinde?
cutrightjm

@cutrightjmhosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
fedora

Yanıtlar:


12

hostnameÇalışan görülebileceği gibi program, bir'uname çağrısını gerçekleştirir:

strace hostname
...
uname({sysname="Linux", nodename="my.hostname.com", ...}) = 0
...

Gönderen 'uname syscall adam sayfasında , bu syscall çekirdeğinden aşağıdaki yapı alır diyor ki:

  struct utsname {
               char sysname[];    /* Operating system name (e.g., "Linux") */
               char nodename[];   /* Name within "some implementation-defined
                                     network" */
               char release[];    /* Operating system release (e.g., "2.6.28") */
               char version[];    /* Operating system version */
               char machine[];    /* Hardware identifier */
           #ifdef _GNU_SOURCE
               char domainname[]; /* NIS or YP domain name */
           #endif
           };

Dolayısıyla, etki alanına bir yorumda inanırsak, NIS / YP sisteminden gelir. Bu nedenle, ağınızda ubuntu işletim sistemi tarafından ayarlanan adı geri alan bir NIS / YP hizmeti olabilir.


5
Bu doğru değil hostname(1), ana bilgisayar adının nasıl ayarlandığını ve döndürüldüğünü açıklayan man sayfasına bakın . Adındaki benzerliğe rağmen, NIS / YP etki alanı adının çözümleyici tarafından döndürülen FQDN / DNS etki alanı adıyla ilgisi yoktur. NIS / YP'yi yapılandırmadıysanız, NIS / YP etki alanı adı ayarlanmayacaktır.
bodgit

"Nodename" önem verdiğiniz alan mı? Hala IP ağları isteğe bağlı ve uygulama tanımlı bir şey olarak düşünmek için unix nostalji ile uyumlu olurdu :)
rackandboneman

5

Linux sisteminde bir ana bilgisayar adının iki bağımsız (!) Kavramı vardır.

Çekirdek, herhangi bir ağ bağlantısından bağımsız olarak yerel ana bilgisayar adını (gethostname / uname ve sethostname sistem çağrıları tarafından işlendiği gibi) dikkate alırsa ne olur - TCP / IP ağ oluşturma yeteneği olmayan bir çekirdek oluşturursanız bu mekanik yine de var olur.

TCP / IP'ye (veya başka bir ağ yığınına bağlı olan) bir veya daha fazla ana bilgisayar adı vardır (veya dünyadaki tüm ağlar IP değildir!) Ana bilgisayarın sahip olduğu adresler ve bunlar çözümleyici kitaplığı işlevleri (bir bölümü libc), kaynakları (yerel / etc / hosts dosyası, DNS, NIS ....) uygun yapılandırma dosyalarında (/etc/nsswitch.conf, vb.) verdiğiniz kurallara göre yorumlayarak böyle bir adı belirleyecektir. /host.conf vb ...).


3

Ubuntu muhtemelen kurulum sırasında ev yönlendiriciniz üzerinden internete bağlandı. Bunu yapmak için, ana bilgisayar adını yönlendiriciye bildirdi ve geçici bir yerel IP aldı.

Şimdi Fedora'da yeniden başlattığınızda, IP adresini almak için aynı yönlendiriciye bağlanacaktır, ancak Ubuntu için oluşturulan eski kiralama hala geçerlidir. Aynı ağ kartı ve aynı donanım MAC adresi ile aynı makine olduğundan, aynı kiralama işlemini yeniden kullanacaktır.

Benim tahminim, yönlendiricinin IP kiralamasının kaydedildiği ana bilgisayar adını göndermesi ve Fedora'nın bunu seçmesidir.

Ne yazık ki cevabımı destekleyecek hiçbir kanıtım veya alıntım yok, sadece Ubuntu'yu Windows ile çift önyüklemede kurmanın kişisel deneyimiyle konuşabilirim. O zamanlar Ubuntu, kurulum sırasında Windows'ta kullandığım ile aynı ana bilgisayar adını ayarlamayı reddetti, çünkü adın ağda her zaman mevcut olduğunu iddia etti. Muhtemelen burada da benzer şeyler oluyor.

Tahmin ettiğim şeyin durumunuz için de geçerli olup olmadığını doğrulamak için yönlendiricinizin yapılandırma arayüzünde IP kiralamanızı iptal etmeyi deneyin ve ardından Fedora'yı yeniden başlatın. Artık Ubuntu'nun ana bilgisayar adını almıyorsa, doğru olmalıyım.


Bir DHCP istemcisinin sunucuya bir ana bilgisayar adı göndermesi veya sunucudan bir ana bilgisayar adı okuması gerçekten mümkündür. Çoğu her şey ilkini yapar (ancak ana bilgisayar adı "localhost" olarak ayarlandığında çok fazla etki yaratması olası değildir :). Bir ana bilgisayar adı Okuma gelen DHCP sunucusu olan olası (Linux DHCP istemcileri ile, ama zihnimin bu destek her zaman etkin değil miydi mesela ). Daha yeni bir Fedora'nın bunu yaptığını duymak ilginç.
sourcejedi
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.