16

Я новичок в Linux (в настоящее время использую Ubuntu 10.04) и только что завершил настройку SSH-доступа к моей Linux-машине. В настоящее время мне нужно использовать ssh root@x.x.x.x для подключения, но я бы предпочел поменять местами IP-адрес компьютера (например, в Windows с \\name) или имя домена (например, computername.example.com).

Я действительно не знаю, с чего начать, поэтому любая помощь будет наиболее ценной. Пожалуйста, идите медленно, как уже упоминалось - я все еще новичок в этом.


РЕДАКТИРОВАТЬ 1

Полностью забыл упомянуть, что я пытаюсь подключиться из Windows 7 (через PuTTY) - извините.

6 ответов6

33

Протоколы обнаружения локальной сети с нулевой конфигурацией, в порядке предпочтения:

  • MDNS
    • Используется в основном продуктами Apple и некоторыми программами Linux, но также доступен для Windows и, возможно, других платформ; использует многоадресную IP-рассылку.
    • Обеспечивает как поиск имени, так и обнаружение службы.
    • Имена хостов всегда в форме name.local .
    • Программного обеспечения:
      • Добрый день на Windows;
      • Avahi с nss_mdns на Linux;
      • изначально поддерживается на OS X и iOS (и, предположительно, Android).
  • LLMNR
    • Используется для разрешения имен в Windows Vista и выше, как современная альтернатива службам имен NetBIOS.
    • Очень похоже на mDNS, но имеет меньше возможностей - в частности, отсутствует обнаружение службы (для этого Windows использует протокол WS-Discovery).
    • Использует голые имена хостов (например, NBNS, но в отличие от mDNS).
    • Программного обеспечения:
      • Изначально поддерживается Windows Vista и выше;
      • systemd-resolved с помощью nss_resolve (часть systemd 216) в Linux.
  • Службы имен NetBIOS
    • Часть старого пакета сетевых протоколов NetBIOS, используемого Windows, OS/2, MS-DOS ... Все еще используется. Не оправдание, чтобы начать использовать его в новых сетях.
    • Обеспечивает разрешение имен и (до некоторой степени) обнаружение служб - так называемое "Сетевое окружение" или "Мои сетевые окружения" в Windows.
    • Использует широковещательные рассылки IPv4 (несколько болтливый) и имеет собственный сложный и глупый протокол "выбора браузеров" для уменьшения болтливости. Нет поддержки IPv6 вообще.
    • Программного обеспечения:
      • Изначально поддерживается в Windows и OS/2;
      • nmbd с nss_wins (частью Samba) в Linux и BSD;
      • Судя по всему, OS X также поддерживает его изначально?

Методы, которые часто предварительно настроены для вас:

  • DNS с использованием локального (внутреннего) доменного имени
    • Домашние шлюзы, как правило, имеют это встроенное, как часть локального кеша DNS. Часто это обычный dnsmasq , который можно запустить вручную, если вы настраиваете шлюз на базе Linux/BSD.
    • Они берут имя хоста из вашего запроса DHCP, регистрируют его в dnsmasq в домене, подобном home , и предлагают себя в качестве основного DNS-сервера (действуют как DNS-кеш).
    • По умолчанию работает с большинством операционных систем, но только с DHCP (шлюз не знает имен хостов статических IP-хостов), и, как правило, в моем случае это довольно странно.
    • Программного обеспечения:
      • Обычный DHCP-клиент на хостах. Необходимо отправить опцию имени хоста.
      • dnsmasq на шлюзе. (Большие установки могут использовать dhcpd + named .)

Методы, включающие ручную настройку:

  • DNS используя ваше собственное доменное имя
    • Работает везде (Тем не менее, это не поможет вам на самом деле подключиться через Интернет.)
    • Динамический DNS возможен, если вы используете DHCP и управляете DNS-сервером; в противном случае все данные являются статическими.
    • Необходимо иметь доменное имя (которое будет стоить несколько долларов).
  • бесплатные субдомены DNS
    • Все-таки DNS, просто бесплатный (или намного дешевле, чем домен), но тоже довольно ограниченный. Такие службы, как FreeDNS и Dyn, предлагают регистрацию отдельных поддоменов под доменом, который они контролируют (например, myhost.dyndns.com).
      • Слишком часто субдомен уже был выбран кем-то другим ...
    • Динамические DNS-обновления часто разрешены (в стиле DynDNS).
  • /etc/hosts
    • Текстовый файл с указанием IP-адреса - пары имен хостов, которые необходимо настроить вручную на каждом клиентском компьютере.
    • (%SystemRoot%\system32\drivers\etc\hosts в Windows)
  • Конфигурация SSH
    • Поле "Имя хоста" в PuTTY или ~/.ssh/config в OpenSSH.
    • Должен быть настроен вручную.
  • PostIt заметки по всему вашему столу
    • Очень дешевый. Нет политики именования. Бесконечные типы данных.
    • Скорее ненадежный. Должен быть распределен вручную. Нет TTL, что часто приводит к тому, что устаревшая информация кэшируется месяцами, пока кто-то не заметит. Алгоритмы запросов неэффективны. Ответы на запросы, как правило, легко теряются, иногда оставляя лишь склеенную запись на вашем мониторе. (Через три месяца вы можете найти их в буфере за вашим столом.)
4

Если вы хотите получить доступ к Linux с любого компьютера, вам понадобится доменное имя. Используйте службу динамического DNS, чтобы указать доменное имя для вашего компьютера с Linux (или маршрутизатора, к которому он подключен). После того, как вы это настроите, это даст вам дополнительное преимущество, так как вам не придется беспокоиться о том, что IP-адрес вашего компьютера с Linux постоянно меняется.

4

Из Windows 7 (в соответствии с вашими правками)...

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

Когда запустится блокнот, перейдите в конец файла и добавьте свой IP-адрес и имя хоста:

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

Сохраните файл, затем попробуйте пропинговать его из командной строки:

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

Это будет работать только из вашей локальной сети. К нему подключается "мир" (согласно вашему добавленному комментарию) совершенно другой зверь, включающий DNS (dyndns, godaddy и т.д.) И конфигурацию маршрутизатора, например (NAT), преобразование сетевых адресов и др.

3

Два варианта.

  • Все услуги:

Поместите запись для него в /etc/hosts . Не трогайте существующие строки, добавьте новую.

  • только ssh:

Добавьте Host в ~/.ssh/config с именем, которое вы хотите использовать, а затем добавьте нужные параметры под ним. Смотрите man 5 ssh_config для более подробной информации.

Host myserver
    Hostname 192.168.123.234
    Protocol 2
2

Вы захотите исследовать Samba или Winbind. Моя полностью Linux-сеть (включая маршрутизатор) может общаться друг с другом по имени хоста, но я не уверен, как сказать Windows, как называется Linux-машина.

1

Я также использую Ubuntu 10.04, и я могу подключиться к своим машинам, используя их имя. Скажем, у меня есть компьютеры с именем ernie и bert, которые находятся в одной сети:

Моя подсказка выглядит так на Эрни:

ernie:~$ 

Если я наберу это:

ernie:~$ ssh root@bert.local

Буду рут на берт

bert:~#

Я делаю это между двумя машинами Ubuntu, но я думаю, что это будет работать и в замазке. (Я не знаю, как подключиться к windows из Ubuntu, см. Другие ответы о samba.)

Вы должны установить sshd в Ubuntu, чтобы это работало: sudo apt-get install openssh-server

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .