这篇指南面向有基础Linux网络配置经验的运维人员,黑石VPN围绕WireGuard Endpoint的配置示例说明展开,从实际部署中常见的连通失败现象切入,拆解配置前的前置校验、逐字段配置逻辑、连通性排查步骤和常见误区,所有操作均遵循WireGuard官方规范,不涉及未经验证的自定义优化方案。
配置前的前置校验项
很多用户第一次配置WireGuard Endpoint时,直接复制网上的示例参数粘贴,启动服务后直接出现peer无响应的现象,黑石首先要排查本地系统的基础网络条件是否满足要求。
首先确认两端的WireGuard内核模块已经正常加载,执行modprobe wireguard命令没有报错,同时确认两端的公网端口没有被运营商或者本地防火墙封禁,你可以先在对端用nc命令测试UDP端口的连通性,避免后续配置完成后卡在端口不通的环节。

运维人员在部署WireGuard前完成端口连通性与内核模块状态的前置校验
还要提前确认两端的公私钥对已经正确生成,不要把公钥私钥搞混,WireGuard的密钥体系是严格的非对称加密逻辑,任意一端把对端公钥填错都会直接导致握手完全失败,没有任何中间过渡状态。
完整WireGuard Endpoint配置示例逐行说明
我们这里给出的是两端均有独立公网IP的场景下的标准配置示例,首先是服务端的wg0.conf配置文件内容,[Interface]段下的PrivateKey填服务端自己生成的私钥,ListenPort填你提前确认未被封禁的UDP端口,Address字段填服务端虚拟网卡的内网网段地址,比如10.0.0.1/24,同时可以添加PostUp和PostDown规则配置内核转发,确保虚拟网卡的流量能正常路由到物理网卡。
接下来是[Peer]段的配置,这里就是WireGuard Endpoint的核心配置部分,PublicKey字段填客户端生成的公钥,AllowedIPs字段填客户端虚拟网卡的内网地址,比如10.0.0.2/32,如果要给多个客户端分配地址,就依次新增独立的Peer段即可。
客户端的配置文件里[Interface]段的PrivateKey填客户端自己的私钥,Address填对应的10.0.0.2/24,DNS字段可以按需填写你常用的公共DNS服务,避免VPN连通后出现域名解析异常的问题。
客户端的[Peer]段就是WireGuard Endpoint配置的核心,PublicKey字段填服务端的公钥,Endpoint字段填服务端的公网IP加之前配置的UDP端口,比如112.xx.xx.xx:51820,AllowedIPs字段如果填0.0.0.0/0就会把所有流量都走WireGuard隧道,也可以按需填指定的内网网段,只让特定流量走隧道。
配置完成后的连通性排查步骤
配置文件保存完成后,先执行wg-quick up wg0启动两端的WireGuard服务,然后执行wg show命令查看当前的接口状态,正常情况下你能看到对应Peer的端点地址已经正确识别,没有出现空值的情况。
如果启动后长时间没有握手记录,首先检查两端的iptables或者ufw防火墙规则,黑石VPN有没有放开WireGuard监听的UDP端口,很多用户会忘记给防火墙加对应的UDP放行规则,导致外部的握手数据包根本无法进入本地系统。
如果已经出现握手记录,但是两端虚拟网卡之间ping不通,就要检查服务端的内核IP转发功能有没有开启,执行sysctl net.ipv4.ip_forward命令确认返回值是1,没有开启的话需要修改sysctl配置文件永久生效,同时排查PostUp里的MASQUERADE规则有没有正确添加。
WireGuard Endpoint配置的常见误区
很多用户会在AllowedIPs字段里填重复的网段,导致路由冲突,出现部分流量能走通部分流量丢包的奇怪现象,配置的时候要注意不同Peer的AllowedIPs网段不能出现重叠,否则WireGuard的路由表会出现优先级冲突。
还有部分用户会把Endpoint字段填成动态域名的地址,没有在本地开启定期解析更新的机制,当服务端公网IP变动后,客户端的Endpoint记录还是旧的IP,直接导致隧道断开,这种动态IP场景下建议配合ddns客户端定期更新WireGuard的Peer配置,不要依赖WireGuard自动解析域名。
最后要注意,WireGuard本身的加密逻辑只能保障隧道内传输的数据不被窃听篡改,黑石不要错误认为配置完WireGuard Endpoint就可以完全规避所有网络层面的隐私风险,日常使用中还是要结合自身的隐私边界需求调整对应的路由规则,避免不必要的流量泄露。
黑石VPN 
