# WireGuard 加密通信

## 概述

在使用 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 协议消耗更少的资源，能够更快速地建立和维护连接。

可以去[这个网站](https://www.wireguard.com/install/)下载WireGuard

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

## 部署服务器端

>[!info]  信息
>服务器端和客户端本质上没有什么区别，因为 WireGuard 就是点对点连接的，有公网 IP 的就是服务器端，没有的就是客户端。

### 下载 WireGuard

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

### 配置服务器

![](https://img.papergate.top:5000/i/2024/12/67739ecd3aae7.webp)

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

### 配置对等节点

![](https://img.papergate.top:5000/i/2024/12/6773a2e0f281f.webp)

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

## 部署客户端

### 下载 WireGuard

可以去[这个网站](https://www.wireguard.com/install/)下载WireGuard

### 配置客户端

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

![](https://img.papergate.top:5000/i/2024/12/6773a16a65b28.webp)

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

```text
[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
```

## 实际效果

使用客户端连接服务器端以后，服务器端就会建立一个局域网，服务器端的虚拟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)


---

> 作者: Aphros  
> URL: https://blog.papergate.top/posts/wireguard-%E5%8A%A0%E5%AF%86%E9%80%9A%E4%BF%A1/  

