sudo echo“ deb http://deb.debian.org/debian/ stable main”> /etc/apt/sources.list.d/unstable.list sudo printf’软件包:* / nPin:发布a =不稳定/ nPin-优先级:90 / n’> /etc/apt/preferences.d/limit-unstable sudo apt update sudo apt install wireguard
我们不要忘记,该VPN也与FreeBSD,OpenBSD甚至与路由器的OpenWRT等操作系统兼容,因为通常只需通过“ opkg”安装它即可,因为通常会安装所有其他软件。
如果您要在装有Android或iOS的智能手机上安装VPN客户端,则我们目前拥有官方应用程序,因此您可以在没有问题的情况下进行安装 Google Play 以及 App Store 分别:
一旦我们在充当服务器的计算机以及我们要连接的所有客户端上正确安装了WireGuard,就必须对其进行配置。 我们必须做的第一件事是在服务器和我们要连接的所有客户端上创建公私钥对。 我们已经使用Debian操作系统生成密钥并配置服务器,但是,我们也可以直接在Windows软件中进行操作。
在Debian上运行WireGuard服务器的路径是/ etc / wireguard /,因此我们将使用以下命令转到该路径:
cd /etc/wireguard/
要在此位置生成公钥和私钥对,我们只需要输入:
wg genkey | tee claveprivadaservidor | wg pubkey > clavepublicaservidor
现在,我们将拥有两个文件,一个具有公钥,一个具有私钥:
这些密钥是我们将用于WireGuard VPN«服务器»的密钥。
要生成将在客户端中使用的另一对公钥和私钥,我们可以在新文件夹中创建它们,或者在同一位置使用其他名称创建它们。
wg genkey | tee claveprivadacliente1 | wg pubkey > clavepublicacliente1
现在,我们将拥有两个文件,一个具有公钥,一个具有私钥:
这些密钥是我们将用于WireGuard VPN客户端的密钥。
与IPsec或OpenVPN服务器相比,WireGuard服务器的配置非常简单,但是,我们必须考虑以下几点。
在服务器中,我们将必须有一个“
接口”部分,在此部分中,我们可以指出
专用IP地址在客户端连接时标识服务器的服务器。 我们必须记住该VPN是L3,因此我们可以放置任何给定时间未使用的任何私有IP地址。 例如,在OpenVPN中,默认子网是10.8.0.0/24,在这里我们还可以放置相同或任何其他子网192.168.2.0/24(而192.168.2.1是服务器本身,而其他IP是客户端) 。 使用«的语法
地址»我们将放置所需的VPN子网。
在«
PrivateKey»我们将必须输入先前为服务器生成的私钥。 在«
监听端口»我们将放置要用于服务器的UDP端口,如果我们在具有NAT的路由器后面,则此端口是以后我们必须在NAT中“打开”的端口。
最后,在《接口》的这一部分中,我们还可以定义在使用《 PostUp》提起虚拟接口之后以及在使用《 PostDown》引发虚拟接口之后执行的命令。 如您所见,由于我们不想对此接口进行NAT,所以我们目前对此进行了评论,但是可以完美地完成它。
在“
窥视”是我们必须放置允许连接的客户端列表的位置。 在这种情况下,我们将仅连接一个“对等”,因此我们将用«定义您的公钥。
公钥»我们先前创建的(或客户端已经提供给我们的,因为它可能是由他生成的),并且我们还可以指示是否允许该客户端使用特定的IP地址进行连接。 与«
允许的IP»指令,我们可以过滤源IP地址,如果输入0.0.0.0/0,则表示我们允许任何IP地址。
该配置文件可以称为«wg0.conf»,因为WireGuard会使用该名称创建虚拟接口,因此非常适合区分它们。 要运行此配置文件,只需运行:
root@debian-vm:/etc/wireguard# wg-quick up wg0
当您启动它时,WireGuard将负责创建虚拟接口,将IP地址,MTU放入,甚至在路由表中创建相应的路由:
root@debian-vm:/etc/wireguard# wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 192.168.2.1 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] wg set wg0 fwmark 51820 [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820 [#] ip -4 rule add not fwmark 51820 table 51820 [#] ip -4 rule add table main suppress_prefixlength 0 [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1 [#] iptables-restore -n
与IPsec或OpenVPN服务器相比,WireGuard客户端配置非常简单,但是,我们必须考虑以下几点。
在客户中,我们必须有一个“
接口”部分,在此部分中,我们可以指出
专用IP地址在我们连接时识别客户端。 我们必须记住该VPN是L3,因此我们可以放置任何给定时间未使用的任何私有IP地址。 例如,在OpenVPN中,默认子网是10.8.0.0/24,在这里我们还可以放置相同或任何其他子网192.168.2.0/24(而192.168.2.1是服务器本身,而地址192.168.2.2从现在开始,成为客户,语法为“
地址”,我们将放置所需的VPN子网。
在«
PrivateKey»我们将必须输入先前为客户端生成的私钥。
在“
窥视“我们将必须在其中放置公钥”
公钥我们要连接的WireGuard服务器”,也就是说,该服务器必须向我们提供此公钥。 在这种情况下,我们还可以使用“
允许的IP”指令,但操作有所不同,在这种情况下,我们可以定义是只想通过VPN到达某个子网(或几个子网),还是要通过虚拟专用网转发所有Internet流量。 如果将子网用逗号分隔,则可以访问服务器上的多个子网,如果要转发所有流量,只需将0.0.0.0/0放入IPsec中即可。
最后,
端点»指令,我们将定义运行WireGuard VPN的服务器的公共IP地址,然后是所用UDP端口的两点(:)。 我们必须记住,WireGuard使用UDP,因此我们不应在防火墙上对其进行过滤。
如果未使用与WireGuard的软件和通信,则它会尽可能不引起注意,即,它不会通过VPN连续发送数据以保持隧道活动状态,非常适合在智能手机上节省电池和移动数据。 在大多数通常的配置中,这很完美,但是如果我们在NAT或防火墙,有可能由于没有数据传输而导致通信中断,因此有必要配置“保持活动”。 要配置“保持活动”,只需指示“ PersistentKeepAlive”指令,然后输入一个整数即可表示保持活动的秒数。 根据官方文档,对于大多数防火墙和NAT系统,设置25秒就足够了,如果设置为0,则禁用此功能。 如果我们在NAT或防火墙后面,并且想要在很长一段时间没有流量的情况下接收传入的连接,则此指令将是必需的,否则我们可能不会使用它。
在Windows操作系统中,我们可以导入相同的配置,并且可以进行连接,尽管我们可以从头开始连接客户端,但是必须将生成的公共密钥“传递”到WireGuard服务器。
查看WireGuard日志以验证VPN连接已正确建立也非常重要。 我们无法在“接口/地址”部分中放置Windows客户端中已在使用的私有IP地址,因为连接会出错。
如您所见,WireGuard VPN的配置非常简单快捷
在RedesZone中,我们检查了WireGuard VPN与L2TP / IPsec和OpenVPN相比的性能,测试是在本地网络中进行的,以避免运营商出现问题,因此我们可以测量能够为我们提供最大价值的实际最大性能。特定于硬件。
我们使用的VPN服务器配置(对于L2TP / IPsec,OpenVPN和WireGuard)如下:
.
我们使用的VPN客户端配置(对于L2TP / IPsec,OpenVPN和WireGuard)如下:
CAT10电缆以7Gbps的速率连接
D-Link DXS-1210-10TS开关用于两者的连接
设备。 测试中使用的操作系统:Windows 10 1909。
测试中获得的性能如下:
如您所见,WireGuard的实际速度是L2TP / IPsec或OpenVPN的两倍,因此我们可以说此VPN确实非常快。
我们希望本设置教程对您有所帮助,并且您可以轻松地部署WireGuard服务器和客户端,以安全的方式从任何地方安全地连接到我们的家庭,企业或Internet。