上次握手时间 – 永夜 https://www.shuijingwanwq.com 没有不值得去解决的问题,也没有不值得去学习的技术! Sun, 07 Jun 2026 04:36:39 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.0 自建WireGuard解决端口频繁被封终极极简方案(保姆级可复现) https://www.shuijingwanwq.com/2026/05/04/9689/ https://www.shuijingwanwq.com/2026/05/04/9689/#respond Mon, 04 May 2026 07:11:53 +0000 https://www.shuijingwanwq.com/?p=9689 Post Views: 646

自建 WireGuard VPN 最头疼的问题:UDP 端口每 2 天左右就失效,客户端 无 上次握手时间 ,反复更换57586、2096、443等端口,改完 VPS 配置还要改 Vultr 防火墙、改客户端,来回折腾巨麻烦。

根本原因:运营商 DPI深度包检测 ,WireGuard 原生数据包特征固定,不管换哪个单独UDP端口,都会被识别标记,周期封禁。

本文采用 服务端 iptables 多端口转发 最简方案:不换 WireGuard 原生客户端、不装混淆 APP、不折腾TCP隧道,一次配置永久生效,后续只需改客户端端口数字即可,新手零折腾。

原理说明

  1. 把 WireGuard 服务端监听端口 固定为 51820,永不修改 ;
  2. VPS 通过 iptables 做端口段转发:20000~60000 全部UDP端口,统一转发到本机 51820;
  3. Vultr 防火墙只需放行 20000~60000 端口段 ,不用逐个添加单端口规则;
  4. 电脑、手机客户端可自由选用区间内任意端口,端口失效仅需修改客户端端口,不用动服务器、不用登Vultr后台。

步骤1:修改 WireGuard 配置,固定监听端口
登录Vultr VPS,编辑wg0配置文件:

vi /etc/wireguard/wg0.conf

找到配置项:
ListenPort = 原来的端口(如2096、57586)
修改固定为:
ListenPort = 51820
按 ESC,输入 :wq 保存退出。如图1

登录Vultr VPS,编辑wg0配置文件

步骤2:重启 WireGuard 服务生效

