Вопрос или проблема
Я использую Ubuntu Desktop. Я хотел бы использовать имя хоста вместо IP-адреса, когда хочу подключиться к Ubuntu Desktop через SSH. Это облегчит подключение к этому устройству, так как IP может измениться после перезагрузки.
Итак, сейчас мне нужно выполнить:
ssh [email protected]
Однако я хотел бы иметь что-то вроде этого:
ssh [email protected]
Есть идеи, как я могу присвоить имя хоста своему Ubuntu Desktop?
Я буквально только что решил эту же задачу на своем сервере Ubuntu 16.x (32bit). Мой сервер подключается к управляемому третьей стороной WiFi через DHCP, и мне нужно было получить доступ к размещенному gitea и ssh, используя его имя хоста. Теперь я могу получить доступ к gitea, используя “http://ubuntuserver.local:3001
“, и ssh, используя “ssh usernamer@ubuntuserver
” с любого из моих сетевых устройств.
Очевидно, что машина должна транслировать свое имя хоста в сети.
Необходимо установить и запустить “avahi-daemon”. Кажется, как только он запускается, имя хоста транслируется в локальной сети.
Вот что я сделал (обратите внимание, что это Ubuntu 16, но процесс, похоже, такой же):
- Установите демона: $
sudo apt install avahi-daemon
- Проверьте статус демона: $
sudo systemctl status avahi-daemon | grep Status:
Примечание: я заметил, что статус всегда указывает “avahi-deamon starting up
“, но он транслируется. - Проверьте это в терминале: $
ping hostname
Надеюсь, это поможет вам найти решение.
Ответ или решение
Чтобы настроить использование имени хоста на Ubuntu Desktop для подключения по SSH вместо IP-адреса, вам необходимо убедиться, что ваша система будет транслировать своё имя хоста в локальной сети. Это обеспечит возможность подключения к вашему устройству по более удобному имени, особенно когда IP-адрес может изменяться после перезагрузки. Для достижения этой цели обычно используется служба автовещания, такая как Avahi. Следовательно, в этой инструкции мы подробно разберем, как правильно настроить вашу систему.
Теория
Имя хоста — это название, которое вы присваиваете вашему устройству в сети для его идентификации. В контексте SSH, использование имени хоста вместо IP-адреса делает подключение более интуитивно понятным и стабильным, так как IP-адрес может измениться, например, после перезагрузки маршрутизатора или устройства. Чтобы имя хоста распознавалось в сети, устройство должно транслировать своё имя хоста.
На Ubuntu для такой трансляции часто используется сервис Avahi, который реализует протокол Zeroconf. Он организует мультимедийную и автоматизированную настройку сетевых устройств и служб. Avahi позволяет устройству заявить своё имя хоста и обеспечить его доступность для других устройств в той же сети.
Пример
Для начала, на вашей Ubuntu Desktop вам необходимо установить и запустить Avahi. Это делается с помощью следующих команд:
-
Установите Avahi-daemon:
sudo apt update sudo apt install avahi-daemon
-
Проверьте статус Avahi-daemon:
sudo systemctl status avahi-daemon
Вы увидите строку, свидетельствующую о начале работы службы (например, "avahi-deamon starting up"), что указывает на активность трансляции имени хоста.
-
Проверьте, работает ли трансляция:
ping <ваше_имя_хоста>
Замените
<ваше_имя_хоста>
на имя вашего устройства. Эта команда отправит несколько пакетов на ваше устройство с использованием его имени хоста, что подтвердит успешность трансляции.
Применение
-
Настройка имени хоста вашего устройства:
Вы можете установить или изменить имя хоста вашего устройства, используя командуhostnamectl
. Например:sudo hostnamectl set-hostname вашновыйхозтенейм
Убедитесь, что новое имя хоста логично и уникально в вашей сети.
-
Редактирование файла /etc/hostname:
Чтобы изменение сохранилось, убедитесь, что файл/etc/hostname
содержит правильное имя хоста:sudo nano /etc/hostname
Измените содержимое на:
вашновыйхозтенейм
Сохраните изменения и выйдите из редактора.
-
Редактирование файла /etc/hosts:
Для избежания возможных проблем с резолвингом имени хоста, добавьте запись в файл/etc/hosts
. Откройте файл:sudo nano /etc/hosts
Добавьте строчку:
127.0.1.1 вашновыйхозтенейм
Это обеспечит локальный резолвинг имени хоста даже при ошибках сети.
-
Перезапустите службы:
Для применения изменений перезапустите Avahi и зачитайте конфигурации:sudo systemctl restart avahi-daemon
После выполнения всех настроек другие устройства в вашей сети смогут подключаться к вашему Ubuntu Desktop, используя команду ssh вашпользователь@вашновыйхозтенейм.local
. Можете убедиться в правильности настроек, снова проверив командой ping
.
Такое решение не только упрощает процесс подключения, но и делает работу более стабильной, исключая человеческие ошибки, связанные с запоминанием или вводом IP-адресов.