Skip to content

wireguard

WireGuard官网

介绍

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

需要准备

  • 一个支持wireguard内核的主机
  • 有公网ip的服务器
  • docker

安装

参考了司波图老师的文档

docker部署wireguard

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或域名:端口