
У меня четыре компьютера подключены к одному коммутатору, но не подключены к Интернету.
Один из компьютеров (большой на картинке) мощнее остальных и работает под управлением Ubuntu, с тремя живыми веб-серверами Node.js с различными приложениями на разных портах. Другие компьютеры работают под управлением Windows.
Я хочу, чтобы остальные три компьютера могли получить доступ к веб-серверам, вызвав URL, например
- файлы.bugsteins --> 192.168.0.5:3000
- chat.bugsteins --> 192.168.0.5:3001
- устройства.bugsteins --> 192.168.0.5:3002
Каков наилучший (в первую очередь, по времени настройки) способ сделать это?
До сих пор я пробовал Bind9 на серверной машине и назначал статические IP-адреса и вручную жестко запрограммировал DNS на трех клиентских машинах, но это не работает, и пока я работаю над этим, я думаю, что опубликую этот вопрос на случай, если у кого-то найдется лучший способ.
решение1
Каков наилучший (в первую очередь, по времени настройки) способ сделать это?
Не СВЯЗЫВАЙТЕ.
Отредактируйте c:\windows\system32\drivers\etc\hosts
файл на каждом рабочем столе и укажите в этих именах значение 192.168.0.5.
192.168.0.5 files.bugsteins
192.168.0.5 chat.bugsteins
192.168.0.5 devices.bugsteins
Добавьте веб-прослушиватель на порт 80 на сервере, используя настройки Node.js или базовую установку веб-сервера (Lighttpd, NginX, Apache или множество других), обслуживающего статическую страницу с JavaScript, который просматривает URL-адрес и перенаправляет страницу на соответствующий порт.
Взяв изhttps://stackoverflow.com/questions/18022636/перенаправление-на-основе-url-javascriptчто-то вроде этого (не проверено):
<html>
<head><title>Redirect page</title></head>
<body>
<script type="text/javascript">
if (window.location.href== "http://files.bugsteins") {
window.location.href = 'http://files.bugsteins:3000';
}
if (window.location.href== "http://chat.bugsteins") {
window.location.href = 'http://chat.bugsteins:3001';
}
if (window.location.href== "http://devices.bugsteins") {
window.location.href = 'http://devices.bugsteins:3002';
}
</script>
</body>
</html>
решение2
Самый быстрый способ — установить пакет dnsmasq в зависимости от дистрибутивов Linux (Arch/CentOS/RHEL/Ubuntu). Сохраните все записи в /etc/hosts на вашем DNS-сервере (использующем dnsmasq). Укажите все ваши рабочие станции/хосты Linux здесь.
Кроме того, обязательно настройте пересылку на внешний DNS-сервер Интернета для нелокальных запросов.
Для небольших сред, скажем, <100 машин, этого достаточно, так как он представляет собой минималистичный DNS-сервер.
решение3
Обычно это обрабатывается внутренним DNS-сервером. Если у вас его нет, вы можете просто добавить записи в локальный файл хоста на каждом из 3 клиентских компьютеров.