跳到主内容

WireGuard 分流教程:wg-easy 配置国内直连、国外走 VPN(Windows/macOS/Linux)

WireGuard 默认开启全局代理,国内网站变慢、VPS 流量消耗快怎么办?这篇教程教你基于 wg-easy 配置国内直连、国外走 VPN 的分流方案,通过修改 WireGuard 配置和 chnroute 路由脚本,实现 Windows、macOS、Linux 三平台智能分流。包含配置方法、验证步骤、自动更新和常见问题,新手也能轻松完成设置。

GSProber · 主机测评编辑12 阅读
WireGuard 默认开启全局代理,国内网站变慢、VPS 流量消耗快怎么办?这篇教程教你基于 wg-easy 配置国…

前言:为什么要做分流?

WireGuard 默认全局代理——连上 VPN 后所有流量都走 VPS。这有两个问题:

  1. 国内网站变慢。访问百度、B站、淘宝,流量绕到海外 VPS 再回来,延迟爆炸。
  2. 浪费带宽。VPS 流量通常有限,全量转发很快就用完了。

分流的意思是:国内 IP 直连,国外 IP 走 VPN。速度飞快,流量也省了一大截。

本文基于上一篇 wg-easy 搭建的环境,只需要改几处配置。


原理(30 秒看懂)

本质上是路由表控制。WireGuard 客户端有一个 AllowedIPs 参数,默认写 0.0.0.0/0 表示全部流量进隧道。我们把它改成「只把国外 IP 网段路由到隧道,国内 IP 走本地网卡」。

核心工具是一个叫 chnroute 的脚本,它维护了一份中国 IP 地址列表(来自 APNIC),自动帮你生成路由规则。


第一步:客户端环境准备

以下操作在你的客户端电脑上进行,不是在 VPS 上。

Windows

下载 chnroute 的 Windows 脚本(保存为 wg-china.bat,放在桌面即可)。内容如下:

Bash
@echo off
setlocal enabledelayedexpansion

:: 下载中国 IP 段
curl -sL https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt -o china_ip_list.txt

:: 清空旧路由(WireGuard 接口相关)
route DELETE 0.0.0.0 MASK 0.0.0.0 2>nul

:: 添加国内直连路由
for /f "tokens=*" %%i in (china_ip_list.txt) do (
    route ADD %%i MASK 255.255.255.0 你的本地网关 METRIC 1
)

echo 分流规则已更新。
pause

把「你的本地网关」换成你网卡的默认网关地址。打开 cmd 输入 ipconfig,找到你正在用的网卡,看「默认网关」那行。

macOS / Linux

macOS 和 Linux 用下面这个脚本(保存为 wg-china.sh):

Bash
#!/bin/bash

# 下载中国 IP 段
curl -sL https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt -o /tmp/china_ip_list.txt

# 获取默认网关
GATEWAY=$(netstat -rn | grep default | awk '{print $2}' | head -1)

# 获取物理网卡接口名
IFACE=$(route get default 2>/dev/null | grep interface | awk '{print $2}')
if [ -z "$IFACE" ]; then
  IFACE=$(ip route | grep default | awk '{print $5}')
fi

# 逐条添加路由
while IFS= read -r cidr; do
  [ -z "$cidr" ] && continue
  sudo route add -net "$cidr" "$GATEWAY"
done < /tmp/china_ip_list.txt

echo "分流规则已更新,网关: $GATEWAY,网卡: $IFACE"

赋予执行权限:chmod +x wg-china.sh,然后每次需要分流时运行 sudo ./wg-china.sh


第二步:修改 WireGuard 客户端配置

打开你的 WireGuard 客户端配置文件(.conf),找到 AllowedIPs 这一行:

原来的配置(全局代理)

INI
[Peer]
AllowedIPs = 0.0.0.0/0

改成(不走全局)

INI
[Peer]
AllowedIPs = 10.8.0.0/24

这样 WireGuard 本身不再接管所有流量,只路由 VPN 内网地址。实际分流由上面的路由脚本控制。

保存配置,重新连接 WireGuard。此时你的上网流量走的是本地网络,VPN 隧道只在访问 10.8.0.x(VPN 内网)时生效。


第三步:运行分流脚本

连接 WireGuard 后,运行对应系统的分流脚本:

  • Windows:右键 wg-china.bat → 以管理员身份运行
  • macOS / Linuxsudo ./wg-china.sh

脚本会自动下载最新中国 IP 列表,并把国内 IP 的路由指向本地网关。


第四步:验证分流效果

打开命令行,做两个测试:

测试国内访问

Bash
# Windows
tracert www.baidu.com

# macOS / Linux
traceroute www.baidu.com

跳数应该很少(1-3 跳),不会出现你的 VPS IP。说明百度直连走了本地。

测试国外访问

Bash
tracert www.google.com   # Windows
traceroute www.google.com # macOS / Linux

