WireGuard 简介与配置指南
码不停提
WireGuard 是一款简洁高效的 VPN 解决方案,无论是在企业中搭建内网,还是个人用户跨设备安全通信,都是极佳的选择。
码不停提
WireGuard 是一款简洁高效的 VPN 解决方案,无论是在企业中搭建内网,还是个人用户跨设备安全通信,都是极佳的选择。
WireGuard 是一种现代化的开源虚拟专用网络(VPN)解决方案,相较于传统的 VPN 协议(如 OpenVPN 和 IPsec),它更加轻量、快速和安全。WireGuard 于 Linux 内核实现,并且同时支持跨平台使用,提供了简单高效的安全通信方式。
以下是针对 Debian/Ubuntu 系统的安装方法,其他操作系统可以参考其文档。
确保系统是最新状态:
sudo apt update && sudo apt upgrade -y
使用以下命令安装所需的 WireGuard 包和工具:
sudo apt install wireguard -y
检查安装是否成功:
wg --version
下面将展示如何配置一个简单的端对端加密 WireGuard 网络。
WireGuard 的每个节点需要生成一个公私钥对:
运行以下命令生成密钥:
sudo apt install -y qrencode # 生成二维码(可选)
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
privatekey 文件是私钥,请妥善保管。publickey 文件是公钥,可以共享。假设服务端的私钥为 server_privatekey。
编辑 WireGuard 配置文件 /etc/wireguard/wg0.conf:
[Interface]
Address = 192.168.1.1/24
PrivateKey = server_privatekey
ListenPort = 51820
[Peer]
PublicKey = client_publickey
AllowedIPs = 192.168.1.2/32
启动 WireGuard:
sudo wg-quick up wg0
查看运行状态:
sudo wg show
假设客户端的私钥为 client_privatekey。
编辑客户端配置文件 /etc/wireguard/wg0.conf:
[Interface]
Address = 192.168.1.2/24
PrivateKey = client_privatekey
[Peer]
PublicKey = server_publickey
Endpoint = <server_ip>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
启动客户端 WireGuard:
sudo wg-quick up wg0
sudo wg-quick down wg0
sudo wg-quick up wg0
只需在服务端和客户端分别配置新的 [Peer] 条目,并重新加载配置。
尽管 WireGuard 本身非常简单和稳定,但在实际配置和使用中,可能会遇到一些问题。以下是一些常见问题及其排查方法:
检查配置文件语法:
sudo wg-quick down wg0
sudo wg-quick up wg0
如果存在错误,将显示详细的错误信息。
检查系统是否支持 WireGuard:
lsmod | grep wireguard
如果没有相关输出,可以尝试安装 linux-headers 并重新配置。
确保安装了最新的 WireGuard 版本:
sudo apt update && sudo apt install wireguard
检查服务端监听是否正常:
sudo wg show
查看服务端的配置是否显示客户端的公钥。
使用工具检查端口是否开放:
sudo netstat -tunlp | grep 51820
如果端口未监听,检查 WireGuard 配置并重启服务。
确保防火墙允许 WireGuard 数据包:
sudo ufw allow 51820/udp
AllowedIPs 配置错误。检查客户端和服务端的 AllowedIPs 设置:
服务端应该包含客户端的内网地址,例如:
AllowedIPs = 192.168.1.2/32
客户端应该允许所有流量通过 WireGuard,例如:
AllowedIPs = 0.0.0.0/0, ::/0
启用 NAT 转发(服务端):
sudo sysctl -w net.ipv4.ip_forward=1
确保在 /etc/sysctl.conf 中永久启用。
配置 IPTables 规则(服务端):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PersistentKeepalive。确保节点间的网络稳定:
使用 ping 检查服务器的延迟和丢包率:
ping <server_ip>
在客户端中启用 PersistentKeepalive:
PersistentKeepalive = 25
这将确保客户端定期向服务端发送数据包,以保持连接活跃。
检查带宽占用和运行状况:
sudo wg show
配置自启动:
sudo systemctl enable wg-quick@wg0
这将确保 WireGuard 在系统重启时自动启动。
手动测试服务启动:
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0
chmod 600 privatekey
暂无目录