web-dev-qa-db-ja.com

OpenVPNを介してDNSサーバーをクライアントにリモートプッシュする

OpenVPN server-configを介してDNSサーバーをプッシュしようとすると、そのサーバーが接続されたクライアントシステムの最初のDNSサーバーになりません。最終的には代替DNSサーバーとして指定されます。

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

特定のネットワーク制限を克服するために、それらが適切に配置されている場合は、443TCPを使用します。 -つまり、DNSクエリはTCP(DNSサーバーを手動で再構成した場合)を介して送信されます)。これは、パフォーマンスの観点からはあまり拡張性がありません。

そのためのkewlソリューションはありますか?

マリウス

4
wishi

「クライアント」によって異なることに気づきました。ネットワークマネージャーを使用するとDNSを取得できますが、「通常の」openvpnサービス(Ubuntu)を使用するとDNSを取得できません。私は通常、ネットワークマネージャーにVPNを接続させるので、これについては詳しく調べていません。

4
Jimmy Hedman

openvpnターミナルベクトルにコミットしている場合は、~/bin/m0vpnm0というVPNの場合)というbashスクリプトを配置して、ターミナルを開いて次のように入力するだけで接続します。

m0vpn

スクリプトは次のとおりです。

#!/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"

そして、おそらくいつかNetworkManagerは単に.ovpnファイルを使用できるようになるでしょう。

0
Charney Kaye