路由应该经过你的 VPS IP,说明 Google 走了 VPN 隧道。

更直观的验证:打开浏览器访问 ipleak.net,国内 IP 检测网站应该显示你的真实国内 IP,而 ipleak 显示的 DNS 应该是 1.1.1.1(你在 wg-easy 里设的 DNS)。


进阶:方案对比

方案 优点 缺点
路由脚本法(本文) 免费、可控 需要手动运行脚本更新 IP 列表
Clash / V2Ray 分流 规则丰富、社区维护 额外装一个软件
路由器端分流(OpenWrt) 全家设备受益、一次配置 需要刷路由器、门槛较高

如果觉得每次手动跑脚本麻烦,可以把脚本加到开机自启。Windows 用任务计划程序,macOS 用 LaunchAgent,Linux 用 systemd timer。


常见问题

跑了脚本但国内网站还是慢?

查一下路由表:route print(Windows)或 netstat -rn(macOS/Linux),确认国内 IP 段指向的是本地网关而不是 VPN 接口。如果没生效,很可能是没有以管理员/root 权限运行脚本。

中国 IP 列表怎么更新?

重新跑一次脚本就行。每个月更新一次够了——中国 IP 段变动很慢。

能不能自动更新?

可以。Linux 下加一条 cron:0 3 1 * * /path/to/wg-china.sh,每月 1 号凌晨 3 点自动更新。


小结

分流方案让 WireGuard 从「能用」变「好用」。下篇教程讲怎么用 WireGuard 把两处住所或办公室网络打通——Site-to-Site 组网。

教程GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebR…

Cloudflare Workers 免费搭建开源远程桌面完整教程:无需 VPS,支持 WebRTC P2P、D1、KV、R2、浏览器远程控制、Windows 客户端和文件传输

GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebRTC P2P 直连,服务端仅负责 API、身份认证和 WebSocket 信令,不中转桌面视频流,大幅降低服务器带宽成本。项目支持 Cloudflare 免费套餐 部署,也可以使用 Docker 在 VPS 上自托管,内置 Windows 客户端、浏览器控制端、手机远程控制,支持 8 位设备 ID、OTP 一次性密码、永久密码、Ed25519 设备认证、JWT 身份验证、文件传输、剪贴板同步、自动重连 等完整功能。

307 阅读

教程如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare…

CloudDisk:基于 Cloudflare Workers 的免费个人网盘,无需 VPS、MySQL,支持 R2+D1+KV 一键部署

如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare Workers 的开源项目 CloudDisk 值得看看。整个系统运行在 Cloudflare 免费套餐上,文件存储使用 R2,数据库使用 D1,会话数据使用 KV,不需要 MySQL,也不需要服务器。支持多用户登录、文件夹管理、分享链接、在线预览、Office 文档查看、文本在线编辑、大文件断点续传、协作者权限管理等功能。无论是个人备份、开发者存放代码文件、团队共享资料,还是搭建自己的私有网盘,都可以直接部署到 Cloudflare,一键完成,几乎零维护成本,非常适合独立开发者、个人站长和轻量团队使用。

284 阅读

教程很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安…

Linux 开启 DNS over HTTPS(DoH)教程:使用 Cloudflared + systemd 实现加密 DNS,防污染、防劫持

很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安装 Cloudflare 官方的 cloudflared,并配合 systemd 自启动,就能让整个系统通过 DNS over HTTPS(DoH)进行加密解析。

229 阅读

常见问题

WireGuard默认是全局代理吗,如何实现国内直连、国外走VPN?

是的,WireGuard客户端配置里的AllowedIPs默认为0.0.0.0/0,代表全部流量走隧道。要分流需要把AllowedIPs改为10.8.0.0/24(只路由VPN内网地址),再配合chnroute路由脚本,将国内IP网段指向本地网关、其余流量走VPN隧道。

分流用的中国IP列表从哪里获取?

脚本会自动从GitHub仓库17mon/china_ip_list下载china_ip_list.txt,这是一份基于APNIC数据整理的中国IP地址列表,每月更新一次即可,也可以用Linux的cron任务实现每月自动更新。

怎么验证分流配置生效了?

tracert(Windows)或traceroute(macOS/Linux)分别测试百度和Google:访问百度应该只有1-3跳且不经过VPS IP,说明国内直连生效;访问Google应该经过VPS IP,说明走了VPN隧道。也可以打开ipleak.net确认DNS显示为你在wg-easy中设置的地址(如1.1.1.1)。

除了脚本分流,还有其他分流方案吗?

文中对比了三种方案:

  • 路由脚本法:免费可控,但需手动或定时更新IP列表
  • Clash/V2Ray分流:规则丰富、有社区维护,但要额外装软件
  • 路由器端分流(OpenWrt):全家设备受益,但需要刷路由器,门槛较高

评价与回复

无需登录;审核通过后公开显示。