Debian 部署 wireguard

本文详细介绍了在Debian系统上部署wireguard VPN的过程。首先介绍了所需的环境,包括Debian9服务器、OpenWrt网关和Windows10客户端。接着,文章指导读者如何配置wireguard软件源并安装wireguard程序。随后,详细解释了如何生成双端密钥、创建配置文件,以及如何通过命令行进行配置,并最终生成用于客户端连接的二维码。

环境

设备 说明
Debian9 4.9 内核 vulrt 日本服务器 部署 wireguard 程序
OpenWrt x86 64 内网网关
Windows10 内网设备

部署 wireguard 服务器

配置 wireguard 软件源, 并且安装 wireguard 程序

1
2
3
4
echo "deb http://deb.debian.org/debian/ unstable main" >> /etc/apt/sources.list.d/unstable.list
echo -e "Package: *\nPin: release a=unstable\nPin-Priority: 150\n" >> /etc/apt/preferences.d/limit-unstable

apt-get install wireguard-dkms wireguard-tools linux-headers-$(uname -r) #--> 安装 wireguard
1
2
3
# --> 准备工作目录
mkdir /etc/wireguard/
cd /etc/wireguard/

生成双端秘钥

1
2
mkdir server;wg genkey | tee server/privatekey | wg pubkey > server/publickey	
mkdir client;wg genkey | tee client/privatekey | wg pubkey > client/publickey

创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14

cat > wg0.conf <<-EOF
[Interface]
Address = 172.16.220.1/24
SaveConfig = false
PostUp = (echo 1 > /proc/sys/net/ipv4/ip_forward);iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens4 -j MASQUERADE
ListenPort = 12138
PrivateKey = `cat server/privatekey`

[Peer] #Client
PublicKey = `cat client/publickey`
AllowedIPs = 172.16.220.2/32
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat > client.conf <<-EOF
[Interface]
PrivateKey = `cat client/privatekey`
Address = 172.16.220.2/24
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = `cat server/publickey`
# AllowedIPs = 0.0.0.0/0 # 全部路由都走server
AllowedIPs = 172.16.220.0/24 # wireguard虚拟网段互通
Endpoint = f5-tunnel.my.to:12138
PersistentKeepalive = 25
EOF
qrencode -t ansiutf8 < client.conf
1
2
# 生成二维码
qrencode -t ansiutf8 < client.conf

多个client 就创建多个client peer配置就行了

进阶玩法

wireguard 双端内网互通

主机 ip wg ip 内部网段 作用
ServerA 172.21.161.34 172.16.220.1 172.21.161.34/20 公网服务器, 部署wg服务端
ClientB 192.168.2.142 172.16.220.3 192.168.2.0/24 内网服务器, 部署wg客户端
ClientC 192.168.2.102 192.168.2.0/24 内网服务器
目标是让ServerA 能够直接访问 ClientC的192.168.2.102 ip

ServerA配置

1
2
3
# 把server的配置改为本机的ip
# AllowedIPs = 172.16.220.3/32,192.168.2.0/24
AllowedIPs = 192.168.2.0/24
1
ip route add 172.21.161.34/32 via 192.168.2.142
1
2
3
4
5
# 允许所有流量转发(从192.168.2.0/24到其他网络)
sudo iptables -A FORWARD -d 192.168.2.0/24 -j ACCEPT

# 允许 NAT 转换,确保源地址在路由转发后是正确的
sudo iptables -t nat -A POSTROUTING -s 172.21.161.34/32 -d 192.168.2.0/24 -j MASQUERADE
作者

默吟

发布于

2022-11-21

许可协议

CC BY-NC-SA 4.0

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×