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

OpenVPN: без пересылки DNS

Мне удалось настроить маршрутизируемый OpenVPN на моем VPS под управлением Ubuntu 10.04. Я могу пинговать в обоих направлениях, а также открывать любой веб-сайт, используя IP-адреса на клиенте. Однако через доменные имена это не работает.

Поскольку я новичок в OpenVPN и Linux, я не совсем уверен, с чего начать устранение неполадок. Поскольку сервер является VPS, у меня нет доступа к его локальной сети, но я настаивал на том, что я могу установить свой сервер в качестве DNS-сервера для моих VPN-клиентов? Использование его DNS-сервера в качестве моего сервера VPN-клиентов. На основании этого я попытался добавить push «dhcp-option DNS 10.x.x.x», но безуспешно.

Мой сервер боковая конфигурация выглядит так же, как образец конфигурации, за исключением того, что я включил push "redirect-gateway def1"

Конфигурация моего клиента выглядит так:

client
dev tun
proto udp
remote my.server.com 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert sovos.crt
key sovos.key
comp-lzo
verb 6

Обновить: Мне удалось выяснить, что сервер правильно выталкивает настройки DNS, т.е. значения в resolv.conf меняются, когда я подключаюсь к VPN на клиенте. Однако я все еще не могу выполнять поиск даже с использованием общедоступных DNS-серверов, таких как Google.

Оказывается, iptables был неправильно настроен.

Эти настройки сработали, где XX - мой ip eth0.

#Make vpn clients who connect on the tun interface able to reach the internet through the main interface (eth0)
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT --to-source XX.XX.XX.XX

На вашем сервере должен быть действительно запущен DNS-сервер, чтобы это работало, чего не будет по умолчанию. В основном ваши варианты:

  1. Не проталкивайте DNS-серверы и позволяйте клиентам использовать DNS-сервер в своей локальной сети. Это может не работать, если локальный DNS-сервер не находится в той же подсети, что и клиент.
  2. Протолкните публичный DNS-сервер, такой как Google (8.8.8.8 и 8.8.4.4), к которому клиенты будут получать доступ через VPN.
  3. Запустите DNS-сервер на VPN-сервере (dnsmasq вероятно, самый простой в установке) и отправьте его клиентам.