it-swarm-eu.dev

Jak učinit stroj přístupným z LAN pomocí jeho hostname

Zde jsou podrobnosti o počítači, ke kterému chci přistupovat pomocí svého hostitele:

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

Je to implicitní instalace Debian 6 (Squeeze), takže jsem se s ničím ještě necítil.

To je to, co dostanu ze stroje (běží na Debian Unstable), který se pokouší získat přístup nad stroj:

$ 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

Na internetu, včetně místních sítí, se stroje navzájem volají IP adresy . Aby bylo možné získat přístup ke stroji B ze stroje A pomocí názvu stroje B, musí stroj A určitým způsobem namapovat jméno B na jeho IP adresu. Názvy strojů na A lze deklarovat třemi způsoby:

  • a soubor hosts . Toto je jednoduchý textový soubor, který mapuje jména na adresy.
  • systém názvů domén (DNS) . Toto je metoda používaná na globálním internetu. Například, když načtete tuto stránku do prohlížeče, první věc, kterou váš počítač udělá, je vytvořit požadavek DNS, aby znal adresu unix.stackexchange.com.
  • jiné databáze jmen, například NIS , LDAP nebo Active Directory . Používají se v některých podnikových sítích, ale ne příliš často (mnoho sítí, které pro uživatelské databáze používají NIS, LDAP nebo AD, používají DNS pro názvy strojů). Pokud vaše síť používá některou z těchto sítí, máte profesionálního správce sítě a měli byste se ho zeptat, co má dělat.

Existuje mnoho způsobů, jak mohou fungovat v praxi; je nemožné je všechny pokrýt. V této odpovědi popíšu několik běžných situací.

Soubor hosts

Metoda souboru hosts má výhodu v tom, že nevyžaduje žádnou speciální metodu. To může být těžkopádné, pokud máte několik počítačů, protože musíte změnit každý počítač, když se změní název jednoho počítače. Není vhodné, pokud je IP adresa B přiřazována dynamicky (takže při každém připojení k síti získáte jinou).

Soubor hosts je jednoduchý seznam názvů řádků mapujících názvy na adresy IP. Vypadá to takto:

127.0.0.1       localhost localhost.localdomain
198.51.100.42   darkstar darkstar.bands

V unixových systémech je soubor hosts /etc/hosts. V systému Windows je to c:\windows\system32\drivers\etc\hosts. Téměř každý operační systém, který se můžete připojit k internetu, má podobný soubor; Wikipedia má seznam .

Chcete-li přidat položku pro B do souboru hostitelů A:

  1. Určete IP adresu B. Na B spusťte příkaz ifconfig (pokud není příkaz nalezen, zkuste /sbin/ifconfig). Výstup bude obsahovat následující řádky:

    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
    

    V tomto příkladu je IP adresa B 10.3.1.42. Pokud existuje několik řádků inet addr:, Vyberte ten, který odpovídá vaší síťové kartě, nikdy položku lo nebo tunel nebo virtuální položku.

  2. Upravte soubor hosts na A. Pokud A provozuje nějaký unixový systém, budete muset jako super uživatele upravit /etc/hosts; viz Jak spustím příkaz jako správce systému (root) .

DHCP + DNS v domácí nebo malé kancelářské síti

Tato metoda je zdaleka nejjednodušší, pokud máte potřebné vybavení. Stačí nakonfigurovat pouze jedno zařízení a všechny počítače budou vědět o jménech ostatních. Tato metoda předpokládá, že vaše počítače získají své IP adresy přes DHCP , což je způsob, jak počítače automaticky získají IP adresu, když se připojí k síti. Pokud nevíte, co je DHCP, pravděpodobně to udělá.

Pokud má vaše síť domácí router , je to nejlepší místo pro konfiguraci názvů pro stroje připojené k tomuto routeru. Nejprve musíte zjistit MAC adresa z B. Každé síťové zařízení má jedinečnou MAC adresu. Na B spusťte příkaz ifconfig -a (Pokud není příkaz nalezen, zkuste /sbin/ifconfig -a). Výstup bude obsahovat následující řádky:

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

