WireGuard + WireSock高性能分流VPN实战(Windows+Pi节点,墙内零压力优化)(仪供学习参考)

WireGuard 是一款极其简单但快速且现代最先进的加密技术。它旨在更快、更简单、更精简、最容易使用和最简单的 虚拟专用网络 解决方案,易于配置和部署。

今天就让我们来搭建并配置它,我以我的vps服务器系统是:

LOCVPS全球云-十三年老牌云主机值得信赖!

服务器演示为Ubuntu-24.04:

下面是一个详细的步骤指南,帮助你在 Ubuntu-24.04 上搭建最新的 WireGuard,并确保其配置正确

安装 WireGuard先安装防火墙ufw工具:

apt-get update 
apt-get install ufw

放行端口:

ufw allow 51820/udp

1 .首先,确保你的系统软件包是最新的:

apt update

apt full-upgrade -y

apt autoremove -y

apt autoclean

2 . 然后安装 WireGuard

apt install wireguard -y

创建WireGuard配置目录:

mkdir -p /etc/wireguard

开放文件夹权限:

chmod 700 /etc/wireguard

生成密钥对:我们需要为服务器和客户端生成密钥对,并查看它们的内容。

3 . 生成服务器密钥对

umask 077

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key

生成预共享密钥:

wg genpsk > /etc/wireguard/preshared.key

(1)查看服务器生成的服务器密钥:

cat /etc/wireguard/server_private.key

(2)查看服务器生成的服务器公钥:

cat /etc/wireguard/server_public.key

(3) 查看预共享的密钥:

cat /etc/wireguard/preshared.key
  • server_private.key=服务器密钥
  • server_public.key=服务器公钥
  • preshared.key=预共享密钥

复制出来在桌面新建一个文本,保存,后面要用到

5 .生成客户端密钥对

umask 077

wg genkey | tee client_private.key | wg pubkey > client_public.key

(1)查看客户端生成的密钥:

cat client_private.key

(2)查看客户端生成的公钥:

cat client_public.key
  • client_private.key=客户端密钥
  • client_public.ke客户端=客户端公钥

复制出来在桌面新建一个文本,保存,后面要用到

6 . 配置 WireGuard 服务器

(1)创建配置文件

nano /etc/wireguard/wg0.conf

(2)编辑配置文件

[Interface]
PrivateKey = <YOUR_SERVER_PRIVATE_KEY> # 替换为你的服务器私钥
Address = 10.7.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <YOUR_CLIENT_PUBLIC_KEY> # 替换为你的客户端公钥
PresharedKey = <YOUR_PRESHARED_KEY> # 替换为你的预共享密钥
AllowedIPs = 10.7.0.2/32

2.将 <服务器私钥内容> 和 <客户端公钥内容> 和<服务器端预共享私钥内容>替换为你自己的密钥内容

修改后如下:

 

服务端就配置完成,接下来配置 WireGuard 客户端:

1 . 创建客户端配置文件

nano client.conf

2 . 编辑客户端配置文件

[Interface]
PrivateKey = <YOUR_CLIENT_PRIVATE_KEY> # 替换为你的客户端私钥
Address = 10.7.0.2/24
DNS = 1.1.1.1,8.8.8.8
MTU = 1280

[Peer]
PublicKey = <YOUR_SERVER_PUBLIC_KEY> # 替换为你的服务器公钥
PresharedKey = <YOUR_PRESHARED_KEY> # 替换为你的预共享密钥
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = 替换服务器ip或域名:51820
PersistentKeepalive = 25

2. 将 <客户端私钥内容> 和 <服务器公钥内容> 和<服务器端预共享私钥内容>替换为你自己的密钥内容。

修改后如下:

启用和配置网络

服务器端启用和配置网络

1 . 启用 IP 转发合并ipv6:

#开启转发
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1

# 永久生效
sed -i ‘s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g’ /etc/sysctl.conf
sed -i ‘s/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=1/g’ /etc/sysctl.conf
sysctl -p

# 安装防火墙持久化工具
apt update && apt install iptables-persistent -y

2 . 配置防火墙和 NAT 规则:

# 自动获取主网卡名称:

MAIN_NIC=$(ip route | grep default | awk ‘{print $5}’)

echo $MAIN_NIC

# 配置规则(如果51820端口有修改过,请改为你修改的端口)

