Connettiti a Linux per nome anziché per IP


18

Sono nuovo di Linux (attualmente eseguo Ubuntu 10.04) e ho appena finito di configurare l'accesso SSH alla mia macchina Linux. Attualmente, devo usare ssh root@x.x.x.xper connettermi, ma preferirei di gran lunga poter scambiare l'IP con il nome del computer (come in Windows con \\name) o un nome di dominio (come computername.example.com).

Non so davvero da dove iniziare, quindi qualsiasi aiuto sarebbe molto apprezzato. Per favore, procedi lentamente, come detto - Sono ancora nuovo in questo.


MODIFICA 1

Ho completamente dimenticato di menzionare che sto cercando di connettermi da Windows 7 (tramite PuTTY) - mi dispiace.


Stai cercando di connetterti solo dalla tua LAN o da qualsiasi parte del mondo?
Karl Bielefeldt,

6
Inoltre, FYI che consente connessioni via ssh come root è generalmente considerata una cattiva idea in termini di sicurezza. Si consiglia di accedere come utente normale e utilizzare su o sudo da lì.
Karl Bielefeldt,

Sia la mia LAN che il mondo (anche se penso di sapere come impostare l'accesso al mondo, quindi questa domanda è più per la LAN) - e il root @ era più un esempio che altro - In realtà uso un utente.
Ryall,

Un sacco di grandi risposte - grazie a tutti - anche se ho dovuto sceglierne una, quindi ho scelto la più dettagliata.
Ryall,

Risposte:


36

Protocolli di rilevamento LAN a configurazione zero, in ordine di preferenza:

  • mDNS
    • Utilizzato principalmente dai prodotti Apple e da alcuni programmi Linux, ma disponibile anche per Windows e possibilmente altre piattaforme; utilizza il multicast IP.
    • Fornisce sia la ricerca del nome che il rilevamento del servizio.
    • I nomi host sono sempre nel modulo name.local.
    • Software:
      • supportato nativamente su Windows 10.1709 e versioni successive (deve essere abilitato tramite Registro);
      • Bonjour su Windows precedenti;
      • Avahi con nss_mdnssu Linux;
      • supportato nativamente su OS X e iOS (e, presumibilmente, Android).
  • LLMNR
    • Utilizzato per la risoluzione dei nomi da Windows Vista e versioni successive, come moderna alternativa ai servizi di nomi NetBIOS.
    • Molto simile a mDNS, ma ha meno funzioni - in particolare, manca il rilevamento del servizio (per questo Windows utilizza il protocollo WS-Discovery).
    • Utilizza nomi host nudi (come NBNS, ma a differenza di mDNS).
    • Software:
      • Supportato nativamente da Windows Vista e versioni successive;
      • systemd-resolvedcon nss_resolve(parte di systemd 216) su Linux. .
  • Servizi di nomi NetBIOS
    • Parte della vecchia suite di protocolli di rete NetBIOS utilizzata da Windows, OS / 2, MS-DOS ... Ancora in uso. Non è una scusa per iniziare a usarlo su nuove reti.
    • Fornisce la risoluzione dei nomi e (in una certa misura) l'individuazione del servizio, ovvero "Risorse di rete" o "Risorse di rete" in Windows.
    • Utilizza le trasmissioni IPv4 (un po 'loquaci) e ha un protocollo di "elezione del browser" complesso e stupido per ridurre la chattiness. Nessun supporto IPv6.
    • Software:
      • Supporto nativo su Windows e OS / 2;
      • nmbdcon nss_wins(parte di Samba ) su Linux e BSD;
      • Apparentemente anche OS X lo supporta nativamente?

Metodi spesso preconfigurati per te:

  • DNS che utilizza un nome di dominio locale (interno)
    • I gateway domestici tendono ad avere questo built-in, come parte della cache DNS locale. Spesso è solo normale dnsmasq, che potresti eseguire manualmente se stai configurando un gateway basato su Linux / BSD.
    • Prendono il nome host dalla tua richiesta DHCP, lo registrano all'interno di dnsmasq in un dominio simile homee si offrono come server DNS principale (fungono da cache DNS).
    • Funziona di default con la maggior parte dei sistemi operativi, ma solo con DHCP (il gateway non conosce i nomi host di host IP statici) e generalmente tende ad essere piuttosto traballante nella mia esperienza.
    • Software:
      • Un normale client DHCP sugli host. È necessario inviare l'opzione nome host.
      • dnsmasqsul gateway. (Configurazioni più grandi potrebbero usare dhcpd+ named.)

Metodi che prevedono la configurazione manuale:

  • DNS utilizzando il tuo nome di dominio
    • Funziona ovunque. ( Tuttavia, non ti aiuterà a collegarti effettivamente a Internet.)
    • DNS dinamico possibile se si utilizza DHCP e si controlla un server DNS; altrimenti tutti i dati sono statici.
    • È necessario possedere un nome di dominio (che costerà pochi dollari).
  • sottodomini DNS gratuiti
    • Ancora DNS, solo gratuito (o molto più economico di un dominio), ma anche abbastanza limitato. Servizi come FreeDNS e Dyn offrono la registrazione di singoli sottodomini in un dominio che controllano (ad esempio myhost.dyndns.com).
      • Troppo spesso, il sottodominio è già stato scelto da qualcun altro ...
    • Gli aggiornamenti DNS dinamici sono spesso consentiti (stile DynDNS).
  • /etc/hosts
    • Un file di testo che elenca l'indirizzo IP - coppie di nomi host, che devono essere configurate manualmente su ciascun computer client.
    • ( %SystemRoot%\system32\drivers\etc\hostssu Windows)
  • Configurazione SSH
    • Il campo "Nome host" in PuTTY o ~/.ssh/configsu OpenSSH.
    • Deve essere configurato manualmente.
  • PostIt prende appunti su tutta la scrivania
    • Molto a buon mercato. Nessuna politica di denominazione. Tipi di dati infiniti.
    • Piuttosto inaffidabile. Deve essere distribuito manualmente. Nessun TTL, che spesso comporta la memorizzazione nella cache di informazioni non aggiornate per mesi fino a quando qualcuno non se ne accorge. Gli algoritmi di query sono inefficienti. Le risposte alle domande tendono a perdersi facilmente, a volte lasciando solo una traccia di colla sul monitor. (Tre mesi dopo, potresti trovarli tamponati dietro la scrivania.)

7
Ahah, mi piace l'opzione Note di PostIt :)
Ryall

1
+1 per mDNS / Avahi. Avahi è installato di default su molte distro, ma potrebbe essere un pacchetto installato per il tuo.
Broam,

1
In Debian, dovrai installare Avahi manualmente.
Martin Ueding,

2
@grawity Buona risposta. Una cosa da migliorare però: tenere presente che DNS / DHCP locale funziona perfettamente senza un dominio registrato. Basta lanciare un Raspberry PI sotto la scrivania e configurare un piccolo server con ad esempio dnsmasq.
paradosso,

1
@paradoxon: Grazie, ho dimenticato di menzionarlo. (La maggior parte dei gateway domestici esegue già dnsmasq o qualcosa di simile ma più scadente.)
user1686

4

Due opzioni.

  • Tutti i servizi:

Inserisci una voce in esso /etc/hosts. Non toccare le linee esistenti, aggiungine una nuova.

  • solo ssh:

Aggiungi una Hoststanza a ~/.ssh/configcon il nome che vuoi usare, quindi aggiungi le opzioni desiderate sotto quella. Vedi man 5 ssh_configper maggiori dettagli.

Host myserver
    Hostname 192.168.123.234
    Protocol 2

4

Se si desidera accedere alla casella Linux da un computer arbitrario, è necessario un nome di dominio. Utilizzare un servizio DNS dinamico per puntare un nome di dominio al computer Linux (o al router a cui è collegato). Una volta impostato, ti darà l'ulteriore vantaggio di non doverti preoccupare che l'IP del tuo computer Linux sia mai cambiato.


1
Giusto per chiarire, l'indirizzo IP del computer potrebbe ancora cambiare (a seconda di come il tuo ISP gestisce quella roba), ma non dovrai preoccuparti perché il servizio DNS dinamico fornisce un nome di dominio che si associa sempre a qualunque L'indirizzo IP del computer è.
David Z,

4

Da Windows 7 (per la tua modifica) ...

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

All'avvio del blocco note, vai in fondo al file e aggiungi il tuo indirizzo IP e nome host:

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

Salvare il file, quindi provare a eseguire il ping da un prompt dei comandi:

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

Funzionerà solo dalla tua LAN. Connettersi ad esso da "il mondo" (per il tuo commento aggiunto) è una bestia completamente diversa che coinvolge un DNS (dyndns, godaddy, ecc.) E una configurazione del router come (NAT) network address translation et al.


2

Avrai voglia di indagare su Samba o Winbind. La mia rete all-Linux (incluso il router) può parlare tra loro tramite il nome host, ma non sono sicuro di come dire a Windows come si chiama una macchina Linux.


1
La mia rete lo fa grazie ad Avahi (rete Zeroconf). Non conosco la fattibilità di un client / server Zeroconf su Windows.
Broam,

1

Sto anche usando Ubuntu 10.04 e posso collegarmi alle mie macchine usando il loro nome. Supponiamo che io abbia computer di nome Ernie e Bert che si trovano sulla stessa rete:

Il mio prompt appare così su ernie:

ernie:~$ 

Se scrivo questo:

ernie:~$ ssh root@bert.local

Sarò root su bert:

bert:~#

Lo faccio tra due macchine Ubuntu, ma immagino che funzionerebbe anche con lo stucco. (Non so come collegarmi a Windows da Ubuntu, vedi altre risposte su samba.)

Devi installare sshd in Ubuntu per farlo funzionare: sudo apt-get install openssh-server


1
Ciò è dovuto ad Avahi, un demone Zeroconf installato per impostazione predefinita. Non lo aiuterà su Windows, a meno che non abbia un client per qualche altro motivo (forse iTunes ne installa uno? Non posso dirlo.)
Broam
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.