这是我的 openvpn.conf。
server 192.168.255.0 255.255.255.0
verb 3
key /etc/openvpn/pki/private/VPN.SERVERNAME.COM.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/VPN.SERVERNAME.COM.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun
proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun0
status /tmp/openvpn-status.log
user nobody
group nogroup
### Route Configurations Below
route 192.168.254.0 255.255.255.0
### Push Configurations Below
push "block-outside-dns"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 10.2.0.0 255.255.255.0"
当我从我的客户端连接时,出现此错误 -
Options error: Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:1: block-outside-dns (2.3.2)
答案1
据我所知,在 Linux 中不需要此命令。该命令block-outside-dns
仅适用于 Windows。要实现正确的 DNS 配置,您至少需要在client.conf
:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
/etc/openvpn/update-resolv-conf
openvpn
如果您在通过 安装后没有更改它,则是标准路径apt-get
。
帖子 4 在https://github.com/ValdikSS/openvpn-fix-dns-leak-plugin/issues/12
https://github.com/Nyr/openvpn-install/commit/acca10ba1a87b86da3f402ef08e07ad42126913e
答案2
就我而言,无法理解压缩参数。此外,我可以在客户端之间传输纯文本流量,但 ssh 不起作用。我在 Raspbian 操作系统上安装了最新的软件包。
这是我收到的错误信息:
选项错误:[PUSH-OPTIONS] 中无法识别的选项或缺少参数:1:压缩(2.3.4)
localhost ovpn-client[633]: 写入 TUN/TAP: 参数无效 (code=22)
我通过从源代码构建最新版本解决了我的问题。
首先,安装构建依赖项:
sudo apt update
sudo apt install git build-essential
sudo apt build-dep openvpn
然后运行以下命令:
git clone https://github.com/OpenVPN/openvpn.git
cd openvpn
git tag # check for the latest release tag, in my case it was v2.4.3
git checkout v2.4.3
git submodule update --init --recursive
autoreconf -i
sudo apt install libssl-dev liblz4-dev liblzo2-dev libpam-dev # More library might be required or the version might be different. The configure script will tell if something is missing.
./configure
make -j4
make check -j4
sudo make install
编辑:要使用 systemd,请安装 libsystemd-dev 并进行如下配置:
./configure --prefix=/usr --enable-systemd
要安装,您可以使用 checkinstall 而不是 make install。它会抱怨版本,因此您需要手动设置。
sudo mkdir -p /usr/lib/openpvn # checkinstall failed on my system because the folder did not exist.
sudo checkinstall
这将创建一个 deb 包并将二进制文件和配置文件安装到正确的位置。