OpenVPN Linux 客户端-tls 密钥协商失败(FrootVPN)

OpenVPN Linux 客户端-tls 密钥协商失败(FrootVPN)

我正在使用免费的 FrootVPN 服务(在 Windows 上完美运行)。但在 Linux 上我无法让它运行。FrootVPN 的支持网页已损坏,因此我无法向他们的支持人员发送消息。

我知道这是一个与服务器相关的论坛,但是我还没有找到任何像样的与客户端相关的论坛,而且我无法联系 FrootVPN 支持,所以我将在这里发布我的主题,希望可以得到允许。

我收到的错误是:

TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed

我尝试了所有方法:

  • 将名称服务器 80.67.0.2 添加到/etc/resolv.conf(作为他们的指南页面建议)
  • 保护 /etc/resolv.conf 不被覆盖
  • 检查是否已启用 IPV6
  • 重新安装 openvpn
  • 转发端口 1194
  • 从配置中分离“ca”、“cert”和“key”
  • 根本不使用证书和密钥(这不会影响与该服务器的连接)
  • 使用update-resolv-conf script
  • 更改配置文件中的各种设置

无论我做什么,这个错误仍然存​​在。我的 ISP 没有阻止任何东西,我 100% 确定这一点。

此外,在十分之一的情况下我可以成功连接到服务器,然后我几乎每秒都会收到以下消息:

Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #1 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings

如果连接成功,VPN 就可以正常工作,但我被这些信息轰炸了。但在大多数情况下,就像我说的,10 次中有 9 次,它就是无法连接,并出现上述 tls 错误。

日志示例:

# openvpn '/etc/openvpn/frootvpn.ovpn'
Wed Jan 21 21:35:06 2015 OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Dec  1 2014
Enter Auth Username:COOLak
Enter Auth Password:
Wed Jan 21 21:35:18 2015 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Wed Jan 21 21:35:18 2015 Control Channel MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Jan 21 21:35:18 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Wed Jan 21 21:35:18 2015 RESOLVE: NOTE: se-openvpn.frootvpn.com resolves to 8 addresses
Wed Jan 21 21:35:18 2015 Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ]
Wed Jan 21 21:35:18 2015 Local Options hash (VER=V4): '3514370b'
Wed Jan 21 21:35:18 2015 Expected Remote Options hash (VER=V4): '239669a8'
Wed Jan 21 21:35:18 2015 UDPv4 link local: [undef]
Wed Jan 21 21:35:18 2015 UDPv4 link remote: [AF_INET]178.73.212.198:1198
Wed Jan 21 21:36:18 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Wed Jan 21 21:36:18 2015 TLS Error: TLS handshake failed
Wed Jan 21 21:36:18 2015 TCP/UDP: Closing socket
Wed Jan 21 21:36:18 2015 SIGUSR1[soft,tls-error] received, process restarting
Wed Jan 21 21:36:18 2015 Restart pause, 2 second(s)
Wed Jan 21 21:36:20 2015 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Wed Jan 21 21:36:20 2015 Re-using SSL/TLS context
Wed Jan 21 21:36:20 2015 Control Channel MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Jan 21 21:36:20 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Wed Jan 21 21:36:20 2015 RESOLVE: NOTE: se-openvpn.frootvpn.com resolves to 8 addresses
Wed Jan 21 21:36:20 2015 Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ]
Wed Jan 21 21:36:20 2015 Local Options hash (VER=V4): '3514370b'
Wed Jan 21 21:36:20 2015 Expected Remote Options hash (VER=V4): '239669a8'
Wed Jan 21 21:36:20 2015 UDPv4 link local: [undef]
Wed Jan 21 21:36:20 2015 UDPv4 link remote: [AF_INET]178.73.212.205:1206
Wed Jan 21 21:37:20 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Wed Jan 21 21:37:20 2015 TLS Error: TLS handshake failed
Wed Jan 21 21:37:20 2015 TCP/UDP: Closing socket
Wed Jan 21 21:37:20 2015 SIGUSR1[soft,tls-error] received, process restarting
Wed Jan 21 21:37:20 2015 Restart pause, 2 second(s)
Wed Jan 21 21:37:22 2015 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Wed Jan 21 21:37:22 2015 Re-using SSL/TLS context
Wed Jan 21 21:37:22 2015 Control Channel MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Jan 21 21:37:22 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Wed Jan 21 21:37:22 2015 RESOLVE: NOTE: se-openvpn.frootvpn.com resolves to 8 addresses
Wed Jan 21 21:37:22 2015 Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ]
Wed Jan 21 21:37:22 2015 Local Options hash (VER=V4): '3514370b'
Wed Jan 21 21:37:22 2015 Expected Remote Options hash (VER=V4): '239669a8'
Wed Jan 21 21:37:22 2015 UDPv4 link local: [undef]
Wed Jan 21 21:37:22 2015 UDPv4 link remote: [AF_INET]178.73.212.200:1202
Wed Jan 21 21:38:22 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Wed Jan 21 21:38:22 2015 TLS Error: TLS handshake failed
Wed Jan 21 21:38:22 2015 TCP/UDP: Closing socket
Wed Jan 21 21:38:22 2015 SIGUSR1[soft,tls-error] received, process restarting
Wed Jan 21 21:38:22 2015 Restart pause, 2 second(s)

