虚拟私人网络(VPN)在现代网络中被广泛使用。如今,有多种解决方案可供用户访问各种资源,同时保持其机密性和隐私。在众多VPN协议中,WireGuard因其简单性、速度和安全性而受到广泛使用。WireGuard最初在Linux内核中实现,现在也可用于其他平台,如iOS和Android等。
WireGuard的基本原理
WireGuard使用UDP作为其传输协议,并基于Critokey Routing (CKR)进行点对点通信。每个节点(无论是服务器还是客户端)都有一对密钥(公钥和私钥),公钥与允许的IP地址之间存在链接。
WireGuard设置步骤
本文将介绍如何在两个节点(PeerA和PeerB)之间设置WireGuard。两个节点均运行Fedora Linux,并使用NetworkManager进行持久配置。
第一步:安装必要的包
在PeerA和PeerB上安装wireguard-tools
包:
```bash $ sudo -i
```
此包在Fedora Linux更新库中可用。它会在/etc/wireguard/
目录下创建配置目录,您将在此创建密钥和接口配置文件。
第二步:生成密钥对
接下来,使用wg
工具在每个节点上生成公钥和私钥:
```bash
```
第三步:配置PeerA的WireGuard接口
WireGuard接口使用名称wg0
、wg1
等。为WireGuard接口创建配置文件,您需要以下信息:
- 在PeerA节点上配置的IP地址和子网掩码。
- 此Peer监听的UDP端口。
- PeerA的私钥。
创建配置文件/etc/wireguard/wg0.conf
:
```bash
[Interface] Address = 172.16.1.254/24 SaveConfig = true ListenPort = 60001 PrivateKey = mAoO2RxlqRvCZZoHhUDiW3+zAazcZoELrYbgl+TpPEc=
[Peer] PublicKey = IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw= AllowedIPs = 172.16.1.2/32 EOF ```
允许UDP流量通过此Peer将监听的端口:
```bash
```
最后,将接口配置文件导入NetworkManager,以便在重启后保持WireGuard接口的持久性:
```bash
```
成功添加连接后,您可以通过以下命令验证设备wg0的状态:
```bash
```
配置PeerB的WireGuard接口
现在,您需要为第二个Peer创建wg0接口的配置文件。确保您拥有以下信息:
- 在PeerB上配置的IP地址和子网掩码。
- PeerB的私钥。
- PeerA的公钥。
- PeerA的IP地址或主机名及其监听WireGuard流量的UDP端口。
创建配置文件/etc/wireguard/wg0.conf
:
```bash
[Interface] Address = 172.16.1.2/32 SaveConfig = true PrivateKey = UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c=
[Peer] PublicKey = FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8= AllowedIPs = 172.16.1.254/32 Endpoint = peera.example.com:60001 EOF ```
同样,将此接口配置文件导入NetworkManager:
```bash
```
验证PeerB的wg0设备状态:
```bash
```
验证节点之间的连通性
在执行上述步骤后,两个Peer可以通过VPN连接相互通信。您可以使用以下ICMP测试验证连通性:
bash
[root@peerb ~]# ping 172.16.1.254 -c 4
如果一切设置正确,您应该能看到类似如下的输出,表明Peer之间的连接正常。
总结
通过上述步骤,您可以在Fedora Linux上成功设置WireGuard VPN。WireGuard以其简单性和高效性,成为了现代VPN解决方案中受欢迎的选择。希望本指南能帮助您顺利搭建VPN连接,确保网络安全与隐私。