OpenVPNクライアントを介してVPNプロバイダに接続するときにシステムがVPNプロバイダのDNSサーバーを使用するようにsystemdを使用してDebianベースのビルドを設定するにはどうすればよいですか?
答え1
私はこれでかなり多くの旅行をしてきたので、私が見つけたものと解決策を文書化したいと思います。
明らかに、この機能を設定するための過去の標準は、次のヘルパースクリプトでした。アップデートシステムの解決ただし、これは最新バージョンのNetworkManagerでは機能しなくなりました。
私が望む構成を設定するために行ったステップは次のとおりです。 (これは、OpenVPNクライアントを設定して接続したと仮定します。)
# Make a copy of any existing resolv.conf configuration
sudo mv /etc/resolv.conf /etc/resolv.conf.original
# This sets resolvd to redirect to the systemd-resolve 127.0.0.53 redirect
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
# Edit the systemd-resolve configuration file
sudo vi /etc/systemd/resolved.conf
DNS=
ローカル LAN/ルーター DNS IP (例: 192.168.1.1) に設定Domains=
ローカルLANドメイン(my.company.comなど)に設定
sudo service systemd-resolved restart
resolvectl status
グローバル項目は、ユーザーが設定した値を反映する必要があります。/etc/systemd/resolved.conf
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
DNS Domain: my.company.com
これで、openvpn.client.confファイルがある同じディレクトリにヘルパースクリプトを作成し
/etc/openvpn
たり、/etc/openvpn/client
NordVPNで使用する例は次のとおりです。
sudo vi /etc/openvpn/nordvpn.systemd.resolve.sh
# Make the script executable
sudo chmod 750 /etc/openvpn/nordvpn.systemd.resolve.sh
#!/bin/sh
set -e
systemd-resolve -i tun0 \
--set-dns=103.86.96.100 --set-dns=103.86.99.100 \
--set-domain=~. \
--set-dnssec=off
これで、実際のopenvpn.client.confファイル(私はnordpn.confですが、あなたのものは異なるかもしれません)
sudo vi /etc/openvpn/nordvpn.conf
...そして次の行を追加してください:(上記で作成したスクリプトの名前を使用してください。)
script-security 2
up /etc/openvpn/nordvpn.systemd.resolve.sh
それではOpenVPNクライアントを再起動してください。サービス名は、OpenVPN クライアントシステムサービスの設定方法によって異なります。
sudo systemctl restart [email protected]
再起動中にエラーがないことを確認してください。
sudo systemctl status [email protected]
resolvectl status
グローバルエントリは設定された値を反映しなければならず、/etc/systemd/resolved.conf
トンインタフェースはスクリプトを通して追加されたDNS値を表示しなければなりません。
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
DNS Domain: my.company.com
Link # (tun0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 103.86.96.100
DNS Servers: 103.86.96.100 103.86.99.100
DNS Domain: ~.
これで、VPNに接続するとVPNプロバイダのDNSサーバーが使用されますが、接続しない場合はLAN DNSサーバーに置き換えられます。