WireGuard 的安装和配置
VPN 类型介绍
服务器间有很多种 VPN 类型,以下是其中几种常见的类型:
- PPTP(Point-to-Point Tunneling Protocol)VPN:一种最早出现的 VPN 协议,可用于建立点对点连接,但现在不再安全,已被广泛淘汰
- L2TP(Layer 2 Tunneling Protocol)VPN:一个基于点对点协议的隧道协议,可以在现有的互联网上建立安全的连接
- OpenVPN:一种基于 SSL/TLS 的 VPN 协议,支持多种操作系统和硬件平台,是当前最受欢迎的 VPN 解决方案之一
- IPSec(Internet Protocol Security)VPN:一种广泛应用于企业网络的VPN协议,可以提供可靠的安全通信
- WireGuard:一种现代的 VPN 协议,具有更快的速度和更好的安全性能,但需要最新的内核支持
- SoftEther VPN:一个开源的多协议 VPN 解决方案,支持多种协议,包括 OpenVPN、L2TP/IPsec 和 PPTP
Debian (该服务端口可自定义,此文以16888为例)
~服务端配置
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
sysctl -p
echo "deb http://mirrors.ustc.edu.cn/debian/ $(lsb_release -cs)-backports main contrib non-free" >>/etc/apt/sources.list
apt update
apt -t $(lsb_release -cs)-backports install -y wireguard
cd /etc/wireguard; umask 077; wg genkey | tee privatekey | wg pubkey > publickey
cat >/etc/wireguard/wg0.conf <<END
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 16888
END
echo "PrivateKey = $(cat privatekey)" >>/etc/wireguard/wg0.conf
~客户端配置
echo "deb http://mirrors.ustc.edu.cn/debian/ $(lsb_release -cs)-backports main contrib non-free" >>/etc/apt/sources.list
apt update
apt -t $(lsb_release -cs)-backports install -y wireguard
cd /etc/wireguard; umask 077; wg genkey | tee privatekey | wg pubkey > publickey
cat >/etc/wireguard/wg0.conf <<END
[Interface]
Address = 10.0.0.2/24
END
echo "PrivateKey = $(cat privatekey)" >>/etc/wireguard/wg0.conf
cat >>/etc/wireguard/wg0.conf <<END
[Peer]
PublicKey = 服务端公钥
AllowedIPs = 0.0.0.0/0
Endpoint = 服务端公网IP:16888
PersistentKeepalive = 20
~服务端再配置
cat >>/etc/wireguard/wg0.conf <<END
[Peer]
PublicKey = 客户端公钥
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 20
END
配置完成后服务端和客户端执行
systemctl enable wg-quick@wg0 --now
# 手动启动
wg-quick up wg0
# 重新加载配置
wg syncconf wg0 <(wg-quick strip wg0)
启动后若客户端无法访问外网,请检查 iptables 规则和路由表