如果连接成功(这种情况很少发生),这里是另一个日志示例:

Wed Jan 21 21:38:24 2015 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Wed Jan 21 21:38:24 2015 Re-using SSL/TLS context
Wed Jan 21 21:38:24 2015 Control Channel MTU parms [ L:1541 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Jan 21 21:38:24 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Wed Jan 21 21:38:24 2015 RESOLVE: NOTE: se-openvpn.frootvpn.com resolves to 8 addresses
Wed Jan 21 21:38:24 2015 Data Channel MTU parms [ L:1541 D:1450 EF:41 EB:4 ET:0 EL:0 ]
Wed Jan 21 21:38:24 2015 Local Options hash (VER=V4): '3514370b'
Wed Jan 21 21:38:24 2015 Expected Remote Options hash (VER=V4): '239669a8'
Wed Jan 21 21:38:24 2015 UDPv4 link local: [undef]
Wed Jan 21 21:38:24 2015 UDPv4 link remote: [AF_INET]178.73.212.201:1194
Wed Jan 21 21:38:24 2015 TLS: Initial packet from [AF_INET]178.73.212.201:1194, sid=7db519ba bd8492df
Wed Jan 21 21:38:24 2015 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Jan 21 21:38:24 2015 VERIFY OK: depth=1, /C=SE/ST=QQ/L=FrootTown/O=FrootOrg/OU=changeme/CN=changeme/name=changeme/[email protected]
Wed Jan 21 21:38:24 2015 VERIFY OK: nsCertType=SERVER
Wed Jan 21 21:38:24 2015 VERIFY OK: depth=0, /C=SE/ST=QQ/L=FrootTown/O=FrootOrg/OU=changeme/CN=server/name=changeme/[email protected]
Wed Jan 21 21:38:25 2015 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Jan 21 21:38:25 2015 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Jan 21 21:38:25 2015 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Jan 21 21:38:25 2015 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Jan 21 21:38:25 2015 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Jan 21 21:38:25 2015 [server] Peer Connection Initiated with [AF_INET]178.73.212.201:1194
Wed Jan 21 21:38:25 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #1 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:25 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #2 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:26 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #3 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:26 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #4 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:27 2015 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Jan 21 21:38:27 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #5 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:27 2015 PUSH: Received control message: 'PUSH_REPLY,ifconfig-ipv6 2a00:1a28:1167::1011/64 2a00:1a28:1167::1,dhcp-option DNS 80.67.0.2,dhcp-option DNS 91.213.246.2,redirect-gateway def1,route-ipv6 2000::/3,tun-ipv6,route-gateway 178.73.192.1,topology subnet,ping 10,ping-restart 160,ifconfig 178.73.192.19 255.255.255.224'
Wed Jan 21 21:38:27 2015 OPTIONS IMPORT: timers and/or timeouts modified
Wed Jan 21 21:38:27 2015 OPTIONS IMPORT: --ifconfig/up options modified
Wed Jan 21 21:38:27 2015 OPTIONS IMPORT: route options modified
Wed Jan 21 21:38:27 2015 OPTIONS IMPORT: route-related options modified
Wed Jan 21 21:38:27 2015 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Jan 21 21:38:27 2015 ROUTE default_gateway=192.168.1.1
Wed Jan 21 21:38:27 2015 ROUTE6: default_gateway=UNDEF
Wed Jan 21 21:38:27 2015 TUN/TAP device tun0 opened
Wed Jan 21 21:38:27 2015 TUN/TAP TX queue length set to 100
Wed Jan 21 21:38:27 2015 do_ifconfig, tt->ipv6=1, tt->did_ifconfig_ipv6_setup=1
Wed Jan 21 21:38:27 2015 /sbin/ifconfig tun0 178.73.192.19 netmask 255.255.255.224 mtu 1500 broadcast 178.73.192.31
Wed Jan 21 21:38:27 2015 /sbin/ifconfig tun0 inet6 add 2a00:1a28:1167::1011/64
Wed Jan 21 21:38:27 2015 /sbin/route add -net 178.73.212.201 netmask 255.255.255.255 gw 192.168.1.1
Wed Jan 21 21:38:27 2015 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 178.73.192.1
Wed Jan 21 21:38:27 2015 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 178.73.192.1
Wed Jan 21 21:38:27 2015 add_route_ipv6(2000::/3 -> 2a00:1a28:1167::1 metric 0) dev tun0
Wed Jan 21 21:38:27 2015 /sbin/route -A inet6 add 2000::/3 dev tun0
Wed Jan 21 21:38:27 2015 Initialization Sequence Completed
Wed Jan 21 21:38:27 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #6 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:27 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #7 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #8 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #9 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #10 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #11 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #12 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #13 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #14 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Wed Jan 21 21:38:28 2015 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #15 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings

[如此循环,直到永远]


假设它在 Windows 上完美运行,并且互联网上的许多用户也报告它在 Linux 上完美运行,我推测这是我本地的问题,而不是服务器的问题。我使用的是 Kali Linux 3.14 (x64)。他们的 .ovpn 文件:https://www.frootvpn.com/files/frootvpn.ovpn,如果有帮助的话。

我花了一整天时间试图弄清楚,但不幸的是,这个问题的解决方案超出了我的知识范围。任何帮助都将不胜感激。提前谢谢。PS:创建此主题后,我将离线几个小时。

UPD:我忘了说我还尝试过只指定一个服务器 IP,但仍然只能偶尔连接,而大多数情况下都无法连接。对等端的选择并不重要:无论是 178.73.212.201:1194 还是列表中的其他任何 IP,问题都是一样的。之所以有多个对等端,是因为他们在 .ovpn 文件中提供了这些 IP,以减少服务器的负载。每个 IP 实际上都在工作,但只有在极少数情况下才能成功连接。

答案1

当您从 Windows 复制证书和密钥文件时,您的 Linux 系统可能因使用错误的行尾而损坏了文件。尝试直接使用您的 Linux 系统下载 FrootVPN 配置文件。

答案2

由于我认为这里没有足够的信息来明确解决这个问题,所以这个答案更像是一个可以尝试的事情列表,这些事情要么可以解决这个问题,要么可以提供更多信息。我也不确定为什么它被标记为活跃问题,但当我注意到它已经有 1.5 年的历史时,我已经写出了大部分的回答。

ovpn 文件

您提供的配置 (.ovpn) 文件的链接已失效。此链接是否包含与您使用的相同的 ovpn?由于(我刚刚意识到)您很久以前就发布了此信息,因此链接可能刚刚更改,但以防万一,请查看此链接。 https://www.frootvpn.com/files/se.openvpn.frootvpn.ovpn

防火墙

让我印象深刻的一件事是他们使用一系列端口(通常您只使用一个端口,通常是 1194,用于 openvpn 的 udp)。这通常是 VPN 连接出现问题时的问题,但如果是防火墙引起的问题,通常是二进制问题 - 它要么工作,要么不工作。但在这种情况下,有可能 1194 端口正确通过,但其他端口被阻止。为了排除这种情况,您应该禁用计算机上的防火墙,并确保该端口范围已转发到您的计算机(根据 .ovpn 文件,udp 端口​​ 1194 到 1209 包括在内)。根据您的路由器品牌/型号,您可能可以通过单一设置完成一个范围。

我没有使用过 Kali,但它是 debian 的衍生产品,因此它很可能使用“直” iptables 作为防火墙。禁用 iptables 有点麻烦,这里有一些非常明确的操作说明:

首先确保它已安装:

dpkg -l | grep iptables

如果尚未安装,那么除非您有其他防火墙应用程序,否则您只需配置端口转发并开始测试 VPN 连接即可;否则:

以 sudo 或 root shell 身份运行所有命令。这将保存您当前的防火墙设置,然后设置完全透明的防火墙(相当于没有防火墙)。

iptables-save > ~/iptables-rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

完成无防火墙测试后,您可以用以下命令重新启用它:

iptables-restore < ~/iptables-rules

确保您已禁用防火墙并转发端口范围​​,然后尝试连接到 VPN。

可能性较小但仍然有可能

如果您使用的是正确的 .ovpn(很有可能)并且它与防火墙/端口转发无关,那么这里还有一些其他的事情可以尝试并提供数据点,以便人们更容易提供帮助:

  1. 将此参数添加到您的 openvpn 调用中:--verb 11这会将调试输出调到 11。将会有一大堆文字 - 如果您看不懂,请将其粘贴到 pastebin 网站并在此处发布链接。不要直接在此处粘贴文本

  2. 时钟偏差 - 如果您的本地 PC 时钟设置不准确,或者只是不是准确 - 跳来跳去等 - 您将遇到类似这样的失败。确保设置正确(或配置 NTP 服务器连接)。

  3. 您的互联网连接是否延迟较高(例如卫星、质量很差的 DSL 或喘气拨号)?这些将导致加密相关失败。

  4. 您使用的路由器是什么类型(品牌/型号)?您更新过它的固件吗?

  5. 您是否拥有一台 CPU 不足的旧电脑?加密/解密可能会使旧电脑崩溃并导致这些问题。这必须是一台非常旧的电脑才会出现这种情况,但这种情况经常发生在配置为 openvpn 客户端的路由器上 - 它们的微型风冷 CPU 有时无法跟上。

  6. Windows 计算机上的 openvpn 客户端的日志是什么样的?您是否看到任何相同的错误/警告?

  7. 这可能不是原因,但上周我在 Fedora 上很难让 openvpn 作为客户端运行,这是因为使用 md5 加密密钥,而大多数 Linux 发行版都已弃用 md5。调试输出将告诉我们是否发生了这种情况。澄清一下 - 相同的配置文件在 Windows 上使用 openvpn 时有效,但在 Linux 上无效,与你现在/过去/看到的行为相同。

编辑并添加一件事:

  1. 尝试使用 pptp 而不是 openvpn。确保路由器上启用了 VPN 直通(它使用一种称为 GRE 的常见数据包类型,路由器必须不受干扰地通过它)。它的安全性要低得多,但会是一个很好的测试。根据您需要 VPN 的安全性,它可能就足够了。尝试一下,如果它有效,请研究真正的安全问题。

相关内容