WireGuard安装与配置教程

概述

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路由
ip route add 103.52.188.136 via 192.168.1.2

# 所有流量走VPN
ip route add 0.0.0.0/0 via 10.0.8.1

五、测试验证

5.1 连通性测试

1
ping 10.0.8.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
查看配置 wgwg 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

附录