我正在我的 Arch Linux 服务器上配置 OpenVPN 2.3.6-1,以加密公共互联网上的 SMB 流量。当我在我的 Linux 虚拟机客户端之一上测试设置时,我收到错误:TLS Error: TLS handshake failed
.
我快速阅读(OpenVZ TLS 错误上的 OpenVPN:TLS 握手失败(谷歌建议的解决方案没有帮助))并尝试从默认 UDP 切换到 TCP,但这只会导致客户端反复报告连接超时。我还尝试禁用密码和 TLS 身份验证,但这导致服务器因Assertion failed at crypto_openssl.c:523
. 在这两种情况下,对客户端和服务器配置都进行了所需的更改。
我一直在按照(https://wiki.archlinux.org/index.php/OpenVPN)的说明设置 OpenVPN 和(https://wiki.archlinux.org/index.php/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scripts ) 来创建密钥和证书。我对这些说明所做的唯一偏差是指定了我自己的计算机名称及其相应的密钥/证书文件名。
另请参阅我关于通过 Internet 保护 SMB 流量的原始问题:(Samba 共享的简单加密)
谁能解释我如何解决这个问题?
细节:
服务器:Arch Linux(最新)通过以太网电缆直接连接到网关。没有iptables。
客户端:VirtualBox 4.3.28r100309 Windows 8.1 主机上的 Arch Linux(最新)虚拟机,桥接网络适配器。没有iptables。Windows 防火墙已禁用。
网关:启用端口 1194 的端口转发,没有防火墙限制。
这里分别是服务器端和客户端的配置文件。我根据 Arch Wiki 上的说明创建了这些。
/etc/openvpn/server.conf
(仅限非注释行):
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert …
Run Code Online (Sandbox Code Playgroud) openvpn ×1