当我尝试通过 OpenVPN 服务器配置推送 DNS 服务器时,我没有将该服务器设置为所连接客户端系统上的第一个 DNS 服务器。它最终被指定为备用 DNS 服务器。
push "dhcp-option DNS 89.238.75.146" # DNS-Server 1 (local djbdns)
为了克服某些网络限制(如果存在),我会使用 443 TCP。——这意味着我的 DNS 查询是通过 TCP 发送的(如果我手动重新配置 DNS 服务器),从性能角度来看,这不能很好地扩展。
有没有什么好的解决办法?
马里乌斯
答案1
我注意到它根据“客户端”而有所不同。如果我使用网络管理器,我会获得 DNS,但如果我使用“常规” openvpn 服务(在 Ubuntu 中),我不会获得 DNS。我没有深入研究这个问题,因为我通常让网络管理器连接我的 vpn。
答案2
如果一个人致力于openvpn
终端向量,请放置一个名为的 bash 脚本~/bin/m0vpn
(用于名为的 VPN m0
),这样我只需打开终端并输入以下内容即可连接:
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
文件。