V tomto příkladu je MAC adresa 01:23:45:67:89:ab. Musíte vybrat linku HWaddr, která odpovídá síťovému portu, který je připojen ke směrovači kabelem (nebo kartou WiFi, pokud jste připojeni přes wifi). Pokud máte několik položek a nevíte, který je, připojte kabel a zjistěte, které síťové zařízení přijímá IP adresu (řádek inet addr Těsně níže).

Nyní na webovém rozhraní routeru vyhledejte nastavení jako „DHCP“. Název a umístění nastavení je zcela závislé na modelu routeru, ale většina má podobnou sadu základních nastavení. Jak to vypadá na firmware rajčete :

tomato screenshot

Zadejte MAC adresu, IP adresu a požadované jméno. Můžete vybrat libovolnou adresu IP v rozsahu adres vaší místní sítě. Většina domácích směrovačů je předkonfigurována pro rozsah adres ve tvaru 192.168. x. y nebo 10. x. = = y. z. Například na výše uvedeném routeru Tomato na kartě „Síť“ je nastavení „IP adresa routeru“ s hodnotou 10.3.0.1 a nastavení „maska ​​podsítě“ s hodnotou 255.255.255.0, což znamená, že počítače lokální síť musí mít adresu ve tvaru 10.3.0. z. K dispozici je také řada adres pro automaticky přiřazené adresy DHCP (10.3.0.129–10.3.0.254); pro ručně přiřazenou adresu DHCP vyberte adresu, která není v tomto rozsahu.

Nyní připojte B k síti a měla by získat IP adresu, kterou jste zadali, a bude dosažitelná zadaným jménem z jakéhokoli počítače v síti.

Vytvořte si vlastní DNS server pomocí Dnsmasq

Pokud nemáte domácí směrovač, můžete nastavit stejnou funkci na jakémkoli počítači se systémem Linux. Vysvětlím, jak používat Dnsmasq k nastavení DNS . Existuje mnoho dalších podobných programů; Vybral jsem si Dnsmasq, protože je snadno konfigurovatelný a lehký (například to, co používá výše uvedený router Tomato). Dnsmasq je k dispozici ve většině distribucí Linux a BSD pro PC, servery a síťová zařízení.

