OpenVPN server-configを介してDNSサーバーをプッシュしようとすると、そのサーバーが接続されたクライアントシステムの最初のDNSサーバーになりません。最終的には代替DNSサーバーとして指定されます。
Push "dhcp-option DNS 89.238.75.146" # DNS-Server 1 (local djbdns)
特定のネットワーク制限を克服するために、それらが適切に配置されている場合は、443TCPを使用します。 -つまり、DNSクエリはTCP(DNSサーバーを手動で再構成した場合)を介して送信されます)。これは、パフォーマンスの観点からはあまり拡張性がありません。
そのためのkewlソリューションはありますか?
マリウス
「クライアント」によって異なることに気づきました。ネットワークマネージャーを使用するとDNSを取得できますが、「通常の」openvpnサービス(Ubuntu)を使用するとDNSを取得できません。私は通常、ネットワークマネージャーにVPNを接続させるので、これについては詳しく調べていません。
openvpn
ターミナルベクトルにコミットしている場合は、~/bin/m0vpn
(m0
という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
ファイルを使用できるようになるでしょう。