Linux'a IP yerine adıyla bağlanma


18

Linux'ta yeniyim (şu anda Ubuntu 10.04 çalışıyor) ve Linux Makineme SSH erişimini ayarlamayı yeni bitirdim. Şu anda, ssh root@x.x.x.xbağlanmak için kullanmak zorundayım, ancak bilgisayar adı (Windows ile olduğu gibi \\name) veya bir etki alanı adı (gibi computername.example.com) için IP'yi değiştirmeyi tercih ederim .

Nereden başlayacağımı gerçekten bilmiyorum, bu yüzden herhangi bir yardım en çok takdir edilecektir. Lütfen belirtildiği gibi yavaş gidin - Ben hala bu konuda yeniyim.


DÜZENLEME 1

Tamamen Windows 7'den (PuTTY aracılığıyla) bağlanmaya çalıştığımı belirtmeyi unuttum - üzgünüm.


Sadece LAN'ınızdan mı yoksa dünyanın herhangi bir yerinden mi bağlanmaya çalışıyorsunuz?
Karl Bielefeldt

6
Ayrıca, kök olarak ssh üzerinden bağlantılara izin veren FYI genellikle güvenlik açısından kötü bir fikir olarak kabul edilir. Normal bir kullanıcı olarak oturum açmanız ve oradan su veya sudo kullanmanız önerilir.
Karl Bielefeldt

Hem LAN'ım hem de dünyam (dünya erişimini nasıl ayarlayacağımı düşünüyorum, bu yüzden bu soru LAN için daha fazla) - ve root @ her şeyden daha fazla örnekti - aslında bir kullanıcı kullanıyorum.
Ryall

Herkese teşekkürler - harika cevaplar bir tane seçmek zorunda kaldım, bu yüzden en ayrıntılı olanı seçtim.
Ryall

Yanıtlar:


36

