Wireguard的原理知识

(这是我读官方文档时的简单理解)

Wireguard使用UDP封装IP数据包。在使用的过程中,需要创建一个WireGuard接口,使用自己的私钥和对等方的公钥进行配置,访问对等方网络时的所有数据包将通过该接口发送。

Wireguard可以通过添加多个网络接口来工作,可以使用ifconfig、ip-address等工具配置这些网络接口,可以使用route、ip-route为这些接口添加和删除路由,而WireGuard方面的配置需要使用wg工具完成。这些接口充当隧道接口。

WireGuard将隧道IP地址与公钥和远端端点相关联,当接口向对等方发送数据包时,会执行如下操作:

  1. 判断数据包发送给哪个对等方,如果不属于任何已配置的对等方,则丢弃该数据包
  2. 使用对等方的公钥加密整个IP数据包
  3. 通过UDP将数据包发送给对等方

当对等方接受到数据包时,会执行如下操作:

  1. 解密收到的数据包
  2. 记录对等方最新的Internet端点数据
  3. 判断该数据包的发送者是否是允许的,如果不允许则丢弃数据包

参考资料

  1. wireguard