Vyberte počítač, který je vždy zapnutý, má statickou IP adresu a používá nějaký druh Linuxu nebo BSD; Řekněme tomu S (pro server). Na S nainstalujte balíček dnsmasq (pokud tam již není). Níže předpokládám, že konfigurační soubor je /etc/dnsmasq.conf; umístění se může lišit v závislosti na distribuci. Nyní musíte udělat několik věcí.

  • Řekněte společnosti Dnsmasq, aby kromě názvů, které získává z internetu, obsloužila vaše hostitelská jména. Nejjednodušší způsob je zadat jména a adresy IP do /etc/hosts (Viz výše uvedený oddíl „Soubor hosts“) a ujistěte se, že /etc/dnsmasq.conf Nemá směrnici no-hosts nekompromisní. (Řádky začínající znakem # Jsou komentovány.) Jména můžete vložit do jiného souboru; pokud tak učiníte, vložte do addn-hosts=/path/to/hosts/file řádek /etc/dnsmasq.conf.
  • Řekněte Dnsmasq, jak získat IP adresy pro názvy strojů na internetu.

    • Pokud používáte Debian, Ubuntu nebo odvozený soubor, nainstalujte balíček resolvconf. Ve většině případů bude vše fungovat mimo krabici.
    • Pokud vám správce sítě nebo poskytovatel služeb Internetu poskytl adresy serverů DNS, zadejte je do /etc/dnsmasq.conf, Například:

      server=8.8.8.8
      server=8.8.4.4
      
    • Pokud nevíte, jaké jsou vaše aktuální nastavení DNS, podívejte se do souboru /etc/resolv.conf. Pokud uvidíte řádek jako nameserver 8.8.8.8, Vložte do server=8.8.8.8 Řádek /etc/dnsmasq.conf. Po změně /etc/dnsmasq.conf Restartujte Dnsmasq. Příkaz k tomu závisí na distribuci; typické možnosti zahrnují restart dnsmasq nebo /etc/init.d/dnsmasq restart.

  • Řekněte S, aby použila službu Dnsmasq pro všechny požadavky na jméno hostitele. Upravte soubor /etc/resolv.conf (Jako root), odeberte každý řádek nameserver a místo něj vložte nameserver 127.0.0.1.
    • Pokud používáte resolvconf na Debianu nebo Ubuntu, může být /etc/resolv.conf Suboptimální, pokud jste nainstalovali balíček resolvconf se spuštěnou sítí. Ujistěte se, že soubory base, head a tail v adresáři /etc/resolvconf/resolv.conf.d/ Neobsahují žádné položky nameserver, potom spusťte resolvconf -u (Jako root).
  • Řekněte ostatním počítačům, aby používaly S jako server DNS. Upravte /etc/resolv.conf A nahraďte všechny řádky nameserver jediným nameserver 10.3.0.2, Kde 10.3.0.2 je IP adresa S (viz výše, jak zjistit IP adresu S).

Můžete také použít Dnsmasq jako DHCP server, takže stroje mohou získat adresu odpovídající jejich jménu automaticky. To je nad rámec této odpovědi; podívejte se do dokumentace Dnsmasq (není to obtížné). Upozorňujeme, že v dané místní síti může být pouze jeden server DHCP (přesná definice místní sítě je mimo rozsah této odpovědi).

Názvy na globálním internetu

Zatím jsem předpokládal místní síť. Co když chcete pojmenovat stroj, který je v jiném koutě světa? Stále můžete použít kteroukoli z výše uvedených technik, kromě toho, že části týkající se DHCP jsou použitelné pouze v místní síti. Pokud vaše stroje mají veřejné adresy IP, můžete si také zaregistrovat své veřejné veřejné jméno. (Můžete také přiřadit soukromou IP adresu veřejnému jménu; je to méně časté a méně užitečné, ale neexistují žádné technické problémy.)

Získání vlastního názvu domény

Můžete získat svůj vlastní název domény a přiřadit IP adresy k názvům hostitelů uvnitř této domény. Musíte zaregistrovat doménové jméno u poskytovatele doménových jmen; to obvykle stojí 10–15 $/rok (pro nejlevnější domény). Pomocí webového rozhraní vašeho poskytovatele doménových jmen můžete přiřadit adresy k názvům hostitelů.

Dynamický DNS

Pokud vaše počítače mají dynamickou IP adresu, můžete pomocí protokolu dynamický DNS aktualizovat IP adresu spojenou s názvem stroje, když se adresa změní. Ne všichni poskytovatelé doménových jmen podporují dynamický DNS, takže nakupujte před nákupem. Pro osobní použití No-IP poskytuje bezplatnou dynamickou službu DNS, pokud používáte vlastní domény (např. example.ddns.net).

Použijte Multicast DNS (mDNS). Jedná se o protokol nulové konfigurace, který pracuje na podsítích LAN. Není vyžadován žádný server. Používá .local TLD (což už používáte).

Protože se ptáte, zdá se, že všechno ostatní je zbytečné. Pokud tomu tak nebylo, pravděpodobně byste se neptali.

27
tne
vi /etc/dhcp3/dhclient.conf

send Host-name "ubuntu-laptop";

a

/etc/init.d/networking restart
4
LanceBaynes

Počítače jen magicky nevědí, jaké názvy hostitelů patří ke kterým IP adresátům. Dokonce i na localhost, tam je nějaký druh vyhledávání zapojen.

Budete muset nakonfigurovat své další systémy, aby používaly nějakou službu vyhledávání jmen. To může být /etc/hosts na klientském, ldap, nsswitch nebo běžném DNS serveru. Používám bind a zadávám všechny lokální počítače v lokální doméně, poté nechám sloužit DNS pro tento web.

3
Caleb

Pokud se nechcete spojovat s hostitelským souborem a náhodou vlastníte název internetové domény a přístup k internetu, můžete vytvořit subdoménu typu A, která ukazuje na vaši interní IP. Například nastavení intranet-pc1.someperson.com a ukazuje na 10.0.1.13.

1
MK Yung