Как компьютеры Unix могут найти друг друга именем хоста?

RMS (основатель GNU и исходный автор gcc и emacs) имеет хорошее суммирование этимологии взламывания включая то, как это прибыло, чтобы иметь уничижительное значение. Бранное слово каждый продолжает быть большей частью щекотки большинству людей, в то время как non-perjoritive каждый имеет как RMS, говорит, сильный антиправительственный подтекст, таким образом, большинство людей объединит их, потому что, "Даже если то, что Вы делаете, не неправильно, это все еще не правильно". Это имеет отношение к традиционному значению слова "взлом", который является чем-то сделанным не точно неправильно, но не точно право, также.

В общем английском использовании "взлом" - кто-то, кто является дилетантским (или не настолько хорошим) в чем-то, и таким образом может иметь тенденцию импровизировать (из-за отсутствия знаний и опыта); это также используется в программировании ("Вот является решение для взлома..." значением быстро импровизированного). Кажется мне, это не совпадение, но "хакер" более положителен, чем отрицательный, тогда как "взлом" (существительное, относящееся к человеку, как в, "Он - взлом"), более отрицателен, чем положительный. Положительное угол быть: иногда тот взлом (существительное, относящееся к быстро импровизированному решению), оказывается подлинным прорывом. Вероятно, это было более или менее нормативно на границах информатики в конце 20-го века - даже самые большие таланты никого не будут регулярно взламывать далеко в материале полностью понятого.

Таким образом, как RMS говорит, взлом может быть несколько оригинальным или непредсказанным решением и хакером кто-то, кто решает проблемы оригинальными или непредсказуемыми способами. Linus известен Linux, который является действительно взломом на (или) Unix во всех смыслах (по-видимому, сначала, это было "дилетантски"). Но он не украл исходный код у Bell Labs или чего-либо, чтобы сделать это.

5
21.09.2016, 03:45
3 ответа

Windows использует другую систему для разрешения имени хоста, чем Linux.

Linux использует файл / etc / hosts и / или DNS для разрешения имен

Файл / etc / hosts представляет собой просто список IP-адресов и имен и был когда-то это был единственный способ сопоставить имена с IP-адресами, прежде чем стало понятно, что управление становится слишком большим. Решением стала DNS ( Система доменных имен ), которая представляет собой распределенную базу данных, которая теперь лежит в основе всего Интернета.

Команда host , которую вы использовали, запрашивает только DNS, а не / etc / hosts , поэтому она не может найти ваш локальный компьютер, если на нем нет записи DNS.

Чтобы получить доступ ко всем вашим машинам Linux по имени, либо создайте файл / etc / hosts :

127.0.0.1    localhost.localdomain    localhost
192.168.0.5  laptop.mydomain.net  laptop
192.168.0.6  server.mydomain.net  server
192.168.0.7  printer.mydomain.net printer

и распространите его на весь ваш компьютер Linux, либо установите DNS. dnsmasq - это легкий DNS / DHCP-сервер, который идеально подходит для небольшой сети.

Windows использует собственное разрешение имен NetBIOS , при котором каждый компьютер передает специальное сообщение в локальную сеть, чтобы узнать IP-адрес компьютера с определенным именем. Вот почему машины с Windows обычно находят друг друга автоматически, когда они находятся в одной сети. Они кэшируют это для использования в будущем, чтобы в сети не было слишком много болтовни.

Альтернативой этому разрешению широковещательных имен (для более крупных развертываний) является WINS ( Windows Internet Naming Service ), которая представляет собой центральную базу данных имен компьютеров и / или служб по IP-адресу. Современные версии Windows теперь используют DNS, поскольку это де-факто стандарт разрешения имен и более масштабируемый, чем WINS.

2
27.01.2020, 20:40

Компьютеры Windows находят друг друга с помощью NetBIOS. По сути, все узлы в сети выбирают один компьютер, отвечающий за разрешение имен, и новые узлы могут просто запрашивать этот узел.

Ожидается, что ваша команда host завершится ошибкой, если у вас не настроен DNS-сервер. Это эквивалент nslookup в Windows. Если вы запустите nslookup на компьютере с Windows на другой компьютер с Windows, он также не будет работать без DNS, потому что это то, что вы запрашиваете с помощью выбранной вами команды.

Тем не менее, вы должны иметь возможность ссылаться на другие машины по IP-адресу или добавляя их IP-адреса в / etc / hosts . У IIRC Gnome есть несколько вариантов интеграции Samba, позволяющих вам перемещаться по рабочей группе SMB, аналогично тому, о чем вы, вероятно, думаете с Windows. Однако я не могу припомнить название пакета.

1
27.01.2020, 20:40

Если у вас нет дома DNS-сервера, что маловероятно, похоже, будет парочка вариантов.

  1. Прочтите на avahi-server (см. эту ветку ), чтобы увидеть, решит ли это ваши проблемы. Обратите внимание на комментарий о добавлении ".local" к вашему имени хоста. Кстати, что вы получаете, когда набираете "hostname" в командной строке? Я также предлагаю прочитать справочную страницу для имени хоста, особенно. часть о FQDN.
  2. редактировать / etc / hosts

РЕДАКТИРОВАТЬ: как просил комментатор, вот некоторые детали из цепочки, на которую я ссылался. Вы можете реализовать zeroconf на своих Linux-машинах, чтобы рекламировать их имена хостов в локальной сети. Типичная установка (для ubuntu) - это «sudo apt-get install avahi-daemon». Avahi реализует zeroconf на ubuntu и других Linux, и вам нужен только демон, установленный для рекламы имен хостов. Я прочитал здесь ( https://superuser.com/questions/491747/how-can-i-resolve-local-addresses-in-windows ), что Bonjour, реализация zeroconf от Apple, может быть установлен на ПК с Windows для выполнения той же функции.

1
27.01.2020, 20:40

Теги

Похожие вопросы