iptables -I INPUT -p udp –dport 51820 -j ACCEPT
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o $MAIN_NIC -j MASQUERADE

# 如果有 IPv6 环境,也加上 IPv6 的 NAT(可选)
ip6tables -t nat -A POSTROUTING -o $MAIN_NIC -j MASQUERADE

# 保存规则持久化

netfilter-persistent save

或者使用以下这条保存防火墙规则一样的:

iptables-save > /etc/iptables/rules.v4 && ip6tables-save > /etc/iptables/rules.v6

3 . 启动 WireGuard:

wg-quick up wg0

4 . 设置开机自启动:

systemctl enable wg-quick@wg0

查看WireGuard启动状态:

wg show

查看网口状态:

ip a show wg0

查看WireGuard启动后自动运行:

systemctl status wg-quick@wg0



然后下载在/root/client.conf的配置文件:

接着下载安装WireSock客户端打开运行,导入配置文件:

官网下载地址:WireSock Secure Connect

🔜 接下来下一步:在桌面上找到WireSock客户端右键属性,点击兼容性设置为管理员运行:

 

🧱 第二步:打开WireSock客户端导入wireguard的配置文件:

🔹 2.2 接下来设置一下功能:

 

🔹 2.3 设置网络:

📘 2.3 设置高级:

🖥️ 第 3 步:点击编辑配置文件:编辑

通常导入配置文件后,它会自动识别到wireguard文件的内容,前面就不需要设置,只需要设置后面的一些参数:

开启虚拟网卡和绕过局域网:

DPI保护,垃圾数据包就按照我的填写即可:

垃圾数据包数量(JC): 3

垃圾数据包最小大小(Jmin): 50

垃圾数据包最大大小(Jmax): 1000

垃圾数据包延迟 (Jd): 0

接下来添加隧道网络地址:0.0.0.0/0,::/0 这个已经默认添加了,不需要添加

1 . 下面关于”隧道应用程序“,意思是你可以添加电脑上的哪个应用走VPN,不用添加

2 .下面关于”非隧道应用程序”,意思就是可以添加电脑上的哪个程序不走VPN,在大陆的网络环境下,你可以把向日葵远程添加,还有微信也添加,这样它可以在局域网下进行流畅远程:

 

好了,接下来如何添加非隧道网络地址进行流量分流:

下面根据我前面分享过的

🎯《Windows 10/11 + OpenVPN 实现国内直连、国外走 VPN 的分流方案(基于 chnroutes2)》 – 玫玫團隊博客網

把获取到的ip全部复制,在桌面上新建一个文本文档,把几千条大陆ip都粘贴到文本文档,由于是纯ip格式,我们无法逐个添加,下面需要先把所有的ip地址转换成用逗号隔开

按下Ctrl + H 键:点替换,在查找目标输入 \r\n 在替换里输入英文的逗号 , 选择正则表达式,然后点全部替换:

替换后,所有ip都会自动添加上逗号,最后按下 Ctrl + A全选,按下Ctrl + C全部复制,添加到WireSock客户端非隧道网络地址栏

保存所有设置,开启连接:

所有连接都正常,接下来测试一下分流情况:https://ip125.com/ 完全没问题

看下 Pi 节点:

以下一些相关命令:

1. 停止 WireGuard 服务

wg-quick down wg0

2.删除服务器和客户端的配置文件:

rm /etc/wireguard/wg0.conf
rm /root/client.conf

3.删除创建了配置文件或密钥文件

rm /root/client_private.key
rm /root/client_public.key
rm /etc/wireguard/preshared.key
rm /etc/wireguard/server_private.key
rm /etc/wireguard/server_public.key

4.卸载 WireGuard 包:

apt-get remove --purge wireguard -y
apt-get autoremove -y

5.删除防火墙规则:
# 注意:端口号请确保与你安装时一致(如 51820)

iptables -D INPUT -p udp –dport 51820 -j ACCEPT
iptables -D FORWARD -i wg0 -j ACCEPT
iptables -D FORWARD -o wg0 -j ACCEPT
iptables -t nat -D POSTROUTING -s 10.7.0.0/24 -o $MAIN_NIC -j MASQUERADE

# 6. 保存更改,使防火墙规则永久失效

netfilter-persistent save

# 7. 重启系统

sudo reboot

今天的分享就到这里!