wireguard
介绍
WireGuard 是一种非常简单但快速且现代的 VPN,它利用最先进的**密码学**。它的目标是比 IPsec 更快、更简单、更精简、更有用,同时避免了巨大的头痛。它打算比 OpenVPN 的性能要高得多。WireGuard 被设计为通用 VPN,可在嵌入式接口和超级计算机上运行,适用于许多不同的情况。它最初针对 Linux 内核发布,现在是跨平台的(Windows、macOS、BSD、iOS、Android)并且可以广泛部署。它目前正在进行大量开发,但它已经可能被认为是业内最安全、最容易使用和最简单的 VPN 解决方案。
需要准备
- 一个支持wireguard内核的主机
- 有公网ip的服务器
- docker
安装
docker部署wireguard
需要开放的端口及其类型
51820/udp 51821/tcp

配置文件对比
注意
- 每个配置文件都有
[Interface]和[Peer] - 服务端可以有多个
[Peer],客户端只有一个[Peer] - 子网掩码填写32,表示固定ip
服务端
text
[Interface]
PrivateKey = mMYI1Gtp4jKblqiezanr10nvgWkud1Z3lP5jwCOBy1U=
Address = 192.168.110.1/24
ListenPort = 51820
PreUp =
PostUp = iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT;
PreDown =
PostDown = iptables -t nat -D POSTROUTING -s 192.168.110.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT;
# Client: test (170db304-313a-4f11-9957-482bb5f25744)
[Peer]
PublicKey = PeKX3y3Qv18HeFO5fdlayrU18bX+jYg0aTy+oT4lMkE=
PresharedKey = EbM2dQqwXh70/A+fYbZdHp3ONEUE9OvniSifqs2qGNY=
AllowedIPs = 192.168.110.2/32
# Client: test2 (d5dffa63-cf1e-4fb1-b462-bdf627e4f21b)
[Peer]
PublicKey = IC9F8WieDQcbKL4wc/kKR1wOVZYvEGGKToGUP1fzv00=
PresharedKey = OedWtt5I2yJwI9Ki4VRutiLAH1pMoOLsKs9BiwpcvnY=
AllowedIPs = 192.168.110.3/32客户端(test)
text
[Interface]
PrivateKey = OK1fTX4i1IVIW23JdAPGF9CrMgXXQ3jGwNOWD6kk60I=
Address = 192.168.110.2/24
DNS = 114.114.114.114
[Peer]
PublicKey = YYMrMyCjdgfLBuOVgq1isdYITN6GCYm6Oa/ZFbfR9F8=
PresharedKey = EbM2dQqwXh70/A+fYbZdHp3ONEUE9OvniSifqs2qGNY=
AllowedIPs = 192.168.110.0/24
PersistentKeepalive = 0
Endpoint = wireguard服务器ip或域名:端口客户端(test2)
text
[Interface]
PrivateKey = YMb9j0mFHHckNesD4V+pp+09meOhJEtfAtncuL9QFHg=
Address = 192.168.110.3/24
DNS = 114.114.114.114
[Peer]
PublicKey = YYMrMyCjdgfLBuOVgq1isdYITN6GCYm6Oa/ZFbfR9F8=
PresharedKey = OedWtt5I2yJwI9Ki4VRutiLAH1pMoOLsKs9BiwpcvnY=
AllowedIPs = 192.168.110.0/24
PersistentKeepalive = 0
Endpoint = wireguard服务器ip或域名:端口