Tercih sırasına göre sıfır konfigürasyonlu LAN keşif protokolleri:

  • mDNS
    • Öncelikle Apple ürünleri ve bazı Linux programları tarafından kullanılır, ancak Windows ve muhtemelen diğer platformlar için de kullanılabilir; IP çok noktaya yayın kullanır.
    • Hem ad arama hem de hizmet keşfi sağlar.
    • Ana bilgisayar adları her zaman formdadır name.local.
    • Yazılım:
      • Windows 10.1709 ve sonraki sürümlerde yerel olarak desteklenir (Kayıt Defteri aracılığıyla etkinleştirilmelidir);
      • Eski Windows'ta Bonjour ;
      • Avahi ile nss_mdnsLinux üzerinde;
      • OS X ve iOS'ta (ve sözde Android) yerel olarak desteklenmektedir.
  • LLMNR
    • NetBIOS ad hizmetlerine modern bir alternatif olarak Windows Vista ve üstü tarafından ad çözümlemesi için kullanılır.
    • MDNS'ye çok benzer, ancak daha az özelliğe sahiptir - özellikle, hizmet keşfinden yoksundur (Windows bunun için WS-Discovery protokolünü kullanır).
    • Çıplak ana bilgisayar adlarını kullanır (NBNS gibi, ancak mDNS'den farklı olarak).
    • Yazılım:
      • Windows Vista ve üstü tarafından yerel olarak desteklenir;
      • systemd-resolvedile nss_resolveLinux üzerinde (systemd 216 parçası). .
  • NetBIOS ad hizmetleri
    • Bir kısmı eski Still kullanımda, Windows, OS / 2, MS-DOS ... tarafından kullanılan NetBIOS ağ protokolü paketi. Yeni ağlarda kullanmaya başlamak için bir bahane değil.
    • Windows'da ad çözümlemesi ve (bir dereceye kadar) hizmet keşfi sağlar - diğer bir deyişle "Ağ Komşuları" veya "Ağ Bağlantılarım".
    • IPv4 yayınlarını (biraz konuşkan) kullanır ve konuşmayı azaltmak için kendi karmaşık ve aptal "tarayıcı seçimi" protokolüne sahiptir. Hiç IPv6 desteği yok.
    • Yazılım:
      • Windows ve OS / 2'de yerel olarak desteklenir;
      • nmbdile nss_wins(bir parçası Samba Linux ve BSD en üstünde);
      • Görünüşe göre OS X yerel olarak da destekliyor mu?

Sizin için önceden yapılandırılmış yöntemler:

  • Yerel (dahili) alan adı kullanan DNS
    • Ev ağ geçitleri, yerel DNS önbelleğinin bir parçası olarak bu yerleşikliğe sahip olma eğilimindedir. Genellikle dnsmasqLinux / BSD tabanlı bir ağ geçidi kurarsanız manuel olarak çalıştırabileceğiniz normaldir.
    • Ana bilgisayar adını DHCP isteğinizden alırlar, dnsmasq içine benzer bir alan adı altında kaydederler homeve kendilerini ana DNS sunucusu olarak sunarlar (DNS önbellek görevi görürler).
    • Varsayılan olarak çoğu işletim sistemiyle çalışır, ancak yalnızca DHCP (ağ geçidi statik IP ana bilgisayarlarının ana bilgisayar adlarını bilmez) ve genellikle benim deneyimimde oldukça kesintili olma eğilimindedir.
    • Yazılım:
      • Ana bilgisayarlarda düzenli bir DHCP istemcisi. Ana bilgisayar adı seçeneği gönderilmelidir.
      • dnsmasqağ geçidinde. (Daha büyük kurulumlar dhcpd+ kullanabilir named.)

Manuel yapılandırmayı içeren yöntemler:

  • Kendi alan adınızı kullanarak DNS
    • Her yerde çalışır. ( Yine de internet üzerinden bağlanmanıza yardımcı olmaz .)
    • DHCP kullanıyorsanız ve bir DNS sunucusunu kontrol ediyorsanız Dinamik DNS mümkündür; aksi takdirde tüm veriler statiktir.
    • Bir alan adına sahip olmanız gerekir (bu birkaç dolara mal olacaktır).
  • ücretsiz DNS alt alanları
    • Hala DNS, sadece ücretsiz (veya bir alan adından çok daha ucuz), ama aynı zamanda oldukça sınırlı. FreeDNS ve Dyn gibi hizmetler , bağımsız alt alan adlarının kontrol ettikleri bir alan adı altında kaydedilmesini sağlar (örneğin myhost.dyndns.com).
      • Çok sık olarak, alt alan zaten başka biri tarafından seçildi ...
    • Dinamik DNS güncellemelerine genellikle izin verilir (DynDNS stili).
  • /etc/hosts
    • IP adresini listeleyen bir metin dosyası - her istemci makinede manuel olarak yapılandırılması gereken ana bilgisayar adı çiftleri.
    • ( %SystemRoot%\system32\drivers\etc\hostsWindows'ta)
  • SSH yapılandırması
    • PuTTY veya ~/.ssh/configOpenSSH üzerindeki "Ana bilgisayar adı" alanı .
    • Manuel olarak yapılandırılmalıdır.
  • Post Masanızın her yerine notlar
    • Çok ucuz. Adlandırma politikası yok. Sonsuz veri türleri.
    • Oldukça güvenilmez. Manuel olarak dağıtılmalıdır. Birisi fark edene kadar aylarca eski bilgilerin önbelleğe alınmasına neden olan TTL yoktur. Sorgu algoritmaları verimsizdir. Sorgulara verilen yanıtlar kolayca kaybolma eğilimindedir ve bazen monitörünüzde sadece tutkal kaydı bırakır. (Üç ay sonra, masanızın arkasında tamponlanmış bulabilirsiniz.)

7
Haha, PostIt notları seçeneğini beğeniyorum :)
Ryall

1
MDNS / Avahi için +1. Avahi varsayılan olarak birçok dağıtımda yüklüdür, ancak sizin için bir paket yüklemesi olabilir.
Broam

1
Debian'da Avahi'yi manuel olarak kurmanız gerekecek.
Martin Ueding

2
@grawity İyi cevap. Geliştirilmesi gereken bir şey var: Yerel DNS / DHCP'nin kayıtlı bir etki alanı olmadan mükemmel bir şekilde çalıştığını unutmayın. Masanızın altına bir Raspberry PI atın ve örneğin dnsmasq ile küçük bir sunucu kurun.
paradoxon

1
@paradoxon: Teşekkürler, bundan bahsetmeyi unuttum. (Çoğu ev ağ geçidi zaten dnsmasq veya benzer ama daha crappier çalıştırın.)
user1686

4

İki seçenek.

  • Tüm hizmetler:

Bunun için bir giriş koyun /etc/hosts. Mevcut satırlara dokunmayın, yeni bir satır ekleyin.

  • sadece ssh:

HostKullanmak ~/.ssh/configistediğiniz ada bir stanza ekleyin, ardından bunun altına istediğiniz seçenekleri ekleyin. Daha man 5 ssh_configfazla bilgi için bakınız.

Host myserver
    Hostname 192.168.123.234
    Protocol 2

4

Linux kutusuna rasgele bir bilgisayardan erişmek istiyorsanız, bir etki alanı adına ihtiyacınız olacaktır. Bir etki alanı adını Linux bilgisayarınıza (veya bağlı olduğu yönlendiriciye) yönlendirmek için dinamik bir DNS hizmeti kullanın. Bunu kurduktan sonra, Linux bilgisayarınızın IP'sinin sürekli değiştiği konusunda endişelenmenize gerek kalmadan ek bir fayda sağlar.


1
Açıklığa kavuşturmak için, bilgisayarın IP adresi yine de değişebilir (ISS'nizin bu şeyleri nasıl yönettiğine bağlı olarak), ancak dinamik DNS hizmeti her zaman geçerli olanla eşlenen bir alan adı sağladığından endişelenmenize gerek yoktur. Bilgisayarın IP adresi.
David Z

4

Windows 7'den (düzenlemenize göre) ...

Start -> Run -> notepad c:\windows\system32\drivers\etc\hosts

Not defteri başladığında, dosyanın altına gidin ve ip adresinizi ve ana bilgisayar adınızı ekleyin:

x.x.x.x    mylinuxhostname mylinuxhostname.domain.com

Dosyayı kaydedin, ardından komut isteminden ping komutunu deneyin:

c:\> ping mylinuxhostname
c:\> ping mylinuxhostname.domain.com

Bu yalnızca LAN'ınızdan çalışır. "Dünyadan" (eklenen yorum başına) ona bağlanmak, bir DNS (dyndns, godaddy, vb.) Ve (NAT) ağ adresi çevirisi vb. Gibi yönlendirici yapılandırmasını içeren tamamen farklı bir canavardır.


2

Samba veya Winbind'ı araştırmak isteyeceksiniz. Tüm Linux ağım (yönlendirici dahil) ana bilgisayar adıyla birbiriyle konuşabilir, ancak Windows'a bir Linux makinesinin adının ne olduğunu nasıl söyleyeceğimi bilmiyorum.


1
Ağım bunu Avahi (Zeroconf ağı) nedeniyle yapıyor. Windows'ta bir Zeroconf istemcisi / sunucusunun uygulanabilirliğini bilmiyorum.
Broam

1

Ayrıca Ubuntu 10.04 kullanıyorum ve makinelerime isimlerini kullanarak bağlanabiliyorum. Aynı ağda ernie ve bert adlı bilgisayarlarım olduğunu varsayalım:

İstemim ernie'de şöyle görünüyor:

ernie:~$ 

Bunu yazarsam:

ernie:~$ ssh root@bert.local

Ben bert kök olacak:

bert:~#

Bunu iki ubuntu makinesi arasında yapıyorum, ama sanırım macunla da işe yarayacaktı. (Ubuntu'dan pencerelere bağlanma hakkında bilmiyorum, samba ile ilgili diğer cevaplara bakın.)

Bunun çalışması için Ubuntu'da sshd'yi yüklemelisiniz: sudo apt-get install openssh-server


1
Bunun nedeni, varsayılan olarak yüklenmiş bir Zeroconf arka plan programı olan Avahi'dir. Başka bir nedenden dolayı bir istemcisi yoksa, Windows'ta ona yardım etmeyecektir (belki iTunes bir tane yükler mi? Söyleyemem.)
Broam
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.