本文目录导读:

- 第一步:检查基础网络与时间同步(最常见原因)
- 第二步:检查服务器端状态
- 第三步:核对配置文件(最容易出错的地方)
- 第四步:检查防火墙与NAT(网络地址转换)
- 第五步:Proxy与MTU(最大传输单元)问题
- 第六步:极端情况排查
- 快速总结操作流程
解决QuickQ(或任何基于WireGuard的客户端)的“握手超时”问题,通常需要从网络连通性、配置一致性和防火墙/运营商限制三个核心方向排查。
以下是系统的排查和解决步骤,请按顺序尝试:
第一步:检查基础网络与时间同步(最常见原因)
WireGuard对时间偏差极为敏感(通常要求偏差在60秒以内)。
- 同步系统时间:
- iOS/Android:关闭“自动设置”再重新打开,或手动调整一次。
- Windows/macOS:右键任务栏时间 -> 调整日期/时间 -> 立即同步。
- 检查网络连接:
- 确认你的设备(手机/电脑)本身能正常访问互联网。
- 切换网络测试:如果当前用Wi-Fi,换4G/5G流量测试;如果本身是移动数据,换Wi-Fi,排除Wi-Fi路由器阻止UDP或运营商限制。
第二步:检查服务器端状态
如果时间没问题,问题可能出在服务器。
- 确认服务器在运行:
- 登录你配置WireGuard的服务器(VPS或路由器)。
- 运行命令检查服务是否在运行:
sudo wg show - 如果没有任何输出,说明服务未启动,运行:
sudo wg-quick up wg0(或对应的配置文件名称)。 - 查看服务状态:
sudo systemctl status wg-quick@wg0
- 检查服务器日志:
- 命令:
sudo journalctl -u wg-quick@wg0 -f - 观察客户端尝试连接时,服务器是否报错(如
Handshake for peer ... did not complete after 5 seconds),如果完全无日志,说明客户端发来的握手包没到达服务器。
- 命令:
第三步:核对配置文件(最容易出错的地方)
严重注意:许多“握手超时”的原因是PublicKey(公钥)或Endpoint(端点地址)写错。
- Peer的PublicKey:
- 在客户端配置文件中,
[Peer]下的PublicKey必须是服务器的私钥对应的公钥。 - 在服务器配置文件中,
[Peer]下的PublicKey必须是客户端的私钥对应的公钥。 - 操作:建议重新生成密钥对并复制粘贴,避免手动输入错误。
- 在客户端配置文件中,
- Endpoint地址:
- 客户端
[Peer]下的Endpoint必须是服务器的公网IP(或域名) + 端口(默认51820)。 - 特别注意:如果服务器在内网(如公司/学校VPN),请确保端口映射做对了,如果是公网VPS,直接写IP。
- 客户端
- AllowedIPs:
- 客户端
[Peer]下的AllowedIPs如果是0.0.0/0, ::/0(全局代理),需要确保服务器有正确的路由,如果是168.1.0/24(仅内网),则无法访问公网。
- 客户端
第四步:检查防火墙与NAT(网络地址转换)
WireGuard使用UDP协议,容易被防火墙或运营商限制。
- 服务器防火墙:
- 确认服务器的UDP端口(如51820)已放行。
- 命令:
sudo ufw status或sudo iptables -L -n,如果没有规则,执行:sudo ufw allow 51820/udp
- 本地防火墙/杀毒软件:
临时关闭Windows防火墙、卡巴斯基、360等,看是否能握手,如能,添加允许WireGuard的UDP出站规则。
- 运营商限制(非常重要):
- 中国移动/长城宽带等常屏蔽非标准端口UDP流量,尝试将服务器端口改为443(HTTPS协议的TCP端口伪装成UDP)或53(DNS端口),注意:客户端和服务器的
ListenPort和Endpoint端口必须一致。
- 中国移动/长城宽带等常屏蔽非标准端口UDP流量,尝试将服务器端口改为443(HTTPS协议的TCP端口伪装成UDP)或53(DNS端口),注意:客户端和服务器的
- NAT穿透问题:
如果你的客户端和服务器都在NAT后面(例如家庭宽带互相连接),握手很难成功,需要确保有一方是公网IP。
第五步:Proxy与MTU(最大传输单元)问题
- 是否使用代理:
- QuickQ本身是VPN,如果你同时开启了其他代理软件(如Clash、Surge、V2Ray),这两个软件会冲突。关闭其他所有代理软件,只保留QuickQ。
- MTU(最大传输单元)调整:
- 某些网络环境(如PPPoE拨号、手机热点)需要调小MTU才能握手。
- 在QuickQ客户端配置中,找到
[Interface]部分,添加或修改:MTU = 1280(先试这个值,不行再试1420、1300)。这是解决“握手超时”的常见有效手段。
第六步:极端情况排查
- 域名解析失败:如果Endpoint写的是域名,检查DNS是否正常,尝试直接使用IP地址。
- 密钥完全错误:重新生成服务器和客户端的密钥对,不要复制旧配置。
- 服务器内存不足:如果服务器是廉价VPS(如128MB内存),可能因OOM(内存溢出)杀掉了WireGuard进程,检查
dmesg日志。
快速总结操作流程
- 检查手机/电脑时间 -> 同步。
- 换网络 -> 从WiFi换4G/5G。
- 修改客户端MTU -> 设为1280。
- 检查Endpoint的IP和端口 -> 确保是服务器的公网IP和UDP端口。
- 检查服务器防火墙 -> 放行UDP端口。
- 在服务器重启服务 ->
sudo systemctl restart wg-quick@wg0
如果以上步骤都做了依然超时,请提供以下信息,我可以进一步分析:
- 你的QuickQ是连接自己的VPS还是别人分享的节点?
- 客户端和服务器分别是什么系统?(Win/iOS/Android/VPS)
- 服务器是否有公网IP?是否在墙内?
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。