it-swarm-tr.com

Ana makine adını kullanarak bir makineyi LAN'dan erişilebilir hale getirme

Ana bilgisayar adını kullanarak erişmek istediğim makinenin ayrıntıları:

$ hostname
hostname
$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   hostname.company.local  hostname

Bu varsayılan bir Debian 6 (Squeeze) kurulumu, bu yüzden henüz hiçbir şeyle uğraşmadım.

Bu makinenin üstünde erişmeye çalışan bir makineden (Debian Kararsız çalıştıran) aldım:

$ ping hostname
ping: unknown Host hostname
$ ping hostname.company.local
ping: unknown Host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
131
tshepang

İnternette, yerel ağlar dahil, makineler birbirlerini IP adresleri ile çağırır. B makinesine B makinesinin adını kullanarak A makinesinden erişmek için, A makinesinin B adını IP adresine eşlemek için bir yolu olmalıdır. A'da makine adlarını bildirmenin üç yolu vardır:

  • a anasistemler dosyası . Bu, adları adreslerle eşleyen basit bir metin dosyasıdır.
  • alan adı sistemi (DNS) . Global internette kullanılan yöntem budur. Örneğin, bu sayfayı bir tarayıcıya yüklediğinizde, bilgisayarınızın yaptığı ilk şey unix.stackexchange.com adresini bilmek için bir DNS isteğinde bulunmaktır.
  • [~ # ~] nis [~ # ~] , [~ # ~] ldap [~ # ~] veya Aktif Dizin . Bunlar bazı şirket ağlarında kullanılır, ancak çok sık kullanılmaz (kullanıcı veritabanları için NIS, LDAP veya AD kullanan birçok ağ, makine adları için DNS kullanır). Ağınız bunlardan birini kullanıyorsa, profesyonel bir ağ yöneticiniz vardır ve ona ne yapacağını sormalıdır.

Bunların pratikte çalışabileceği birçok yol vardır; hepsini kapsamak imkansız. Bu cevapta, birkaç yaygın durumu anlatacağım.

Hosts dosyası

Hosts dosya yönteminin herhangi bir özel yöntem gerektirmemesi avantajı vardır. Birkaç makineniz varsa hantal olabilir, çünkü bir makinenin adı değiştiğinde her makineyi güncellemeniz gerekir. B'nin IP adresi dinamik olarak atanmışsa uygun değildir (böylece ağa her bağlandığınızda farklı bir adres alırsınız).

Ana bilgisayar dosyası, adları IP adresleriyle eşleyen satırların basit bir listesidir. Şöyle görünüyor:

127.0.0.1       localhost localhost.localdomain
198.51.100.42   darkstar darkstar.bands

Unix sistemlerde hosts dosyası /etc/hosts'dir. Windows'ta c:\windows\system32\drivers\etc\hosts. İnternet'e bağlayabileceğiniz hemen hemen her işletim sisteminde benzer bir dosya vardır; Wikipedia'nın bir listesi var .

A'nın hosts dosyasında B için bir girdi eklemek için:

  1. B'nin IP adresini belirleyin. B'de ifconfig komutunu çalıştırın (komut bulunmazsa /sbin/ifconfig) deneyin. Çıktı aşağıdaki gibi satırlar içerecektir:

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab
              inet addr:10.3.1.42  Bcast:10.3.1.255  Mask:255.255.255.0
    

    Bu örnekte, B'nin IP adresi 10.3.1.42'dir. Birkaç inet addr: çizgi varsa, ağ kartınıza karşılık gelen olanı seçin, asla lo girişini veya tünel veya sanal girişi asla seçin.

  2. Hosts dosyasını A üzerinde düzenleyin. A bazı unix sistemi çalıştırıyorsa, süper kullanıcı olarak /etc/hosts; bkz. Sistem yöneticisi (kök) olarak bir komutu nasıl çalıştırabilirim .

Ev veya küçük ofis ağlarında DHCP + DNS

Gerekli ekipmana sahipseniz, bu yöntem çok basittir. Yalnızca bir cihazı yapılandırmanız yeterlidir ve tüm bilgisayarlarınız birbirlerinin adları hakkında bilgi sahibi olur. Bu yöntem, bilgisayarlarınızın IP adreslerini [~ # ~] dhcp [~ # ~] adresinden aldığını varsayar; bu, bilgisayarların ağa bağlandıklarında otomatik olarak bir IP adresi alma yöntemidir. DHCP'nin ne olduğunu bilmiyorsanız, muhtemelen yaparlar.

Ağınızda ev yönlendiricisi varsa, o yönlendiriciye bağlı makineler için adları yapılandırmak için en iyi yerdir. İlk olarak, B'nin MAC adresi değerini bulmanız gerekir. Her ağ cihazının benzersiz bir MAC adresi vardır. B'de ifconfig -a komutunu çalıştırın (komut bulunmazsa /sbin/ifconfig -a'yi deneyin). Çıktı aşağıdaki gibi satırlar içerecektir:

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab

Bu örnekte MAC adresi 01:23:45:67:89:ab'dir. Bir kablo (veya wifi üzerinden bağlıysanız wifi kartı) üzerinden yönlendiriciye bağlı ağ bağlantı noktasına karşılık gelen HWaddr hattını seçmelisiniz. Birkaç girişiniz varsa ve hangisinin hangisi olduğunu bilmiyorsanız, kabloyu takın ve hangi ağ cihazının bir IP adresi aldığını görün (hemen altındaki inet addr satırı).

Şimdi, yönlendiricinizin web arayüzünde “DHCP” gibi bir ayar arayın. Ayarın adı ve konumu tamamen yönlendirici modeline bağlıdır, ancak çoğunda benzer bir dizi temel ayar bulunur. İşte bir Domates ürün yazılımı üzerinde nasıl görünüyor.

tomato screenshot

MAC adresini, bir IP adresini ve istediğiniz adı girin. Yerel ağınızın adres aralığında herhangi bir IP adresi seçebilirsiniz. Çoğu ev yönlendiricisi 192.168 formunun adres aralığı için önceden yapılandırılmıştır. x . y veya 10. x . y . z . Örneğin, yukarıda gösterilen Domates yönlendiricisinde, “Ağ” sekmesinde, 10.3.0.1 değerine sahip bir “yönlendirici IP adresi” ayarı ve 255.255.255.0 değerine sahip bir “alt ağ maskesi” ayarı vardır; yerel ağın adresi 10.3.0 olmalıdır. z . Otomatik olarak atanan DHCP adresleri için de bir dizi adres vardır (10.3.0.129–10.3.0.254); manuel olarak atanan DHCP adresiniz için bu aralıkta olmayan bir adres seçin.

Şimdi B'yi ağa bağlayın, belirttiğiniz IP adresini almalıdır ve ağdaki herhangi bir makineden belirtilen adla erişilebilir.

Dnsmasq ile kendi DNS sunucunuzu oluşturun

Yeterli bir ev yönlendiriciniz yoksa, aynı işlevselliği herhangi bir Linux makinesinde ayarlayabilirsiniz. [~ # ~] dns [~ # ~] ayarlamak için Dnsmasq nasıl kullanılacağını açıklayacağım. Başka birçok benzer program var; Dnsmasq'ı seçtim çünkü yapılandırması kolay ve hafif (örneğin, yukarıda gösterilen Domates yönlendiricisinin kullandığı şey). Dnsmasq, PC'ler, sunucular ve ağ ekipmanları için çoğu Linux ve BSD dağıtımında kullanılabilir.

Her zaman açık, statik IP adresi olan ve bir çeşit Linux veya BSD çalıştıran bir bilgisayar seçin; diyelim ki S (sunucu için). S'de, dnsmasq paketini kurun (henüz orada değilse). Aşağıda yapılandırma dosyasının /etc/dnsmasq.conf; konum bazı dağıtımlarda değişiklik gösterebilir. Şimdi birkaç şey yapmanız gerekiyor.

  • Dnsmasq'a İnternet'ten aldığı adların yanı sıra Ana Bilgisayar adlarınızı da sunmasını söyleyin. En basit yol, adları ve IP adreslerini /etc/hosts içine girmektir (yukarıdaki “Hosts dosyası” bölümüne bakın) ve /etc/dnsmasq.conf öğesinin no-hosts yönergesi önerilmedi. (Bir # ile başlayan satırlar yorumlanır.) Adları farklı bir dosyaya koyabilirsiniz; bunu yaparsanız, addn-hosts=/path/to/hosts/file içine /etc/dnsmasq.conf satırı ekleyin.
  • Dnsmasq'a İnternet'teki makine adları için IP adreslerini nasıl alacağını söyleyin.

    • Debian, Ubuntu veya türevini kullanıyorsanız, resolvconf paketini yükleyin. Çoğu durumda, her şey kutudan çıkar.
    • Ağ yöneticiniz veya İSS'niz size DNS sunucularının adreslerini verdiyse, bunları /etc/dnsmasq.conf içine girin, örneğin:

      server=8.8.8.8
      server=8.8.4.4
      
    • Geçerli DNS ayarlarınızın ne olduğunu bilmiyorsanız /etc/resolv.conf dosyasına bakın. nameserver 8.8.8.8 gibi bir satır görürseniz, server=8.8.8.8 içine /etc/dnsmasq.conf satırı ekleyin. /etc/dnsmasq.conf değiştirildikten sonra Dnsmasq'ı yeniden başlatın. Bunu yapmak için komut dağıtımına bağlıdır; tipik olasılıklar arasında restart dnsmasq veya /etc/init.d/dnsmasq restart bulunur.

  • S'ye, tüm Ana Bilgisayar adı istekleri için Dnsmasq hizmetini kullanmasını söyleyin. /etc/resolv.conf (kök olarak) dosyasını düzenleyin, her nameserver satırını kaldırın ve onun yerine nameserver 127.0.0.1 koyun.
    • Debian veya Ubuntu'da resolvconf kullanıyorsanız, resolvconf paketini ağ açık ve çalışır durumdayken kurduysanız /etc/resolv.conf yetersiz kalabilir. /etc/resolvconf/resolv.conf.d/ dizinindeki base, head ve tail dosyalarının nameserver girişi içermediğinden emin olun, ardından çalıştırın resolvconf -u (kök olarak).
  • Diğer makinelere DNS sunucusu olarak S'yi kullanmalarını söyleyin. /etc/resolv.conf 'ü düzenleyin ve tüm nameserver satırlarını tek bir nameserver 10.3.0.2 ile değiştirin; burada 10.3.0.2, S'nin IP adresidir (S'nin IP adresini nasıl bulacağınız için yukarıya bakın) .

Dnsmasq'ı ayrıca bir [~ # ~] dhcp [~ # ~] sunucu olarak da kullanabilirsiniz, böylece makineler adlarına karşılık gelen adresi otomatik olarak alabilir. Bu, bu cevabın kapsamı dışındadır; Dnsmasq belgelerine bakın (zor değil). Belirli bir yerel ağda yalnızca tek bir DHCP sunucusu olabileceğini unutmayın (yerel ağın kesin tanımı bu cevabın kapsamı dışındadır).

Global İnternet'teki isimler

Şimdiye kadar yerel bir ağ olduğunu varsaydım. Dünyanın farklı köşelerinde bir makineye bir isim vermek isterseniz ne olur? DHCP içeren parçaların yalnızca yerel bir ağ içinde geçerli olması dışında, yukarıdaki tekniklerden herhangi birini kullanmaya devam edebilirsiniz. Alternatif olarak, makinelerinizin genel IP adresleri varsa, onlar için kendi genel adınızı kaydedebilirsiniz. (Genel bir ada da özel bir IP adresi atayabilirsiniz; daha az yaygın ve daha az yararlıdır, ancak teknik bir zorluk yoktur.)

Kendi alan adınızı alma

Kendi alan adı adresini alabilir ve bu alan içindeki Ana Bilgisayar adlarına IP adresleri atayabilirsiniz. Alan adını bir alan adı sağlayıcısına kaydetmeniz gerekir; bunun maliyeti genellikle 10-15 ABD doları/yıl'dır (en ucuz alan adları için). Ana bilgisayar adlarına adres atamak için alan adı sağlayıcınızın web arayüzünü kullanın.

Dinamik DNS

Makinelerinizin dinamik bir IP adresi varsa, adres değiştiğinde makinenin adıyla ilişkili IP adresini güncellemek için dinamik DNS protokolünü kullanabilirsiniz. Tüm alan adı sağlayıcıları dinamik DNS'yi desteklemediğinden, satın almadan önce alışveriş yapın. Kişisel kullanım için, kendi alan adlarını kullanıyorsanız (örneğin example.ddns.net) IP Yok ücretsiz bir dinamik DNS hizmeti sağlar.

Çok Noktaya Yayın DNS (mDNS) kullanın. Bu, LAN alt ağlarında çalışan sıfır yapılandırma protokolüdür. Sunucu gerekmez. .local TLD (zaten kullandığınız şeydir).

Çünkü soruyorsunuz, diğer her şey aşırı dolu görünüyor. Eğer olmasaydı, muhtemelen sormazdın.

27
tne
vi /etc/dhcp3/dhclient.conf

send Host-name "ubuntu-laptop";

ve

/etc/init.d/networking restart
4
LanceBaynes

Bilgisayarlar, hangi ana bilgisayar adlarının hangi IP adreslerine ait olduğunu sihirli bir şekilde bilmez. Localhost üzerinde bile, bir tür arama vardır.

Diğer sistemlerinizi bir tür isim arama hizmeti kullanacak şekilde yapılandırmanız gerekecektir. Bu olabilir /etc/hosts istemcide, ldap, nsswitch veya normal DNS sunucularında. bind kullanıyorum ve tüm yerel makineleri yerel bir etki alanına giriyorum, sonra o site için DNS sunmasını istiyorum.

3
Caleb

Hostfile ile uğraşmak istemiyorsanız ve şans eseri bir İnternet etki alanı adınız ve İnternet erişiminiz varsa, dahili IP'nizi gösteren bir A tipi alt alan adı oluşturabilirsiniz. Örneğin kurulum intranet-pc1.someperson.com ve 10.0.1.13.

1
MK Yung