乐于分享
好东西不私藏

WireGuard安装与配置教程

WireGuard安装与配置教程

概述

WireGuard 是一种轻量级VPN协议,通过UDP传输,具备以下特性:

特性
说明
高性能
比IPsec/OpenVPN更快的传输速度
现代化
代码简洁,攻击面小
安全性
采用现代加密算法

适用条件:公网IP环境(腾讯云/阿里云等购买)


一、环境要求

要求
说明
公网IP
服务端需具备公网IP
内核版本
≥5.6(低于此版本需升级内核)
依赖包
内核、内核源码、内核头文件版本一致

二、安装步骤

2.1 安装WireGuard

  • 1
sudo apt-get install wireguard

2.2 开启IPv4转发

  • 1
  • 2
echo"net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p

2.3 生成密钥对

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
mkdir -p /etc/wireguard && chmod 0777 /etc/wireguardcd /etc/wireguardumask 077# 生成服务端密钥wg genkey | tee server_privatekey | wg pubkey > server_publickey# 生成客户端密钥wg genkey | tee client_privatekey | wg pubkey > client_publickey

三、服务端配置

3.1 生成配置文件

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
echo"[Interface]PrivateKey = $(cat server_privatekey)Address = 10.0.8.1/24PostUp   = iptables -A FORWARD -i wg0 -j ACCEPTPostUp   = iptables -A FORWARD -o wg0 -j ACCEPTPostUp   = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPTPostDown = iptables -D FORWARD -o wg0 -j ACCEPTPostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEListenPort = 50814DNS = 8.8.8.8MTU = 1420[Peer]PublicKey = $(cat client_publickey)AllowedIPs = 10.0.8.10/24" > wg0.conf

注意:eth0 替换为实际网卡名,50814 为UDP端口号

3.2 设置开机启动

  • 1
systemctl enable wg-quick@wg0

3.3 启动与停止

操作
命令
启动
wg-quick up wg0
停止
wg-quick down wg0
查看状态
wg

四、客户端配置

4.1 生成配置文件

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
echo"[Interface]PrivateKey = $(cat client_privatekey)Address = 10.0.8.10/24DNS = 8.8.8.8MTU = 1420[Peer]PublicKey = $(cat server_publickey)Endpoint = 服务端公网IP:50814AllowedIPs = 0.0.0.0/0, ::0/0PersistentKeepalive = 25" > client.conf

4.2 启动方式

  • GUI方式:下载 WireGuard客户端[https://www.wireguard.com/install/],导入配置文件
  • 命令行方式:
    wg-quick up clientwg-quick down client
    • 1
    • 2

4.3 路由配置(可选)

  • 1
  • 2
  • 3
  • 4
  • 5
# 添加特定IP路由ip route add 103.52.188.136 via 192.168.1.2# 所有流量走VPNip route add 0.0.0.0/0 via 10.0.8.1

五、测试验证

5.1 连通性测试

  • 1
ping 10.0.8.1

5.2 数据包抓取

服务端安装 tcpdump 监听VPN接口:

  • 1
  • 2
apt -y install tcpdumptcpdump -i wg0

六、高级命令

场景
命令
创建接口
ip link add dev wg0 type wireguard
分配IP
ip address add dev wg0 192.168.2.1/24
点对点模式
ip address add dev wg0 192.168.2.1 peer 192.168.2.2
配置密钥
wg setconf wg0 myconfig.conf
手动配置
wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips 192.168.88.0/24 endpoint 209.202.254.14:8172
启用接口
ip link set up dev wg0
查看配置
wg
 或 wg showconf

七、密钥生成(补充)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
# 生成私钥umask 077 && wg genkey > privatekey# 导出公钥wg pubkey < privatekey > publickey# 一步完成wg genkey | tee privatekey | wg pubkey > publickey

附录

  • 官网:https://www.wireguard.com
  • 安装文档:https://www.wireguard.com/install/
  • 快速入门:https://www.wireguard.com/quickstart/

相关学习资料