
Когда я подключаюсь по 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