WireGuard 加密通信

第 1 节 概述

在使用 NAS 的过程中,并非所有 Docker 应用都需要暴露在公网环境中。为了提升安全性,我们通常希望某些应用仅限于内网访问。然而,这也意味着当我们身处外网时,无法直接访问这些内网应用。

要实现外网访问内网应用的便利性,同时保持安全性,最佳解决方案就是通过 VPN 连接。

WireGuard 是一个简单、高效、安全的 VPN 协议,主要用于加密网络通信。其基本原理可以分为以下几个核心部分:

  1. 点对点加密连接

    • WireGuard 使用 公钥加密 进行身份验证和加密通信。每个节点都有一个 私钥公钥,公钥用于标识节点并加密数据,私钥用于解密。
    • 客户端和服务器之间通过交换公钥来建立加密连接,而不需要传统的 SSL/TLS 证书。
  2. 无状态加密

    • WireGuard 的加密过程是无状态的。每个数据包都包含足够的信息来验证其来源、加密内容和有效性,避免了传统 VPN 协议中复杂的会话管理和密钥交换过程。
    • 它使用 ChaCha20(用于加密)、Poly1305(用于认证)等现代加密算法,确保了安全性和性能。
  3. 简单配置

    • WireGuard 的配置文件非常简洁,客户端和服务器配置都只需定义各自的公钥、私钥以及允许的 IP 地址和端口。相比 OpenVPN 和 IPsec,WireGuard 更容易配置和管理。
  4. 高效性和低延迟

    • WireGuard 设计目标之一是低延迟和高效性,因此在性能上比传统 VPN 协议(如 OpenVPN 和 IPsec)更优。它比其他 VPN 协议消耗更少的资源,能够更快速地建立和维护连接。

可以去这个网站下载WireGuard

摘要

下文主要讲述如何部署 WireGuard 的服务器端和客户端,分别部署好服务器端和客户端就可以实现 WirdGuard 的点对点加密连接了

第 2 节 部署服务器端

信息

服务器端和客户端本质上没有什么区别,因为 WireGuard 就是点对点连接的,有公网 IP 的就是服务器端,没有的就是客户端。

2.1 下载 WireGuard

威联通自带应用 QVPN,可以直接部署 WireGuard 服务器,当然,也可以用 Docker 去部署一个WireGuard 服务器。

2.2 配置服务器

https://img.papergate.top:5000/i/2024/12/67739ecd3aae7.webp

  • 生成服务器端的公钥和私钥,公钥复制出来备用
  • 监听端口设置一个自己喜欢的端口号

2.3 配置对等节点

https://img.papergate.top:5000/i/2024/12/6773a2e0f281f.webp

客户端公钥在配置客户端时再获取

第 3 节 部署客户端

3.1 下载 WireGuard

可以去这个网站下载WireGuard

3.2 配置客户端

添加一个空隧道,自动会生成客户端的公钥和私钥

https://img.papergate.top:5000/i/2024/12/6773a16a65b28.webp

填写好服务器端的相关参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[Interface]
PrivateKey = xxxxx
Address = 198.18.7.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = address:port
PersistentKeepalive = 25

第 4 节 实际效果

使用客户端连接服务器端以后,服务器端就会建立一个局域网,服务器端的虚拟IP地址就是198.18.7.1,客户端的虚拟IP地址就是198.18.7.2,他们两个在一个网段,所以能够互相连接

在我这边大概就是这个效果:

客户端可以正常连接

https://img.papergate.top:5000/i/2024/12/6773a591a4903.webp

服务器端显示连接信息

https://img.papergate.top:5000/i/2024/12/6773a6de7132b.webp

正常打开部署在内网的应用

https://img.papergate.top:5000/i/2024/12/6773a75669277.webp