wireguard配置笔记

人工智能学习 网站经验
📅 2026-03-26 10:39 👤 admin

 


🧭 一、整体结构(先理解)

服务器(wg0)
  ↓
多个客户端(Peer)
  ↓
每个客户端 = 独立密钥 + 独立IP

🚀 二、首次搭建流程(完整)


1️⃣ 安装 WireGuard(服务器)

sudo apt update
sudo apt install wireguard qrencode -y

2️⃣ 生成服务器密钥

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key

查看:

cat /etc/wireguard/server_public.key

3️⃣ 创建服务器配置

sudo nano /etc/wireguard/wg0.conf

写入👇(替换私钥):

[Interface]
PrivateKey = 服务器私钥
Address = 10.0.0.1/24
ListenPort = 51820

PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

4️⃣ 启动服务器

sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0

查看状态:

sudo wg

📱 三、添加客户端(标准流程)


1️⃣ 客户端生成密钥(推荐)

👉 手机 / 电脑用 WireGuard 自动生成
或:

wg genkey | tee client_private.key | wg pubkey > client_public.key

2️⃣ 在服务器添加客户端

编辑:

sudo nano /etc/wireguard/wg0.conf

追加:

[Peer]
PublicKey = 客户端公钥
AllowedIPs = 10.0.0.2/32

应用(不用重启):

sudo wg syncconf wg0 <(wg-quick strip wg0)

3️⃣ 客户端配置

[Interface]
PrivateKey = 客户端私钥
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = 服务器公钥
Endpoint = 服务器IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

4️⃣ (可选)生成二维码

qrencode -t ansiutf8 < client.conf

🔐 四、换 Key(重点!!!)


🧨 场景:服务器私钥泄露 / 想更换


1️⃣ 生成新服务器密钥

wg genkey | tee /etc/wireguard/new_server_private.key | wg pubkey > /etc/wireguard/new_server_public.key

2️⃣ 替换 wg0.conf

sudo nano /etc/wireguard/wg0.conf

改:

PrivateKey = 新私钥

3️⃣ 重启服务(必须)

sudo wg-quick down wg0
sudo wg-quick up wg0

4️⃣ 确认新公钥生效

sudo wg show wg0 public-key

👉 必须等于:

cat /etc/wireguard/new_server_public.key

5️⃣ 更新所有客户端(关键)

每个客户端改:

[Peer]
PublicKey = 新服务器公钥

6️⃣ 客户端重新连接

打开 VPN 即可


🔁 五、完全重置(更安全)

👉 如果怀疑泄露严重:


服务器

wg genkey | tee server_private.key | wg pubkey > server_public.key

每个客户端(全部重建)

wg genkey | tee client_private.key | wg pubkey > client_public.key

更新服务器

[Peer]
PublicKey = 新客户端公钥
AllowedIPs = 新IP

🧪 六、验证是否成功


服务器查看

sudo wg

重点看:

latest handshake: 刚刚

测试网络

客户端:

ping 10.0.0.1

⚡ 七、常用命令速查


查看状态

sudo wg

查看公钥

sudo wg show wg0 public-key

启动/停止

sudo wg-quick up wg0
sudo wg-quick down wg0

热更新配置

sudo wg syncconf wg0 <(wg-quick strip wg0)

🧠 八、关键记忆(超重要)

👉 WireGuard 核心就是:

私钥(身份) + 公钥(认证) + IP(唯一标识)