WireGuard搭建虚拟个人网络
安装WireGuard
# 安装wireguard
apt install wireguard-tools -y
# 开启流量转发
echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
进入配置存储路径,调整目录权限
chmod 0777 /etc/wireguard
cd /etc/wireguard
生成公钥私钥
wg genkey | tee server.key | wg pubkey > server.key.pub
生成client1公钥私钥
wg genkey | tee client1.key | wg pubkey > client1.key.pub
创建服务器配置文件
echo "
[Interface]
PrivateKey = $(cat server.key)
Address = 10.0.0.1/24
ListenPort = 50820
DNS = 119.29.29.29
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 = $(cat client1.key.pub)
AllowedIPs = 10.0.0.2/32" > wg0.conf
增加client2
# 生成公钥私钥
wg genkey | tee client2.key | wg pubkey > client2.key.pub
# 追加到wg0.conf配置
echo "
[Peer]
PublicKey = $(cat client2.key.pub)
AllowedIPs = 10.0.0.3/32" >> wg0.conf
设置WireGuard服务自启
systemctl enable wg-quick@wg0
启动WireGuard
# 启动wg0
wg-quick up wg0
# 关闭wg0
wg-quick down wg0
创建client1配置
echo "
[Interface]
PrivateKey = $(cat client1.key)
Address = 10.0.0.2/24
DNS = 119.29.29.29
[Peer]
PublicKey = $(cat server.key.pub)
AllowedIPs = 10.0.0.0/24
Endpoint = 公网IP:50820
PersistentKeepalive = 30" > client1.conf