使用具有共享秘密的 OpenVPN 连接两台服务器

介绍

OpenVPN 是一种基于 SSL 的安全 VPN,几乎适用于所有类 UNIX 系统,也适用于 Windows。 OpenVPN 可用于连接两台机器并在它们之间安全地交换流量。 本指南解释了怎样使用 OpenVPN 和共享密钥在两台服务器之间建立连接。

先决条件

  • Ubuntu 或 Debian
  • 10分钟

安装包

您可以在两台服务器上运行此命令:

sudo apt-get install openvpn

配置

OpenVPN 基于配置文件,其中写入了其他远程服务器的所有详细信息。还有一个 Server -> Client OpenVPN 模式,但使用共享密钥设置 P2P 连接更容易,而且它们符合我们的需求。

安装过程完成后,我们可以创建一个以结尾的新文件 .conf 在下面 /etc/openvpn/*.

proto       udp
mode        p2p
remote      <REMOTE_HOST>
rport       <REMOTE_PORT>
local       <LOCAL_HOST>
lport       <LOCAL_PORT>
dev-type    tun
tun-ipv6
resolv-retry infinite
dev         <INTERFACE_NAME>
comp-lzo
persist-key
persist-tun
cipher aes-256-cbc
ifconfig <LOCAL_TUNNEL_IP>  <REMOTE_TUNNEL_IP>
secret /etc/openvpn/<NAME_OF_CONFIG_FILE>.key

一旦我们创建了我们的配置文件,我们就可以创建我们的共享密钥,我们必须将其传输到另一台服务器。

openvpn --genkey --secret /etc/openvpn/<NAME_OF_CONFIG_FILE>.key

连接服务器

我们现在可以立即开始连接我们的服务器。 我们必须创建相同的配置文件并将密钥从初始服务器复制到另一台服务器上。 但请记住,配置文件并不相同,因为 <REMOTE><LOCAL> 以及 <TUNNEL_IP> 领域不同。

启动隧道

一旦我们将密钥从初始服务器复制到第二台服务器并完成了配置文件的编辑,我们就可以通过在 shell 中键入以下命令来启动隧道:

service openvpn start <NAME_OF_CONFIG_FILE>

测试隧道

通过打字 ping REMOTE_TUNNEL_IP 进入我们的shell,我们可以验证另一端是否已启动并运行。 如果其他服务器没有回复,请检查以下内容:

  • 两边都有防火墙。
  • 每个服务器上的密钥是相同的。
  • <REMOTE><LOCAL> 字段设置正确。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com