概述
WireGuard 是一种轻量级VPN协议,通过UDP传输,具备以下特性:
| 特性 |
说明 |
| 高性能 |
比IPsec/OpenVPN更快的传输速度 |
| 现代化 |
代码简洁,攻击面小 |
| 安全性 |
采用现代加密算法 |
适用条件:公网IP环境(腾讯云/阿里云等购买)
一、环境要求
| 要求 |
说明 |
| 公网IP |
服务端需具备公网IP |
| 内核版本 |
≥5.6(低于此版本需升级内核) |
| 依赖包 |
内核、内核源码、内核头文件版本一致 |
二、安装步骤
2.1 安装WireGuard
1
| sudo apt-get install wireguard
|
2.2 开启IPv4转发
1 2
| echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
|
2.3 生成密钥对
1 2 3 4 5 6 7 8 9
| mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard cd /etc/wireguard umask 077
wg genkey | tee server_privatekey | wg pubkey > server_publickey
wg genkey | tee client_privatekey | wg pubkey > client_publickey
|
三、服务端配置
3.1 生成配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| echo " [Interface] PrivateKey = $(cat server_privatekey) Address = 10.0.8.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT PostUp = iptables -A FORWARD -o wg0 -j ACCEPT PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT PostDown = iptables -D FORWARD -o wg0 -j ACCEPT PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 50814 DNS = 8.8.8.8 MTU = 1420
[Peer] PublicKey = $(cat client_publickey) AllowedIPs = 10.0.8.10/24" > wg0.conf
|
注意:eth0 替换为实际网卡名,50814 为UDP端口号
3.2 设置开机启动
1
| systemctl enable wg-quick@wg0
|
3.3 启动与停止
| 操作 |
命令 |
| 启动 |
wg-quick up wg0 |
| 停止 |
wg-quick down wg0 |
| 查看状态 |
wg |
四、客户端配置
4.1 生成配置文件
1 2 3 4 5 6 7 8 9 10 11 12
| echo " [Interface] PrivateKey = $(cat client_privatekey) Address = 10.0.8.10/24 DNS = 8.8.8.8 MTU = 1420
[Peer] PublicKey = $(cat server_publickey) Endpoint = 服务端公网IP:50814 AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25" > client.conf
|
4.2 启动方式
- GUI方式:下载 WireGuard客户端,导入配置文件
- 命令行方式:
1 2
| wg-quick up client wg-quick down client
|
4.3 路由配置(可选)
1 2 3 4 5
| ip route add 103.52.188.136 via 192.168.1.2
ip route add 0.0.0.0/0 via 10.0.8.1
|
五、测试验证
5.1 连通性测试
5.2 数据包抓取
服务端安装 tcpdump 监听VPN接口:
1 2
| apt -y install tcpdump tcpdump -i wg0
|
六、高级命令
| 场景 |
命令 |
| 创建接口 |
ip link add dev wg0 type wireguard |
| 分配IP |
ip address add dev wg0 192.168.2.1/24 |
| 点对点模式 |
ip address add dev wg0 192.168.2.1 peer 192.168.2.2 |
| 配置密钥 |
wg setconf wg0 myconfig.conf |
| 手动配置 |
wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips 192.168.88.0/24 endpoint 209.202.254.14:8172 |
| 启用接口 |
ip link set up dev wg0 |
| 查看配置 |
wg 或 wg showconf |
七、密钥生成(补充)
1 2 3 4 5 6 7 8
| umask 077 && wg genkey > privatekey
wg pubkey < privatekey > publickey
wg genkey | tee privatekey | wg pubkey > publickey
|
附录