Arch Linux ile .local ana bilgisayar adlarını nasıl kullanırım?


18

Ubuntu veya Linux Mint kullanıyorsam (çalıştığım ve bildiğim iki lezzet kesinlikle işe yarar), böyle bir şey çalıştırabilirim:

wayne@myhost$ ssh wayne@otherhost.local

Ve bu ad, yerel ağımdaki diğer ana makinenin IP'si ne olursa olsun otomatik olarak çözülür.

Diğer dağıtımlara dalmaya başladım ve dizüstü bilgisayarımda Arch'ı çalıştırıyorum - ama önceki komutu kullanmayı denersem Could not resolve hostname otherhost.local: Name or service not known

Bu tür otomatik ad çözümlemesinin (?) Gerçekleşmesi için ne gerekir?


5
Sen yüklemek zorunda avahiyanı sıra nss-mdnsbir göz daha fazla ayrıntı için - kemer wiki
Ulrich DANGEL

Yanıtlar:


15

Wayne'in cevabı şu anda oldukça eski. Arch beri başlangıç ​​komut dosyaları yerine systemd kullanmaya başladı. Arch wiki'nin Avahi sayfası güncellendi ve aşağıdaki adımların neden gerekli olduğuna ilişkin ayrıntılar içeriyor. Kısacası: Avahi sıfırdan oluşan bir araçtır, yani LAN'ınızın tüm makinelerine yüklendikten sonra çalışması için hiçbir yapılandırmaya ihtiyaç duymaz, ancak yazılımınızın geri kalanını yapılandırmanız gerekir, böylece Avahi'den bilgi ister.

Bunları root olarak çalıştırın veya sudobir terminalde uygun olanın başına ekleyin ve nanoistediğiniz düzenleyiciyle değiştirin .

  1. pacman -S avahi nss-mdns Avahi hizmetleri arka plan programını ve Çok Noktaya Yayın DNS çözümleyicisini yükler.
  2. nano /etc/nsswitch.conf Bu dosya C kütüphanesine ad hizmeti bilgilerinin nasıl alınacağını söyler.
  3. Satırı hosts: files dns myhostnamedeğiştirin hosts: files mdns_minimal [NOTFOUND=return] dns myhostname, kaydedin ve çıkın.
  4. systemctl start avahi-daemon Zaten önyükleme yaptığımızdan Avahi hizmetini manuel olarak başlatır.
  5. systemctl enable avahi-daemon Önyüklemede Avahi hizmetini etkinleştirir.

Bu adımları bir Arch dizüstü bilgisayarda gerçekleştirdim ve diğer makinelerimin birkaç saniye içinde keşfetmesini ve dizüstü bilgisayarımın hizmetlerini keşfetmesini sağlamak için başka hizmetleri veya wifi arayüzünü yeniden başlatmaya gerek yoktu.

Henüz ggg'nin cevabı hakkında yorum yapamadığım için, burada bir başlangıç ​​komut dosyasında bunu yapmaya gerek olmadığını belirtmek isterim - systemd'de hizmeti etkinleştirmek için budur. Bir kez yapın ve unutun.


3
Hatta adımları 4 ve 5 birleştirebilirsiniz: systemctl enable avahi-daemon --now. Bir sonraki başlatmayı beklemek yerine hizmeti hemen başlatır ve etkinleştirir.
Jonathan Komar

11

Ulrich Dangel'den Avahi hakkındaki Arch Wiki makalesinin işaretçisi sayesinde, yaptığım şey bu:

  1. Avahi ve nss-mdns yazılımını yükleyin $ sudo pacman -S avahi nss-mdns
  2. /etc/rc.d/avahi-daemon startSonuna eklerc.local
  3. Koşuyorum yana dhcpcd, içinde /etc/dhcpcd.confdışarı yorumladı noipv4llçizgi.
  4. Ben de koştum $ sudo /usr/sbin/avahi-autopid -D wlan0. Yeniden başlatmayı sevmediğim için 3. adımın gerekli olup olmadığından emin değilim.
  5. In /etc/nsswitch.confI okumak için çizgiyi ayarlamak hosts: files mdns4_minimal dns mdns4.
  6. Sonra $ sudo /etc/rc.d/dbus restartdbus'u yeniden başlatmak için koştum .

Bundan sonra, ssh wayne@other.localsadece işe yaradı.


1
İkinci noktanıza ilişkin olarak: /etc/rc.conf
Wieland

Bunu düşündüm, ama wiki bazı insanların rc.conf'da çok hızlı başlayıp sonuçta başarısız olduğunu ve bunun yaptığım yere yerleştirmenin bir düzeltme olduğunu belirtti.
Wayne Werner

2

Bence gerek sanmıyorum avahi-daemonkullanmak çalışan .local. Başlangıç ​​betiğimde ne için var. Bu Arch Wiki'nin yöntemine kıyasla çok daha basit.

systemctl enable avahi-daemon
avahi-set-host-name $(hostname)
systemctl disable avahi-daemon
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.