虚拟专用网络虚拟专用网络被广泛使用。今天有各种方案可供用户使用,通过这些方案,用户可以访问任何类型的资源,同时保持他们的机密性和隐私。最近,wireguard因其简单、快速和安全而成为使用最广泛的虚拟专用网络协议之一。Wireguard最早应用于Linux内核,但目前在其他平台上也可以使用,如iOS、Android等。Wireguard使用UDP作为其传输协议,并在CritokeyRouting(CKR)的基础上建立对等点之间的通信。每个对等节点(无论是服务器还是客户端)都有一对密钥密钥(公钥和私钥),公钥和许可IP之间建立通信连接。有关wireguard的更多信息,请访问他们的wireguard.com/"_fcksavedurl="https://www.wireguard.com/"class="ext"rel="externalnofollow"target="_blank">主页。本文介绍了如何在两个对等节点(PeerA和PeerB)之间设置wireguard。两个节点都运行FedoraLinux系统,使用NetworkManager进行持久配置。wireguard-%E8%AE%BE%E7%BD%AE%E4%B8%8E%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE"class="mume-header">wireguardsetupandnetworkconfiguration在PeerA和PeerB之间建立持久的虚拟私有连接到网络只需要三个步骤:安装所需的软件包。生成密钥对密钥对。配置wireguard接口。在两个对等节点(PeerA和PeerB)上安装wireguard-tools包:$sudo-i#dnf-yinstallwireguard-tools这个包可以在FedoraLinux更新存储库中找到。它在/etc/wireguard/中创建一个配置目录。您将在此处创建密钥和接口配置文件。生成密钥对现在,使用wg工具在每个节点上生成公钥和私钥:#cd/etc/wireguard#wggenkey|三通私钥|wgpubkey>publickeywireguard-%E6%8E%A5%E5%8F%A3"class="mume-header">在PeerA上配置wireguard接口,wireguard接口的命名规则为wg0、wg1等,完成以下内容为wireguard接口创建配置的步骤:在PeerA节点上配置所需的IP地址和掩码。节点侦听的UDP端口。PeerA的私钥。#cat</etc/wireguard/wg0.conf[Interface]地址=172.16.1.254/24SaveConfig=truelistenport=60001privateKey=maoo2rxlqrvczzzohhudiw3+zaazczoelrybgl=[p+tper]:#firewall-cmd--add-port=60001/udp--permanent--zone=public#firewall-cmd---reloadsuccess最后,将接口配置文件导入NetworkManager。这样,wireguard接口将在重启后保持不变。#nmcliconimporttypewireguardfile/etc/wireguard/wg0.confConnection'wg0'(21d939af-9e55-4df2-bacf-a13a4a488377)添加成功。验证wg0的状态:#wginterface:wg0publickey:FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCj8MUPxuaL(隐藏)监听端口:60001peer:IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=允许的ips:172.16.1.2/32#nmcli-pdeviceshowwg0=============================================================================设备详细信息(wg0)===============================================================================GENERAL.DEVICE:wg0--------------------------------------------------------------------------一般。类型:wireguard----------------------------------------------------------------------------GENERAL.HWADDR:(未知)--------------------------------------------------------------------------GENERAL.MTU:1420------------------------------------------------------------------------------GENERAL.STATE:100(connected)--------------------------------------------------------------------------一般。连接:wg0----------------------------------------------------------------------------GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveC>--------------------------------------------------------------------------------IP4.ADDRESS[1]:172.16.1.254/24IP4.GATEWAY:--IP4.ROUTE[1]:dst=172.16.1.0/24,nh=0.0.0.0,mt=>--------------------------------------------------------------------------IP6.GATEWAY:----------------------------------------------------------------------------以上输出显示接口wg0已连接现在它可以与VPNIP地址172.16.1.2上的对等方通信。wireguard-%E6%8E%A5%E5%8F%A3"class="mume-header">在PeerB上配置wireguard接口现在是时候为第二个对等点上的wg0接口创建配置文件了。确保你完成以下步骤:在PeerB节点上设置IP地址和掩码。PeerB的私钥。PeerA的公钥。PeerA的IP地址或主机名,用于侦听wireguard流量的UDP端口。#cat</etc/wireguard/wg0.conf[Interface]Address=172.16.1.2SaveConfig=truePrivateKey=UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c=[Peer]PublicKey=FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=AllowedIPs=172.16.1.254/32Endpoint=peera.example.com:60001EOF最后一步是将接口配置文件导入NetworkManager。如上Asmentioned,这一步是重启后保持wireguard接口持久化的关键。#nmcliconimporttypewireguardfile/etc/wireguard/wg0.confConnection'wg0'(39bdaba7-8d91-4334-bc8f-85fa978777d8)successfullyadded.验证wg0的状态:#wginterface:wg0publickey:IOePXA9igeRqzCSzw4dhpl4+6l/NiQvtkDSAnj5私钥:(隐藏)监听端口:47749peer:FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=端点:192.168.124.230:60001允许的ips:172.16.1.254/32#nmcli-pdeviceshowwg0==============================================================================设备详细信息(wg0)===============================================================================一般。设备:wg0----------------------------------------------------------------------------一般。类型:wireguard----------------------------------------------------------------------------GENERAL.HWADDR:(未知)--------------------------------------------------------------------------------通用.MTU:1420------------------------------------------------------------------------GENERAL.STATE:100(connected)--------------------------------------------------------------------------GENERAL.CONNECTION:wg0--------------------------------------------------------------------------------GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveC>--------------------------------------------------------------------------IP4.ADDRESS[1]:172.16.1.2/32IP4.GATEWAY:--------------------------------------------------------------------------IP6.GATEWAY:--------------------------------------------------------------------------以上输出显示接口wg0已连接现在,它可以与VPNIP地址为172.16.1.254的对端节点通信。完成上述步骤后,两个对等节点就可以通过虚拟专用网络连接相互通信了。以下是ICMP测试结果:[root@peerb~]#ping172.16.1.254-c4PING172.16.1.254(172.16.1.254)56(84)bytesofdata.64bytesfrom172.16.1.254:icmp_seq=1ttl=64time=0.566ms64bytesfrom172.16.1.254:icmp_seq=2ttl=64time=1.33ms64bytesfrom172.16.1.254:icmp_seq3ttl=64time=1.67ms64bytesfrom172.16.1.254:icmp_seq=4timettl=6=1.47ms在这种情况下,如果您在PeerA端口60001上捕获UDP流量,您将看到依赖于Wireguard协议的流量ProcessandEncryptedData:CapturingUDPTrafficBetweenNodesRelyingontheWireguardProtocol总结虚拟专用网络很常见。在用于部署虚拟专用网络的各种协议和工具中,wireguard是一种简单、轻量级且安全的选择。它可以基于CryptoKey路由在对等节点之间建立安全的点对点连接,过程非常简单。此外,NetworkManager支持wireguard接口,允许在重新启动后进行持久配置。