博主头像
John Titor's blog

欢迎来到我的主页

头图

「教程」vps上部署WireGuard,搭建网络隧道

WireGuard是什么

WireGuard ®是一款极其简单但快速且现代的 VPN,它采用了最先进的加密技术。它旨在比IPsec更快、更简单、更精简、更实用,同时避免大量麻烦。它旨在比 OpenVPN 性能更高。WireGuard 被设计为通用 VPN,可在嵌入式接口和超级计算机上运行,​​适用于许多不同情况。它最初是为 Linux 内核发布的,现在已跨平台(Windows、macOS、BSD、iOS、Android)并可广泛部署。它目前正在大力开发中,但它可能已经被视为业内最安全、最易于使用和最简单的 VPN 解决方案。
WireGuard官网:https://www.wireguard.com/

开始部署

服务器环境:Ubuntu 20.04 64bit

1.手动安装Wireguard

SSH vps后台

ssh 你的用户名@你的服务器IP
sudo -i #root权限

更新软件源

sudo apt update

安装wireguard软件

apt install wireguard resolvconf -y

开启IP转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

2.进入配置存储路径,调整目录权限

cd /etc/wireguard/
chmod 0777 /etc/wireguard 
umask 077 #调整目录默认权限

3.生成服务器秘钥

wg genkey > server.key #生成私钥
wg pubkey < server.key > server.key.pub #通过私钥生成公钥

4.生成客户端(client1)秘钥

wg genkey > client1.key #生成私钥
wg pubkey < client1.key > client1.key.pub #通过私钥生成公钥

显示所有生成的秘钥

cat server.key && cat server.key.pub && cat client1.key && cat client1.key.pub

5.自动创建服务器配置文件

[Interface]
PrivateKey = xxxxxx= #此处为client1的私钥
Address = 10.0.1.10 #此处为peer规定的客户端IP
MTU = 1420 #自己服务器的MTU值

PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#注意eth0需要为本机网卡名称

[Peer]
PublicKey = xxxxxx= #此处为server的公钥
AllowedIPs = 10.0.1.0/24 #此处为允许的服务器IP
Endpoint = 100.100.10.100:10000 #服务器对端IP+端口
PersistentKeepalive = 25

6.设置服务器开机自启动

systemctl enable wg-quick@wg0

7.启动wireguard

wg-quick up wg0 #启动wg0
wg-quick down wg0 #关闭wg0

以上vps服务端便搭建完毕
接下来设置客户端
例:PC/MAC端

wireguard客户端下载地址:https://www.wireguard.com/install/
客户端配置(以client1为例)
[Interface]
PrivateKey = xxxxxx= # #此处为client1的私钥
Address = 10.0.1.10 #此处为peer规定的客户端IP
MTU = 1420

[Peer]
PublicKey = xxxxxx= # #此处为server的公钥
AllowedIPs = 10.0.1.0/24 #此处为允许的服务器IP
Endpoint = 100.100.10.100:10000 #服务器对端IP+端口

例:群晖端

使用群晖套件中心安装wireguard套件。
矿神套件源:https://spk7.imnks.com/

SSH群晖后台

ssh 你的用户名@你的服务器IP
sudo -i #root权限

进入wireguard目录

cd /etc/wireguard

编辑wg0.conf

nano wg0.conf

编辑wg0.conf

[Interface]
PrivateKey = xxxxxx= #此处为client1的私钥
Address = 10.0.1.10 #此处为peer规定的客户端IP
MTU = 1420


# 启用 IP 转发(可选,如果未在 sysctl.conf 中设置)
PreUp = sysctl -w net.ipv4.ip_forward=1

# PostUp 和 PostDown 的 iptables 规则
PostUp = iptables -A FORWARD -i wg0 -o eth2 -j ACCEPT
PostUp = iptables -A FORWARD -i eth2 -o wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth2 -s 10.0.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
PostUp = iptables -t nat -A POSTROUTING -o eth2 -s 10.0.1.0/24 -d 192.168.1.0/24 -j MASQUERADE  # 反向 SNAT 规则


PostDown = iptables -D FORWARD -i wg0 -o eth2 -j ACCEPT
PostDown = iptables -D FORWARD -i eth2 -o wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth2 -s 10.0.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth2 -s 10.0.1.0/24 -d 192.168.1.0/24 -j MASQUERADE  # 删除反向 SNAT 规则


[Peer]
PublicKey = Bgq1r41YfERI/wn9JBiyGeturxUE/UKRN08zRK2twxs= #此处为server的公钥
AllowedIPs = 10.0.1.0/24 #此处为允许的服务器IP
Endpoint = 100.100.10.100:10000 #服务器对端IP+端口
PersistentKeepalive = 25

启动配置

sudo wg-quick up wg0 # 启动
sudo wg-quick down wg0 # 关闭

查看连接状态

sudo wg show wg0

设置开机启动

sudo wg-autostart enable wg0 # 开启开机启动
sudo wg-autostart disable wg0 # 关闭关闭开机启动
「教程」vps上部署WireGuard,搭建网络隧道
https://blog.ibm5100.cn/index.php/archives/7/
本文作者 Lee
发布时间 2025-03-25
许可协议 CC BY-NC-SA 4.0
发表新评论