В Интернете, включая локальные сети, машины звонят друг другу по IP-адресам . Чтобы получить доступ к машине B с машины A, используя имя машины B, у машины A должен быть какой-то способ сопоставить имя B с его IP-адресом. Есть три способа объявить имена машин на A:
- хостов файл . Это простой текстовый файл, который отображает имена на адреса.
- система доменных имен (DNS) . Этот метод используется в глобальной сети Интернет. Например, когда вы загружаете эту страницу в браузере, первое, что делает ваш компьютер, - это отправляет DNS-запрос, чтобы узнать адрес
unix.stackexchange.com
.
- другие базы данных имен, такие как NIS , LDAP или Active Directory . Они используются в некоторых корпоративных сетях, но не очень часто (многие сети, которые используют NIS, LDAP или AD для пользовательских баз данных, используют DNS для имен компьютеров). Если ваша сеть использует один из них, у вас есть профессиональный сетевой администратор, который должен спросить его, что делать.
Есть много способов, которыми они могут работать на практике; невозможно охватить их всех. В этом ответе я опишу несколько распространенных ситуаций.
Файл хостов
Преимущество метода файла hosts заключается в том, что он не требует специального метода. Это может быть затруднительно, если у вас несколько машин, потому что вам нужно обновлять каждую машину, когда меняется имя одной машины. Это не подходит, если IP-адрес B назначается динамически (так что вы получаете другой адрес каждый раз, когда вы подключаетесь к сети).
Файл hosts - это простой список строк, сопоставляющий имена с IP-адресами. Это выглядит так:
127.0.0.1 localhost localhost.localdomain
198.51.100.42 darkstar darkstar.bands
В системах Unix файл hosts имеет вид /etc/hosts
. На Windows это c:\windows\system32\drivers\etc\hosts
. Почти каждая операционная система, которую вы можете подключить к Интернету, имеет похожий файл; В Википедии есть список .
Чтобы добавить запись для B в файл hosts A:
Определите IP-адрес B. На B выполните команду ifconfig
(если команда не найдена, попробуйте /sbin/ifconfig
). Вывод будет содержать такие строки:
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
inet addr:10.3.1.42 Bcast:10.3.1.255 Mask:255.255.255.0
В этом примере IP-адрес B - 10.3.1.42. Если имеется несколько inet addr:
линий, выберите ту, которая соответствует вашей сетевой карте, а не lo
запись, туннель или виртуальную запись.
- Отредактируйте файл hosts на A. Если A работает под управлением какой-либо системы Unix, вам нужно отредактировать
/etc/hosts
как суперпользователь; см. Как запустить команду от имени системного администратора (root) .
DHCP + DNS в домашних или небольших офисных сетях
Этот метод, безусловно, самый простой, если у вас есть необходимое оборудование. Вам нужно настроить только одно устройство, и все ваши компьютеры будут знать имена друг друга. Этот метод предполагает, что ваши компьютеры получают свои IP-адреса через DHCP , что является способом, позволяющим компьютерам автоматически получать IP-адреса при подключении к сети. Если вы не знаете, что такое DHCP, они, вероятно, знают.
Если в вашей сети есть домашний маршрутизатор , это лучшее место для настройки имен компьютеров, подключенных к этому маршрутизатору. Во-первых, вам нужно выяснить MAC-адрес B. Каждое сетевое устройство имеет уникальный MAC-адрес. На B выполните команду ifconfig -a
(если команда не найдена, попробуйте /sbin/ifconfig -a
). Вывод будет содержать такие строки:
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
В этом примере MAC-адрес есть 01:23:45:67:89:ab
. Вы должны выбрать линию HWaddr, которая соответствует сетевому порту, который подключен к маршрутизатору через кабель (или карту Wi-Fi, если вы подключены через Wi-Fi). Если у вас есть несколько записей, и вы не знаете, какой именно, подключите кабель и посмотрите, какое сетевое устройство получает IP-адрес ( inet addr
строка чуть ниже).
Теперь в веб-интерфейсе вашего маршрутизатора найдите параметр, например «DHCP». Название и расположение параметра полностью зависит от модели маршрутизатора, но большинство из них имеют аналогичный набор основных настроек. Вот как это выглядит на прошивке Tomato :
Введите MAC-адрес, IP-адрес и желаемое имя. Вы можете выбрать любой IP-адрес в диапазоне адресов вашей локальной сети. Большинство домашних маршрутизаторов предварительно настроены для диапазона адресов в форме 192.168. х . у или 10. х . у . г . Например, на маршрутизаторе Tomato, показанном выше, на вкладке «Сеть» есть настройка «IP-адрес маршрутизатора» со значением 10.3.0.1 и настройка «маска подсети» со значением 255.255.255.0, что означает, что компьютеры включены локальная сеть должна иметь адрес вида 10.3.0. г . Существует также диапазон адресов для автоматически назначаемых адресов DHCP (10.3.0.129–10.3.0.254); для вашего назначенного вручную адреса DHCP выберите тот, который не находится в этом диапазоне.
Теперь подключите B к сети, и он должен получить IP-адрес, который вы указали, и он будет доступен по указанному имени с любого компьютера в сети.
Создайте свой собственный DNS-сервер с помощью Dnsmasq
Если у вас нет подходящего домашнего маршрутизатора, вы можете настроить такую же функциональность на любом компьютере с Linux. Я объясню, как использовать Dnsmasq для настройки DNS . Есть много других подобных программ; Я выбрал Dnsmasq, потому что он прост в настройке и легок (например, для этого используется маршрутизатор Tomato, показанный выше). Dnsmasq доступен в большинстве дистрибутивов Linux и BSD для ПК, серверов и сетевого оборудования.
Выберите компьютер, который всегда включен, имеет статический IP-адрес и работает под управлением какого-либо Linux или BSD; давайте назовем это S (для сервера). На S установите dnsmasq
пакет (если его там еще нет). Ниже я буду считать , что конфигурационный файл /etc/dnsmasq.conf
; расположение может отличаться в зависимости от распределения. Теперь вам нужно сделать несколько вещей.
Вы также можете использовать Dnsmasq в качестве сервера DHCP , чтобы машины могли автоматически получать адрес, соответствующий их имени. Это выходит за рамки этого ответа; обратитесь к документации Dnsmasq (это не сложно). Обратите внимание, что в данной локальной сети может быть только один DHCP-сервер (точное определение локальной сети выходит за рамки этого ответа).
Имена в глобальном интернете
Пока что я предположил локальную сеть. Что если вы хотите дать имя машине, которая находится в другом уголке мира? Вы по-прежнему можете использовать любой из описанных выше методов, за исключением того, что части, включающие DHCP, применимы только в локальной сети. Кроме того, если ваши машины имеют общедоступные IP-адреса, вы можете зарегистрировать собственное общедоступное имя для них. (Вы также можете назначить частный IP-адрес общедоступному имени; он менее распространен и менее полезен, но не представляет технических трудностей.)
Получение собственного доменного имени
Вы можете получить собственное доменное имя и назначить IP-адреса именам хостов в этом домене. Вам необходимо зарегистрировать доменное имя у провайдера доменных имен; обычно это стоит 10–15 долларов в год (для самых дешевых доменов). Используйте веб-интерфейс вашего провайдера доменных имен для назначения адресов именам хостов.
Динамический DNS
Если ваши машины имеют динамический IP-адрес, вы можете использовать динамический DNS- протокол для обновления IP-адреса, связанного с именем машины, при изменении адреса. Не все провайдеры доменных имен поддерживают динамический DNS, поэтому покупайте перед покупкой. Для личного использования No-IP предоставляет бесплатный динамический DNS-сервис, если вы используете свои собственные домены (например example.ddns.net
).
ping
) или на машине, с которой консультируется клиент. Какая ОС на клиенте? Какова его конфигурация DNS?