Sambungkan ke Linux dengan nama daripada IP


18

Saya baru mengenal Linux (saat ini menjalankan Ubuntu 10.04) dan saya baru saja selesai mengatur akses SSH ke Mesin Linux saya. Saat ini, saya harus menggunakan ssh root@x.x.x.xuntuk menghubungkan tetapi lebih suka dapat menukar IP untuk nama komputer (seperti pada Windows dengan \\name) atau nama domain (seperti computername.example.com).

Saya tidak benar-benar tahu harus mulai dari mana sehingga bantuan apa pun akan sangat dihargai. Silakan berjalan perlahan, seperti yang disebutkan - saya masih baru dalam hal ini.


EDIT 1

Benar-benar lupa menyebutkan bahwa saya mencoba untuk terhubung dari Windows 7 (via Putty) - maaf.


Apakah Anda mencoba terhubung hanya dari dalam LAN Anda atau dari mana saja di dunia?
Karl Bielefeldt

6
Juga, FYI memungkinkan koneksi melalui ssh sebagai root umumnya dianggap sebagai ide yang buruk dari segi keamanan. Disarankan untuk masuk sebagai pengguna biasa dan menggunakan su atau sudo dari sana.
Karl Bielefeldt

Baik LAN saya dan dunia (meskipun saya pikir saya tahu cara mengatur akses dunia sehingga pertanyaan ini lebih untuk LAN) - dan root @ lebih banyak contoh daripada apa pun - saya benar-benar menggunakan pengguna.
Ryall

Banyak jawaban bagus - terima kasih untuk semua orang - meskipun saya harus memilih satu jadi saya memilih yang paling detail.
Ryall

Jawaban:


36

Protokol penemuan LAN konfigurasi nol, dalam urutan pilihan:

  • mDNS
    • Digunakan terutama oleh produk Apple dan beberapa program Linux, tetapi juga tersedia untuk Windows dan mungkin platform lain; menggunakan IP multicast.
    • Menyediakan pencarian nama dan penemuan layanan.
    • Nama host selalu dalam formulir name.local.
    • Perangkat lunak:
      • didukung secara native pada Windows 10.1709 dan yang lebih baru (harus diaktifkan melalui Registry);
      • Bonjour di Windows yang lebih lama;
      • Avahi dengan nss_mdnsdi Linux;
      • didukung secara native pada OS X dan iOS (dan, seharusnya, Android).
  • LLMNR
    • Digunakan untuk resolusi nama oleh Windows Vista dan di atasnya, sebagai alternatif modern untuk layanan nama NetBIOS.
    • Sangat mirip dengan mDNS, tetapi memiliki lebih sedikit fitur - khususnya, tidak memiliki penemuan layanan (Windows menggunakan protokol WS-Discovery untuk itu).
    • Menggunakan nama host kosong (seperti NBNS, tetapi tidak seperti mDNS).
    • Perangkat lunak:
      • Didukung secara asli oleh Windows Vista dan yang lebih baru;
      • systemd-resolveddengan nss_resolve(bagian dari systemd 216) di Linux. .
  • Layanan nama NetBIOS
    • Bagian dari rangkaian protokol jaringan NetBIOS lama yang digunakan oleh Windows, OS / 2, MS-DOS ... Masih digunakan. Bukan alasan untuk mulai menggunakannya di jaringan baru.
    • Memberikan resolusi nama dan (sampai batas tertentu) penemuan layanan - alias "Network Neighborhood" atau "My Network Places" di Windows.
    • Menggunakan siaran IPv4 (agak cerewet), dan memiliki protokol "pemilihan browser" yang rumit dan bodoh untuk mengurangi obrolan. Tidak ada dukungan IPv6 sama sekali.
    • Perangkat lunak:
      • Didukung secara asli pada Windows dan OS / 2;
      • nmbddengan nss_wins(bagian dari Samba ) di Linux dan BSD;
      • Rupanya OS X mendukungnya secara asli juga?

Metode yang sering dipra-konfigurasi untuk Anda:

  • DNS menggunakan nama domain lokal (internal)
    • Gateway rumah cenderung memiliki built-in ini, sebagai bagian dari cache DNS lokal. Seringkali ini hanya biasa dnsmasq, yang dapat Anda jalankan secara manual jika Anda sedang mengatur gateway berbasis Linux / BSD.
    • Mereka mengambil nama host dari permintaan DHCP Anda, mendaftarkannya dalam dnsmasq di bawah domain seperti home, dan menawarkan diri mereka sebagai server DNS utama (bertindak sebagai cache DNS).
    • Bekerja secara default dengan sebagian besar sistem operasi, tetapi hanya dengan DHCP (gateway tidak tahu nama host host statis-IP), dan umumnya cenderung agak serpih dalam pengalaman saya.
    • Perangkat lunak:
      • Klien DHCP biasa di host. Harus mengirim opsi nama host.
      • dnsmasqdi gateway. (Pengaturan yang lebih besar dapat menggunakan dhcpd+ named.)

