В Інтернеті, включаючи локальні мережі, машини дзвонять один одному за IP-адресами . Щоб отримати доступ до машини B з машини A, використовуючи ім'я машини B, машина A повинна мати певний спосіб зіставити ім'я B з його IP-адресою. Існує три способи оголошення імен машин на A:
- хостів файл . Це простий текстовий файл, який відображає імена за адресами.
- система доменних імен (DNS) . Це метод, який використовується в глобальному Інтернеті. Наприклад, коли ви завантажуєте цю сторінку в браузері, перше, що робить ваш комп’ютер, - це зробити запит DNS, щоб знати адресу
unix.stackexchange.com
.
- інші бази даних імен, такі як NIS , LDAP або Active Directory . Вони використовуються в деяких корпоративних мережах, але не дуже часто (багато мереж, які використовують NIS, LDAP або AD для баз даних користувачів, використовують DNS для імен машин). Якщо ваша мережа використовує один із них, у вас є професійний адміністратор мережі, і ви повинні запитати його, що робити.
Є багато способів, як це може працювати на практиці; покрити їх усіх неможливо. У цій відповіді я опишу кілька поширених ситуацій.
Файл хостів
Метод файлів хостів має ту перевагу, що він не потребує спеціальних методів. Це може бути громіздко, якщо у вас є кілька машин, оскільки вам доведеться оновлювати кожну машину, коли змінюється назва однієї машини. Не годиться, якщо IP-адреса B призначається динамічно (щоб ви отримували іншу кожну під час підключення до мережі).
Файл хостів - це простий список рядків, які відображають імена до IP-адрес. Це виглядає приблизно так:
127.0.0.1 localhost localhost.localdomain
198.51.100.42 darkstar darkstar.bands
У системах Unix файл хостів є /etc/hosts
. У Windows це c:\windows\system32\drivers\etc\hosts
. Практично в кожній операційній системі, яку можна підключити до Інтернету, є подібний файл; У Вікіпедії є список .
Щоб додати запис для B у файлі хостів 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
вхід, тунель чи віртуальний запис.
- Відредагуйте файл хостів на A. Якщо A працює з якоюсь системою unix, вам потрібно буде відредагувати
/etc/hosts
як суперкористувача; див. Як запустити команду як системний адміністратор (root) .
DHCP + DNS для домашніх або малих офісних мереж
Цей метод є найпростішим, якщо у вас є необхідне обладнання. Вам потрібно налаштувати лише один пристрій, і всі ваші комп’ютери будуть знати про імена один одного. Цей метод передбачає, що ваші комп'ютери отримують свої IP-адреси через DHCP , що є методом автоматичного отримання ІР-адреси під час підключення до мережі. Якщо ви не знаєте, що таке 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. х . у . z . Наприклад, на маршрутизаторі Tomato, показаному вище, на вкладці "Мережа" є налаштування "IP-адреси маршрутизатора" зі значенням 10.3.0.1 та "Маска підмережі" зі значенням 255.255.255.0, що означає, що комп'ютери на локальна мережа повинна мати адресу форми 10.3.0. z . Існує також діапазон адрес для автоматично призначених 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?