Назад | Перейти на главную страницу

Как использовать PuTTY для подключения к локальному серверу в сети DHCP без указания IP-адреса?

Я не хочу указывать IP-адрес, поскольку он может измениться в локальной сети DHCP. Я попытался подключиться к имени сервера linux, но ни Putty, ни Windows ping.exe не смогли его разрешить.

Вы можете настроить dhcp для отправки имени хоста с запросом dhcp. Очевидно, вам понадобятся ваш dhcpd и сервер имен для поддержки этого, но многие маршрутизаторы поддерживают эту функцию, поэтому стоит проверить, поддерживает ли ваш.

Я вижу решения в нескольких категориях:

  1. Статический IP:
    1. Исправьте IP-адрес на машине Linux и исключите этот IP-адрес из DHCP-сервера.
    2. Получите DHCP-сервер (ваш маршрутизатор?), Чтобы присвоить MAC-адресу Linux-сервера фиксированный адрес.
    3. Для любого из них поместите статический IP-адрес в файл hosts вашего клиента.
  2. Динамический IP с DNS.
    1. Найдите способ, чтобы компьютер с Linux отправлял имя хоста с его запросом DHCP, и чтобы сервер DHCP / DNS-сервер предоставлял это имя, чтобы разрешение DNS работало. Зависит от DHCP и DNS серверов.
    2. Поместите текущий IP-адрес сервера Linux на некоторый фиксированный общий ресурс (например, внешнюю веб-страницу). И напишите что-нибудь взломанное на клиенте, чтобы получить это и использовать в качестве IP-адреса сервера.

К сожалению, вам не повезло. Для этого вам нужно использовать что-то вроде mDNS. Он реализован из коробки в OSX и называется Bonjour, но пока не достиг критической массы за пределами Apple. Если вы управляете сервером DHCP, вы можете настроить резервирование DHCP для определенных систем. В этом сценарии nic с конкретным MAC-адресом всегда будет получать один и тот же статически определенный адрес от DHCP-сервера.

Кое-что в вашем вопросе все еще неясно, но я постараюсь дать общий ответ.

Чтобы подключиться к машине через ее имя хоста, вам потребуется активная в сети служба разрешения имен, то есть DNS- или WINS-сервер. Увидев, что вы говорите, что ваши машины не могут пинговать друг друга по имени, похоже, что у вас нет DNS-сервера в сети (или что ни одна машина не настроена с первичным DNS-сервером). Возникает вопрос - в какой сетевой среде будет DHCP, но нет DNS?

Если в сети ЕСТЬ DNS-сервер, вам просто нужно настроить обе машины для связи с ним (свойства сетевого подключения в Windows, бог знает где.conf в Linux), и все готово.

Тогда предположим, что нет DNS-сервера.

Предполагая, что у вас есть контроль над DHCP-сервером в вашей сети, самым простым решением было бы настроить статическое сопоставление IP-адресов на DHCP-сервере. Сделайте так, чтобы он каждый раз предоставлял серверу linux один и тот же IP-адрес (привязать определенный IP-адрес к MAC-адресу сервера nic). Затем вы можете отредактировать файл hosts на рабочей станции Windows (находится в% systemroot% \ system32 \ drivers \ etc) и сопоставить конкретное имя с адресом и наслаждаться.

Если у вас нет контроля над DHCP ... Ну, лично я просто пойду и пойму людей, которые это делают (и скажу им, чтобы они поставили там DNS-сервер, ради бога!)

Я могу придумать и другие дикие вещи, которые могут обойти эту проблему (напишите сценарий, который проверяет всю подсеть, запускает arp -a в файл, а затем сканирует его, чтобы найти MAC-адрес сервера, тем самым разрешая его IP. .. шиш, это тошно). Если серьезно, я бы попытался запустить и запустить достойную службу разрешения имен.

Вы не сможете разрешить адрес, если он не находится на каком-то DNS-сервере. Вам нужно знать IP-адрес или вы можете использовать некоторые услуги, такие как Нет-IP чтобы обновить полное доменное имя до текущего IP-адреса сервера. Конечно, это будет работать только для сервера с публичным IP-адресом.

Для внутренних адресов вы можете написать сценарий на сервере, который будет отправлять вам IP-адрес, который есть в какой-то момент времени.

У меня также есть сервер Linux в сети DHCP. Самый простой способ использовать DHCP и при этом легко подключаться к серверу - это присвоить ему статический IP-адрес. Вы по-прежнему можете использовать DHCP для других клиентов, но у вашего сервера есть статический IP-адрес.

Вы не говорите, какой дистрибутив Linux вы используете, но вот соответствующая часть моего rc.conf из Arch Linux.

lo="lo 127.0.0.1"
eth0="eth0 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.0.255"
INTERFACES=(lo eth0)

gateway="default gw 192.168.1.1"
ROUTES=(gateway)

Как указывали другие, проблема заключается в разрешении имен, а не в SSH.

Но лучшее решение - настроить DNS, DHCP-сервер и DHCP-клиент таким образом, чтобы запись DNS создавалась автоматически для всех DHCP-клиентов. Это легко сделать с помощью DHCP-сервера Microsoft (я смогу предоставить инструкции, если это будет полезно), но также должно быть возможно и с другими серверами.

В основном вам нужно:

  1. DNS-сервер, который принимает динамические обновления (вы можете защитить это).
  2. DHCP-сервер, который отправляет динамическое обновление для всех клиентов (DHCP-сервер MS делает это, но не по умолчанию).
  3. DHCP-клиент, который сообщает DHCP-серверу свое имя (большинство делает это автоматически, но это может быть параметр, который необходимо включить).