WireGuard:自建 VPN 的正确用法,和三个常见误解

admin 开源软件 2026-10-26 8 0

先纠正三个最常见的误解:

  • 误解一:它是用来「科学上网」的。它只是隧道,不是流量通道——你的出口在服务器那头,服务器在哪个国家决定你从哪出去;
  • 误解二:配置越复杂越安全。安全取决于密钥管理和最小权限,不取决于配置长度;
  • 误解三:装了它就没有隐私问题。流量到服务器之后仍然从服务器出去,等于把信任从运营商转移到了自己。

一、最实用的三个场景

  1. 在外网安全访问家里/公司的内网服务:不用暴露任何端口,手机连上隧道就等于回到局域网;
  2. 公共 Wi-Fi 下加密流量:机场、酒店的网络上,所有流量走隧道;
  3. 多台服务器组成内网:几台不同机房的机器通过它互联,数据库只在内网端口监听。

第一个场景价值最高:把自建服务从公网收回内网,攻击面直接归零。

二、服务端配置

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = 服务端私钥

[Peer]
# 手机
PublicKey = 手机公钥
AllowedIPs = 10.8.0.2/32

[Peer]
# 笔记本
PublicKey = 笔记本公钥
AllowedIPs = 10.8.0.3/32

要点:每个客户端一个 /32 地址,AllowedIPs 精确到单个 IP——这就是最小权限,客户端之间互相不可见。

三、客户端配置里最关键的一行

[Interface]
PrivateKey = 客户端私钥
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = 服务端公钥
Endpoint = 服务器IP:51820
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25

AllowedIPs 决定了「哪些流量走隧道」:

设成效果适合
10.8.0.0/24只有虚拟内网走隧道访问家里服务
0.0.0.0/0所有流量走隧道(全局代理)公共 Wi-Fi 加密
10.8.0.0/24, 192.168.1.0/24内网 + 家庭局域网远程访问 NAS

四、密钥管理

一对公私钥就是一个身份。三条规则:

  1. 每台设备独立密钥,不要多设备共用一个;
  2. 私钥不进版本库、不进聊天记录;
  3. 设备丢了就删掉对应的 Peer 段——这是它唯一的「吊销」机制。

五、常见的失效原因

  • 握手失败:密钥对不上,或 Endpoint 端口写错;
  • 连上但访问不了内网:服务器没开 IP 转发(net.ipv4.ip_forward=1)或没配 NAT;
  • 一段时间后断连:NAT 超时,加 PersistentKeepalive = 25;
  • 只有部分服务能访问:服务本身只监听 127.0.0.1,隧道进来的包到不了。

六、和 frp 的区别

两者常被混淆:

WireGuardfrp
方向客户端主动连服务器内网服务主动连公网服务器
暴露方式不暴露端口,进虚拟内网把内网端口映射到公网
适合自己访问自己的服务需要给别人访问

如果只是你自己用,WireGuard 更安全;如果要分享给外部人,才需要 frp 那种映射方案。

七、别忘了它也会被墙

它的握手特征很固定,在某些网络环境下会被识别和阻断。真要在受限网络里用,需要额外做流量伪装——那属于另一个话题,且稳定性始终不如直连。

内网穿透的方案见 frp 内网穿透实战;组网控制面见 Headscale。

相关阅读

评论

访问统计