Невозможно разрешить имена компьютеров через VPN, только IP-адреса?

Невозможно разрешить имена компьютеров через VPN, только IP-адреса?

Когда я подключаюсь по RDP к машине в сети моего клиента, в сети есть несколько компьютеров, к которым я могу получить доступ по имени (например, для серверов SVN, Jenkins и т. д.).

Однако при подключении через VPN на моем локальном ПК ни одно из этих имен машин не распознается, но я могу без проблем выполнить ping на их IP-адреса.

Нужно ли мне что-то настраивать вручную или это проблема с конфигурацией VPN?

решение1

Я не ИТ-специалист, но в моей компании это сработало.

В Windows 10, если у вас есть внутренний DNS-сервер, вы должны добавить его к DNS-серверам, которые предоставляет VPN. В Windows Server вы можете настроить DNS-сервер с полномочиями по локальным именам, Google — ваш друг.

В качестве альтернативы клиенты могут сделать это через свое VPN-подключение:

  • откройте Панель управления, Центр управления сетями и общим доступом, Изменить параметры адаптера
  • Щелкните правой кнопкой мыши по вашему VPN-подключению, выберите «Свойства», «Сеть».
  • Выберите опцию TCP/IPv4 (как она называется в вашем регионе)
  • нажмите «Свойства», «Дополнительно»...
  • перейти на вкладку DNS
  • Добавьте DNS-адрес вашего внутреннего сервера локальной сети, например, 10.0.10.1
  • Необязательно: в поле редактирования «DNS-суффикс для этого подключения:» добавьте DNS-суффикс, например yourcompany.local
  • применить и выйти
  • отключите и снова подключите VPN, если он был подключен

Теперь вы можете получить доступ к внутреннему ПК с помощью computername.yourcompany.local или, если вы добавили суффикс ранее, просто computername, например \\computername в проводнике Windows или computername:8080 в браузере для службы на 8080 или с помощью удаленного рабочего стола.

решение2

В свойствах VPN вам нужно указать сервер в DNS. Или отредактировать файл hosts с IP-адресом для соответствия имени хоста.

решение3

Ваш /etc/resolv.confфайл определяет, где ваш компьютер должен искать разрешение имен хостов в IP-адреса. Основная проблема в том, что /etc/resolv.confон не обновляется при запуске openvpnпо умолчанию.

Вот что вам нужно сделать, чтобы решить эту проблему.

1.) Добавьте следующее в server.confфайл на вашем сервере OpenVPN (обычно он находится по адресу /etc/openvpn/server.conf), чтобы указать серверу клиенту, где следует искать преобразование имен хостов в IP-адреса.

push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DOMAIN mylocaldomain.lan"

2.) Установите resolvconfна клиентской машине и свяжите стандарт resolv.confс resolvconfверсией с помощью следующих команд, чтобы иметь функцию, способную изменятьresolv.conf

sudo apt install resolvconf
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

3.) Добавьте следующий код в конец файла, client.ovpnчтобы он запускался resolvconfвсякий раз, когда подключается или отключается от сервера OpenVPN.

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

4.) Всякий раз, когда вы запустите, openvpnвам придется делать это с -script-security 2флагом, чтобы разрешить openvpnзапуск resolvconf. Вот пример вызова

sudo openvpn --script-security 2 --config /path/to/client.ovpn

Более подробную версию вышеприведенных инструкций с примером кода моего (рабочего) сервера OpenVPN можно прочитать здесь:https://steamforge.net/wiki/index.php/Как_настроить_OpenVPN_для_разрешения_локальных_DNS_%26_hostnames

Связанный контент