Удаленно отправить DNS-сервер клиенту через OpenVPN

6480
wishi

Когда я пытаюсь протолкнуть DNS-сервер через конфигурацию сервера OpenVPN, я не получаю этот сервер первым DNS-сервером в подключенной клиентской системе. В итоге он указывается как альтернативный DNS-сервер.

push "dhcp-option DNS 89.238.75.146" # DNS-Server 1 (local djbdns) 

Чтобы преодолеть определенные сетевые ограничения, если они есть, я использую 443 TCP. - Это означает, что мои DNS-запросы отправляются через TCP (если я вручную перенастраиваю DNS-сервер), что не очень хорошо масштабируется с точки зрения производительности.

Есть ли какие-нибудь решения для этого?

Marius

4
Немного неясно ... Вы говорите, что запускаете DNS на порту 443 (https)? В любом случае, на какой ОС работают ваши клиенты? emgee 15 лет назад 0
- демон OpenVPN на удаленном сервере работает на 443. DNSd работает на компьютере с Linux. Если я маршрутизирую трафик через туннель OpenVPN, то трафик DNS также будет проходить через 443. wishi 15 лет назад 0
Понятно, поэтому основная проблема, которую вы пытаетесь преодолеть, заключается в том, что заданные настройки DNS отображаются не как первичные, а как вторичные? emgee 15 лет назад 0
Это, и даже если я настрою это - TCP и DNS не масштабируются вместе. wishi 15 лет назад 0

2 ответа на вопрос

4
Jimmy Hedman

Я заметил, что это отличается в зависимости от «клиента». Если я использую сетевой менеджер, я получаю DNS, но если я использую «обычный» сервис openvpn (в Ubuntu), я не получаю DNS. Я не стал вдаваться в подробности, так как обычно я позволяю сетевому менеджеру подключать мой vpn.

извините, что принял этот ответ довольно поздно ... Я думаю, что-то здесь не так с подключением к моей учетной записи в StackOF и так далее ... wishi 14 лет назад 0
Я хотел бы проголосовать за ответ Джимми, но так как я не могу, я хотел бы поделиться большими пальцами в этом посте: по сути, плагин NetworkManager openvpn ДЕЛАЕТ обновление /etc/resolv.conf с параметрами DNS, выдвигаемыми сервером openvpn , Arno Teigseth 11 лет назад 1
Согласитесь, NetworkManager удается это сделать * вздох *, здесь мы надеемся когда-нибудь на чистую совместимость с `.ovpn` ... charneykaye 9 лет назад 0
См. Http://serverfault.com/a/590722/82338 Gajus 8 лет назад 0
0
charneykaye

If one is committed to the openvpn terminal vector, put a bash script called ~/bin/m0vpn (for a VPN called m0) so I connect by simply opening a terminal and typing:

m0vpn 

Here is the script:

#!/bin/bash OVPNFILE="$HOME/.config/vpn/m0/client.ovpn" TEMPRESOLV="nameserver 10.0.0.2\ndomain prd1.m0\n" # The next two lines create a temporary /etc/resolv.conf which includes the original. # For extra security you may modify this behavior (to use Only your own DNS server) # ^ But then, you must connect to an IP address (no hostname) from your .ovpn file! sudo printf "$TEMPRESOLV" | cat - /run/resolvconf/resolv.conf > /tmp/resolv.conf sudo mv /tmp/resolv.conf /etc/resolv.conf printf "Temporary /etc/resolv.conf:\n$TEMPRESOLV" sudo openvpn $OVPNFILE sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf echo "Reset resolv.conf" 

And perhaps someday NetworkManager will simply be able to use the .ovpn file.