Metode yang melibatkan konfigurasi manual:

  • DNS menggunakan nama domain Anda sendiri
    • Bekerja di mana saja. (Namun, tidak akan membantu Anda untuk benar-benar terhubung melalui Internet.)
    • DNS dinamis dimungkinkan jika Anda menggunakan DHCP dan mengontrol server DNS; jika tidak semua data statis.
    • Perlu memiliki nama domain (yang akan dikenakan biaya beberapa dolar).
  • subdomain DNS gratis
    • Masih DNS, cuma gratis (atau jauh lebih murah daripada domain), tetapi juga cukup terbatas. Layanan seperti FreeDNS dan Dyn menawarkan pendaftaran masing-masing subdomain di bawah domain yang mereka kontrol (misalnya myhost.dyndns.com).
      • Terlalu sering, subdomain sudah dipilih oleh orang lain ...
    • Pembaruan DNS dinamis sering diizinkan (gaya DynDNS).
  • /etc/hosts
    • File teks yang mencantumkan alamat IP - pasangan hostname, yang harus dikonfigurasikan secara manual pada setiap mesin klien.
    • ( %SystemRoot%\system32\drivers\etc\hostsdi Windows)
  • Konfigurasi SSH
    • Bidang "Hostname" di Putty, atau ~/.ssh/configdi OpenSSH.
    • Harus dikonfigurasikan secara manual.
  • Catatan PostIt di seluruh meja Anda
    • Sangat murah. Tidak ada kebijakan penamaan. Jenis data tak terbatas.
    • Agak tidak bisa diandalkan. Harus didistribusikan secara manual. Tidak ada TTL, yang sering mengakibatkan informasi basi di-cache selama berbulan-bulan sampai seseorang melihat. Algoritme kueri tidak efisien. Respons terhadap pertanyaan cenderung hilang dengan mudah, kadang-kadang hanya menyisakan catatan lem pada monitor Anda. (Tiga bulan kemudian, Anda mungkin menemukan mereka di belakang meja Anda.)

7
Haha, saya suka opsi catatan PostIt :)
Ryall

1
+1 untuk mDNS / Avahi. Avahi diinstal secara default pada banyak distro, tetapi mungkin merupakan paket yang diinstal untuk Anda.
Broam

1
Di Debian, Anda harus menginstal Avahi secara manual.
Martin Ueding

2
@ kegembiraan Jawaban yang bagus. Satu hal yang perlu diperbaiki: Perlu diingat bahwa DNS / DHCP lokal berfungsi dengan baik tanpa domain terdaftar. Cukup melempar Raspberry PI di bawah meja Anda dan mengatur server kecil dengan mis dnsmasq.
paradoxon

1
@paradoxon: Terima kasih, saya lupa menyebutkan itu. (Sebagian besar gateway rumah sudah menjalankan dnsmasq atau yang serupa tetapi lebih
jelek

4

Dua pilihan.

  • Semua layanan:

Masukkan entri untuk itu /etc/hosts. Jangan menyentuh garis yang ada, tambahkan yang baru.

  • ssh saja:

Tambahkan Hostbait ~/.ssh/configdengan nama yang ingin Anda gunakan, lalu tambahkan opsi yang diinginkan di bawahnya. Lihat man 5 ssh_configuntuk lebih jelasnya.

Host myserver
    Hostname 192.168.123.234
    Protocol 2

4

Jika Anda ingin mengakses kotak Linux dari komputer yang sewenang-wenang, Anda perlu nama domain. Gunakan layanan DNS dinamis untuk mengarahkan nama domain ke komputer Linux Anda (atau router yang terhubung dengannya). Setelah Anda mengatur ini, itu akan memberi Anda manfaat tambahan karena tidak perlu khawatir tentang IP komputer Linux Anda yang selalu berubah.


1
Hanya untuk memperjelas, alamat IP komputer mungkin masih berubah (tergantung pada bagaimana ISP Anda mengatur hal itu), tetapi Anda tidak perlu khawatir tentang hal itu karena layanan DNS dinamis memberikan nama domain yang selalu memetakan ke apa pun saat ini Alamat IP komputer adalah.
David Z

4

Dari Windows 7 (per hasil edit Anda) ...

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

Saat notepad dimulai, buka bagian bawah file dan tambahkan alamat ip dan nama host Anda:

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

Simpan file, lalu coba ping dari prompt perintah:

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

Ini hanya akan bekerja dari LAN Anda. Menghubungkannya dari "dunia" (per komentar Anda ditambahkan) adalah binatang yang sama sekali berbeda yang melibatkan DNS (dyndns, godaddy, dll) dan konfigurasi router seperti (NAT) terjemahan alamat jaringan dkk.


2

Anda akan ingin menyelidiki Samba atau Winbind. Jaringan all-Linux saya (termasuk router) dapat saling berbicara dengan nama host, tetapi saya tidak yakin bagaimana cara memberitahu Windows apa nama mesin Linux itu.


1
Jaringan saya melakukan ini karena Avahi (jaringan Zeroconf). Saya tidak tahu kelangsungan klien / server Zeroconf pada Windows.
Broam

1

Saya juga menggunakan Ubuntu 10,04 dan saya dapat terhubung ke mesin saya menggunakan nama mereka. Katakanlah saya memiliki komputer bernama ernie dan bert yang ada di jaringan yang sama:

Prompt saya terlihat seperti ini di ernie:

ernie:~$ 

Jika saya mengetik ini:

ernie:~$ ssh root@bert.local

Saya akan root pada bert:

bert:~#

Saya melakukan ini di antara dua mesin ubuntu, tapi saya kira itu akan bekerja di dempul juga. (Saya tidak tahu tentang koneksi ke windows dari Ubuntu, lihat jawaban lain tentang samba.)

Anda harus menginstal sshd di Ubuntu agar ini berfungsi: sudo apt-get install openssh-server


1
Ini karena Avahi, daemon Zeroconf yang diinstal secara default. Ini tidak akan membantunya di Windows, kecuali dia memiliki klien karena beberapa alasan lain (mungkin iTunes menginstalnya? Saya tidak bisa mengatakannya.)
Broam
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.