root@vultr:~# wg-quick down wg0
[#] ip link delete dev wg0
[#] iptables -D INPUT -p udp --dport 57586 -j ACCEPT
[#] iptables -D FORWARD -i enp1s0 -o wg0 -j ACCEPT
[#] iptables -D FORWARD -i wg0 -j ACCEPT
[#] iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
[#] ip6tables -D FORWARD -i wg0 -j ACCEPT
[#] ip6tables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
root@vultr:~# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.66.66.1/24 dev wg0
[#] ip -6 address add fd42:42:42::1/64 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -I INPUT -p udp --dport 57586 -j ACCEPT
[#] iptables -I FORWARD -i enp1s0 -o wg0 -j ACCEPT
[#] iptables -I FORWARD -i wg0 -j ACCEPT
[#] iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
[#] ip6tables -I FORWARD -i wg0 -j ACCEPT
[#] ip6tables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE

步骤3:验证监听端口是否生效

root@vultr:~# wg show
interface: wg0
  public key: XZ2LNJxO7RqjGKHyubFw35eR7AkRa1iHqltQJYdsY3g=
  private key: (hidden)
  listening port: 51820

peer: QnBvrNGpbGs+9JxCgZvT16sVr1g735JMgWGFIdqmsz8=
  preshared key: (hidden)
  allowed ips: 10.66.66.2/32, fd42:42:42::2/128

peer: TX/hWjKXFoDyhQncE6M5DuC7d4DffzjJWHL+errBsTU=
  preshared key: (hidden)
  allowed ips: 10.66.66.3/32, fd42:42:42::3/128

看到输出 listening port: 51820 即为配置成功。

步骤4:VPS 配置 iptables 多端口转发
直接逐条复制执行:

# 将20000-60000所有UDP端口转发到WireGuard固定端口51820
root@vultr:~# sudo iptables -t nat -A PREROUTING -p udp --dport 20000:60000 -j REDIRECT --to-port 51820

# 安装iptables规则持久化工具
root@vultr:~# sudo apt install -y iptables-persistent
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
iptables-persistent is already the newest version (1.0.16).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.

# 保存规则,重启服务器不失效
root@vultr:~# sudo netfilter-persistent save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save

步骤5:Vultr 后台防火墙配置(必做)

  1. 登录 Vultr 后台,找到对应 VPS,进入左侧 Firewall Groups ;
  2. 删除原有单独放行的57586、2096、443等单条UDP规则 ;
  3. 新增一条防火墙规则:
  • 协议:UDP
  • 端口类型:端口范围
  • 端口区间:20000 – 60000
  • 备注:WireGuard 多端口分流
  1. 保存规则,无需额外添加其他端口。如图2
端口区间:20000 - 60000

步骤6:客户端配置使用规则

  1. 电脑、手机原生 WireGuard 客户端无需重装、无需改动其他配置;
  2. Endpoint格式:你的 VPS IP:区间内任意端口
    示例:
    Endpoint = 1.2.3.4:32567
  3. 多设备可使用不同端口 :电脑用3xxxx,手机用5xxxx,同时在线互不影响;如图3
  4. 端口失效无握手时: 仅修改客户端端口数字 ,在 20000~60000 之间随便换一个即可,服务器和防火墙无需任何改动。
多设备可使用不同端口 :电脑用3xxxx,手机用5xxxx,同时在线互不影响;如图3

避坑优化建议

  1. 不要按顺序挨个用端口(20001、20002…), 随机跳号使用 ,降低运营商识别规律;
  2. 避免 7×24 小时常驻挂机,闲置时(晚上睡觉时)手动断开,减少风控概率;
  3. 固定 WireGuard 监听端口 51820,后续永远不要再修改;
  4. 只适合不想折腾混淆、不想换客户端的用户,极简够用,个人长期自用稳定。

方案总结
这是 最简单、零额外软件、不改客户端 的终极折中方案,一次配置永久定型,告别频繁修改 VPS 和防火墙配置,端口失效1秒换号即可使用,完全满足日常自用需求。

]]>
https://www.shuijingwanwq.com/2026/05/04/9689/feed/ 0
WireGuard 自建 VPN 偶发不可用 全程复盘:从正常使用→突然无握手→端口被封→换端口+智能分流 完整解决流程 https://www.shuijingwanwq.com/2026/05/02/9665/ https://www.shuijingwanwq.com/2026/05/02/9665/#comments Sat, 02 May 2026 07:52:16 +0000 https://www.shuijingwanwq.com/?p=9665 Post Views: 781

一、前期背景

  1. 自建 WireGuard 服务,原本使用端口 57586,上午 10 点前电脑 WiFi、手机 5G 均可正常握手、正常翻墙、国内网站直连。
  2. 服务端已做优化(关键命令行操作提前整理,方便后续复用):关闭并禁用 UFW 防火墙、配置 iptables 转发规则并持久化,网络转发环境干净无冲突、无后遗症。
  3. 客户端原本采用智能分流方案:国内网站直连、境外流量走 VPN,搭配阿里公共 DNS 提升国内解析速度。

二、前期服务端优化(UFW、iptables 完整命令行,必存!)
此步骤为故障前已完成的优化,目的是清理服务端防火墙冲突,确保 WireGuard 转发正常,后续故障排查可直接排除此环节问题,命令行按顺序执行:

1. UFW 防火墙操作(关闭+禁用,避免与 iptables 冲突)
在配置 iptables 规则前,需先关闭并禁用系统自带的 UFW 防火墙,防止两者规则冲突,导致网络异常。以下是基于实际服务器执行的完整操作步骤,包含具体命令及执行反馈,可直接对照实操。

1.1. 查看当前 FORWARD 链规则(前置检查)
执行以下命令,查看 iptables 的 FORWARD 链默认策略及现有规则,确认初始状态:

root@vultr:~# iptables -L FORWARD -n
Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0

说明:初始状态下,FORWARD 链默认策略为 DROP(拒绝所有转发),且包含 UFW 相关的转发规则,需关闭 UFW 以清除这些规则干扰。

1.2. 关闭当前运行的 UFW 防火墙
执行命令,立即停止 UFW 服务运行:

root@vultr:~# systemctl stop ufw

说明:该命令无额外输出,执行后 UFW 服务立即停止,不再生效。

1.3. 禁用 UFW 开机自启(避免重启后自动启动)
执行命令,禁止 UFW 服务开机自动启动,彻底避免重启后干扰 iptables 配置:

root@vultr:~# systemctl disable ufw
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable ufw
Removed /etc/systemd/system/multi-user.target.wants/ufw.service.
root@vultr:~# systemctl status ufw
○ ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:ufw(8)

Apr 27 07:51:53 guest systemd[1]: Starting Uncomplicated firewall...
Apr 27 07:51:54 guest systemd[1]: Finished Uncomplicated firewall.
Apr 29 06:55:20 vultr systemd[1]: Stopping Uncomplicated firewall...
Apr 29 06:55:20 vultr systemd[1]: ufw.service: Deactivated successfully.
Apr 29 06:55:20 vultr systemd[1]: Stopped Uncomplicated firewall.

说明:输出显示已同步 UFW 服务状态,并移除了开机自启的链接,确保重启服务器后 UFW 不会自动启动。

1.4. 查看 UFW 状态,确认已关闭
执行命令,验证 UFW 服务是否已成功停止且禁用:

root@vultr:~# systemctl status ufw
○ ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:ufw(8)

Apr 27 07:51:53 guest systemd[1]: Starting Uncomplicated firewall...
Apr 27 07:51:54 guest systemd[1]: Finished Uncomplicated firewall.
Apr 29 06:55:20 vultr systemd[1]: Stopping Uncomplicated firewall...
Apr 29 06:55:20 vultr systemd[1]: ufw.service: Deactivated successfully.
Apr 29 06:55:20 vultr systemd[1]: Stopped Uncomplicated firewall.

关键验证点:

  • Loaded 行显示 disabled:表示开机自启已禁用;
  • Active 行显示 inactive (dead):表示当前 UFW 服务已停止;
  • 日志显示 Deactivated successfully:表示 UFW 服务已成功停止。

2. 补充:iptables 配置及规则持久化(衔接实际操作)
关闭 UFW 后,可进行 iptables 规则配置,并通过工具实现规则持久化,避免重启后规则丢失,以下是实际执行的完整步骤:

2.1. 配置 iptables FORWARD 链规则
修改 FORWARD 链默认策略为 ACCEPT,并添加 WireGuard(wg0 网卡)相关转发规则(适用于 VPN 场景):

# 设置 FORWARD 链默认策略为 ACCEPT(允许所有转发)
iptables -P FORWARD ACCEPT
# 允许从 wg0 网卡进入的流量转发
iptables -A FORWARD -i wg0 -j ACCEPT
# 允许从 wg0 网卡出去的流量转发
iptables -A FORWARD -o wg0 -j ACCEPT

说明:无额外输出,执行后规则立即生效,可通过 iptables -L FORWARD -n 再次查看规则是否添加成功。

2.2. 安装 iptables 持久化工具
安装 iptables-persistent 工具,用于保存 iptables 规则,确保重启服务器后规则不丢失:

root@vultr:~# apt install -y iptables-persistent
Reading package lists... Done
Building dependency tree... Done
The following additional packages will be installed:
The following NEW packages will be installed:
  iptables-persistent netfilter-persistent
0 upgraded, 2 newly installed, 0 to remove and 5 not upgraded.
Need to get 13.9 kB of archives.
After this operation, 93.2 kB of additional disk space will be used.
Get:1 http://ubuntu.mirror.constant.com jammy/universe amd64 netfilter-persistent all 1.0.16 [7,440 B]
Get:2 http://ubuntu.mirror.constant.com jammy/universe amd64 iptables-persistent all 1.0.16 [6,488 B]
Fetched 13.9 kB in 1s (18.3 kB/s)
Preconfiguring packages ...
Selecting previously unselected package netfilter-persistent.
(Reading database ... 86643 files and directories currently installed.)
Preparing to unpack .../netfilter-persistent_1.0.16_all.deb ...
Unpacking netfilter-persistent (1.0.16) ...
Selecting previously unselected package iptables-persistent.
Preparing to unpack .../iptables-persistent_1.0.16_all.deb ...
Unpacking iptables-persistent (1.0.16) ...
Setting up netfilter-persistent (1.0.16) ...
Created symlink /etc/systemd/system/multi-user.target.wants/netfilter-persistent.service → /lib/systemd/system/netfilter-persistent.service.
Setting up iptables-persistent (1.0.16) ...
update-alternatives: using /lib/systemd/system/netfilter-persistent.service to provide /lib/systemd/system/iptables.service (iptables.service) in auto mode
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...
Scanning candidates...
Scanning linux images...

Running kernel seems to be up-to-date.

Restarting services...
 /etc/needrestart/restart.d/systemd-manager
 systemctl restart multipathd.service packagekit.service polkit.service rsyslog.service ssh.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-timesyncd.service systemd-udevd.service udisks2.service
Service restarts being deferred:
 systemctl restart ModemManager.service
 /etc/needrestart/restart.d/dbus.service
 systemctl restart networkd-dispatcher.service
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service
 systemctl restart user@0.service

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@vultr:~# netfilter-persistent save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
root@vultr:~# client_loop: send disconnect: Connection reset
PS C:\Users\Thinkpad> ssh root@139.180.154.26
ssh: connect to host 139.180.154.26 port 22: Connection timed out
PS C:\Users\Thinkpad> ssh root@139.180.154.26
root@139.180.154.26's password:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-176-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Apr 29 07:13:48 AM UTC 2026

  System load:  0.0                Processes:               145
  Usage of /:   28.5% of 22.88GB   Users logged in:         1
  Memory usage: 25%                IPv4 address for enp1s0: 139.180.154.26
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


******************************PLEASE NOTE********************************
* If this a new instance, cloud-init may still be running and normal    *
* operations may not work as expected.                                  *
*                                                                       *
* Please use `cloud-init status' to check on the status of the instance *
* provisioning                                                          *
*                                                                       *
* Remove this message by editing /etc/motd                              *
*************************************************************************
Last login: Wed Apr 29 06:55:10 2026 from 183.221.85.7

说明:安装过程中会自动安装依赖包netfilter-persistent,无需额外操作。

2.3. 保存 iptables 规则(持久化)
执行命令,将当前配置的 iptables 规则保存到持久化文件中:

root@vultr:~# netfilter-persistent save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save

说明:输出显示已成功保存 IPv4(15-ip4tables)和 IPv6(25-ip6tables)的 iptables 规则,重启服务器后规则会自动加载。

3. 实操注意事项

  • 操作环境:本次实操基于 Ubuntu 系统(从软件源 http://ubuntu.mirror.constant.com 可判断),其他 Debian 系系统可参考执行;
  • 权限要求:所有命令需以 root 用户执行(实操中使用 root@vultr:~# 终端,无需额外加 sudo);
  • 规则验证:每一步操作后,建议执行对应查看命令(如 systemctl status ufw、iptables -L FORWARD -n),确认操作生效;
  • 持久化确认:保存规则后,可重启服务器(reboot),再次查看 iptables 规则,确认规则未丢失。

说明:以上命令执行后,服务端网络转发环境稳定,后续故障与 UFW、iptables 配置无关,无需重复操作。

三、故障突发现象

  1. 下午突然无法使用,客户端无「上次握手时间」,一直处于等待连接状态。
  2. 电脑家用 WiFi、手机切换 5G 网络,两台设备、两条网络均无法握手。
  3. 客户端显示看似连接,但实际无握手、无流量转发,接收一直为 0。如图1
客户端无「上次握手时间」,一直处于等待连接状态。客户端显示看似连接,但实际无握手、无流量转发,接收一直为 0。

四、排查定位全过程

  1. 基础连通性排查
  • 使用 ping 服务器IP 测试:IP 延迟正常、无丢包,证明服务器IP 未被墙、路由通路正常。
# 电脑 Windows 命令提示符(CMD)执行,持续测试连通性
ping -t 139.180.154.26
# 测试完成后按 Ctrl+C 停止,查看丢包率(0% 丢包即为正常)
- PowerShell 测试 TCP 57586 端口连接失败:
# 电脑 PowerShell 执行,测试 TCP 端口(仅辅助判断)
Test-NetConnection 139.180.154.26 -Port 57586

明确关键误区:Test-NetConnection 只能测 TCP,WireGuard 仅使用 UDP 协议,TCP 不通不代表 UDP 一定不通,但可辅助判断端口异常。

  1. 服务端状态核查
    登录 VPS 执行以下命令,核查 WireGuard 运行状态:
# 1. 查看 WireGuard 运行状态(确认 wg0 接口正常)
root@vultr:~# wg show
interface: wg0
  public key: XZ2LNJxO7RqjGKHyubFw35eR7AkRa1iHqltQJYdsY3g=
  private key: (hidden)
  listening port: 57586

peer: QnBvrNGpbGs+9JxCgZvT16sVr1g735JMgWGFIdqmsz8=
  preshared key: (hidden)
  endpoint: 183.221.85.7:18607
  allowed ips: 10.66.66.2/32, fd42:42:42::2/128
  transfer: 3.04 KiB received, 1.89 KiB sent

peer: TX/hWjKXFoDyhQncE6M5DuC7d4DffzjJWHL+errBsTU=
  preshared key: (hidden)
  endpoint: 183.221.85.7:18650
  allowed ips: 10.66.66.3/32, fd42:42:42::3/128
  transfer: 1.73 KiB received, 1.08 KiB sent
root@vultr:~# client_loop: send disconnect: Connection reset

核查结果:

  • WireGuard 服务正常运行,正常监听 57586 端口;
  • 已有客户端节点记录,证明服务端配置、程序、监听、转发规则全部正常。
    排除故障原因:不是服务端崩了、不是 UFW/iptables 配置后遗症、不是服务器转发异常。

3. 故障根因锁定
3.1. 设备跨网络(家用WiFi + 手机5G)全部无法握手,排除单设备、单宽带问题。
3.2. 上午正常、下午突然失效,无任何配置修改。
3.3. 最终确诊:国内运营商时段性 QoS 限流,跨境高端口 UDP 57586 被骨干网静默拦截丢包,和客户端分流、DNS、本地配置无关。

五、解决方案实施流程

1. 更换可用端口(核心解决,命令行+后台操作)
放弃易被封禁的高端口 57586,更换为更耐封的常规端口 2096,步骤如下:如图2

放弃易被封禁的高端口 57586,更换为更耐封的常规端口 2096,步骤如下:
# 步骤1:VPS 端修改 WireGuard 配置文件(修改监听端口)如图2
vi /etc/wireguard/wg0.conf

# 找到 ListenPort = 57586,修改为 2096,推荐 443(几乎和普通 HTTPS 流量一模一样,很难被精准封禁。)
# 示例:ListenPort = 2096

# 保存退出 vi 编辑器

# 步骤2:重启 WireGuard 服务,使端口修改生效
root@vultr:~# wg-quick down wg0
[#] ip link delete dev wg0
[#] iptables -D INPUT -p udp --dport 57586 -j ACCEPT
[#] iptables -D FORWARD -i enp1s0 -o wg0 -j ACCEPT
[#] iptables -D FORWARD -i wg0 -j ACCEPT
[#] iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
[#] ip6tables -D FORWARD -i wg0 -j ACCEPT
[#] ip6tables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
root@vultr:~# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.66.66.1/24 dev wg0
[#] ip -6 address add fd42:42:42::1/64 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -I INPUT -p udp --dport 57586 -j ACCEPT
[#] iptables -I FORWARD -i enp1s0 -o wg0 -j ACCEPT
[#] iptables -I FORWARD -i wg0 -j ACCEPT
[#] iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
[#] ip6tables -I FORWARD -i wg0 -j ACCEPT
[#] ip6tables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE

# 步骤3:确认端口修改成功(查看 listening port 是否为 2096)
root@vultr:~# wg show
interface: wg0
  public key: XZ2LNJxO7RqjGKHyubFw35eR7AkRa1iHqltQJYdsY3g=
  private key: (hidden)
  listening port: 2096

peer: QnBvrNGpbGs+9JxCgZvT16sVr1g735JMgWGFIdqmsz8=
  preshared key: (hidden)
  allowed ips: 10.66.66.2/32, fd42:42:42::2/128

peer: TX/hWjKXFoDyhQncE6M5DuC7d4DffzjJWHL+errBsTU=
  preshared key: (hidden)
  allowed ips: 10.66.66.3/32, fd42:42:42::3/128
root@vultr:~# client_loop: send disconnect: Connection reset

步骤4:Vultr 后台防火墙配置(必做,否则新端口无法访问)

  1. 登录 Vultr 后台 → 找到对应 VPS → 点击左侧 Firewall Groups(防火墙组);
  2. 找到原有放行 UDP 57586 的规则,点击删除;
  3. 新增规则:Protocol(协议)选 UDP,Port(端口)填 2096,Description(描述)填 WireGuard,保存;
    步骤5:电脑客户端修改端口 → 重新连接,恢复握手时间,隧道通畅。

2. 恢复智能分流+国内DNS优化

将客户端配置改回自用最优方案,无需命令行,直接编辑客户端配置文件:
2.1. DNS 改为阿里公共 DNS:223.5.5.5, 223.6.6.6,国内网页解析更快、不绕路;
2.2. AllowedIPs 采用分流规则:
0.0.0.0/1, 128.0.0.0/2, ::/1, 8000::/1
0.0.0.0/1,128.0.0.0/2:实现 IPv4 国内直连、境外走隧道
::/1,8000::/1:全覆盖 IPv6 地址,境外IPv6流量走隧道
2.3. 保留 PersistentKeepalive = 25:防止路由器 NAT 超时,锁屏/后台不断线。

3. 手机客户端适配处理
3.1. 手机官方 WireGuard 图形界面无 PersistentKeepalive 编辑入口,无法手动填入保活参数;
3.2. 解决方案:删除旧隧道,新建隧道整段粘贴完整配置文本;
3.3. 粘贴导入后底层参数生效,保活、分流、DNS、端口全部配置生效,后台稳定不掉线。

六、关键知识点总结

  1. WireGuard 依赖 UDP 握手,高端口(50000+)极易被国内运营商时段性静默封禁,不是配置问题;
  2. ping IP 通只能证明路由正常,不能代表 UDP 端口可用;
  3. PowerShell 端口测试仅支持 TCP,不能用来判定 WireGuard UDP 连通性;
  4. ::/1,8000::/1 是 IPv6 全覆盖分流写法,配合 IPv4 分流实现全网智能分流;
  5. 手机客户端需完整配置文本导入才能生效保活参数,图形界面无法编辑隐藏配置;
  6. 选用 2096/4433 等常规伪装端口,比 50000+ 高端口稳定得多,无需频繁换端口;
  7. 服务端 UFW、iptables 配置需一次性做好并持久化,后续无需反复操作,避免冲突。

七、最终可用配置模板(直接复制使用)

  1. 电脑端配置(IP:10.66.66.2,独立不冲突)
[Interface]
PrivateKey = MNcoOjHNvao4gH1+xDV5I...
Address = 10.66.66.2/32, fd42:42:42::2/128
DNS = 223.5.5.5, 223.6.6.6

[Peer]
PublicKey = XZ2LNJxO7RqjGKHyubFw35eR7AkRa1iHqltQJYdsY3g=
PresharedKey = Fz04FNeapuPYQ+QAH+yN...
AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, ::/1, 8000::/1
Endpoint = 139.180.154.26:2096
PersistentKeepalive = 25
  1. 手机端配置(IP:10.66.66.3,独立不冲突)
[Interface]
PrivateKey = ADwndW5NwCU4YZJHC1UP...
Address = 10.66.66.3/32,fd42:42:42::3/128
DNS = 223.5.5.5, 223.6.6.6

[Peer]
PublicKey = XZ2LNJxO7RqjGKHyubFw35eR7AkRa1iHqltQJYdsY3g=
PresharedKey = Y2kt8vfHL+iCOJ0bxW...
Endpoint = 139.180.154.26:2096
AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, ::/1, 8000::/1
PersistentKeepalive = 25

注:AllowedIPs 配置不完整,建议参考:WireGuard 国内直连+国外走隧道 配置踩坑与完美解决(实测可用)

八、备用命令行(后续故障备用,必存)

1. 重启 WireGuard 服务(端口修改、配置修改后必用)

wg-quick down wg0 && wg-quick up wg0

2. 查看 iptables 规则(怀疑转发异常时用)

iptables -L FORWARD

3. 重新保存 iptables 规则(若规则丢失时用)

netfilter-persistent save

4. 查看 VPS 网络状态(辅助排查端口监听)

netstat -tulnp | grep wg0

5. 重启 VPS(解决端口被 Vultr 节点静默屏蔽时用)

reboot

]]>
https://www.shuijingwanwq.com/2026/05/02/9665/feed/ 2