字体预加载
Home
avatar

翻过墙

翻过墙

WireGuard-现代VPN

WireGuard 是一个现代化的VPN协议,设计简洁、性能优异、安全性高。它比传统的OpenVPN和IPSec更轻量级,配置更简单,是新一代VPN解决方案的代表。

主要特性

⚡ 高性能

  • 内核级实现: 直接在内核中运行,性能优异
  • 轻量级设计: 代码量少,攻击面小
  • 低延迟: 比传统VPN协议延迟更低
  • 高吞吐量: 支持千兆网络传输

🔒 安全性

  • 现代加密: 使用最新的加密算法
  • 密钥管理: 简洁的密钥交换机制
  • 无状态设计: 减少攻击向量
  • 代码审计: 代码简洁,易于审计

🔧 易用性

  • 简单配置: 配置文件简洁明了
  • 快速部署: 几分钟即可完成部署
  • 跨平台: 支持所有主流操作系统
  • 热重载: 配置修改无需重启

🌐 网络功能

  • NAT穿透: 自动处理NAT和防火墙
  • 路由控制: 灵活的路由策略
  • DNS管理: 内置DNS配置
  • MTU优化: 自动优化MTU设置

项目地址

WireGuard - 官网 WireGuard - Github

安装配置

1. Linux安装

# Ubuntu/Debian
sudo apt update
sudo apt install wireguard

# CentOS/RHEL
sudo yum install wireguard-tools

# 编译安装
git clone https://git.zx2c4.com/wireguard-linux-compat
cd wireguard-linux-compat/src
make
sudo make install

2. 生成密钥对

# 生成私钥
wg genkey | tee privatekey | wg pubkey > publickey

# 查看公钥
cat publickey

# 查看私钥
cat privatekey

3. 服务器配置

# /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <服务器私钥>
Address = 10.0.0.1/24
ListenPort = 51820
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

[Peer]
PublicKey = <客户端公钥>
AllowedIPs = 10.0.0.2/32

4. 客户端配置

# /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <客户端私钥>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

高级配置

1. 多客户端配置

# 服务器配置示例
[Interface]
PrivateKey = <服务器私钥>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <客户端1公钥>
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = <客户端2公钥>
AllowedIPs = 10.0.0.3/32

[Peer]
PublicKey = <客户端3公钥>
AllowedIPs = 10.0.0.4/32

2. 路由配置

# 分流配置
[Interface]
PrivateKey = <客户端私钥>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器IP>:51820
# 只路由特定网段
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25

3. 防火墙配置

# 启用IP转发
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# 配置iptables
sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 保存规则
sudo iptables-save > /etc/iptables/rules.v4

使用场景

1. 远程办公

# 远程办公配置
服务器: 公司服务器
客户端: 员工设备
功能:
  - 安全访问内网资源
  - 文件共享
  - 远程桌面
  - 数据库访问

2. 家庭网络

# 家庭网络配置
服务器: 家庭服务器
客户端: 移动设备
功能:
  - 远程访问家庭网络
  - 媒体服务器访问
  - 文件同步
  - 安全浏览

3. 云服务器

# 云服务器配置
服务器: 云服务器
客户端: 本地设备
功能:
  - 服务器管理
  - 数据备份
  - 负载均衡
  - 高可用部署

性能优化

1. 网络优化

# 优化MTU
sudo ip link set wg0 mtu 1420

# 启用TCP拥塞控制
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2. 系统优化

# 优化内核参数
echo 'net.core.rmem_max=2500000' | sudo tee -a /etc/sysctl.conf
echo 'net.core.wmem_max=2500000' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

3. 监控配置

# 查看连接状态
sudo wg show

# 查看接口统计
sudo wg show wg0 dump

# 监控日志
sudo journalctl -u wg-quick@wg0 -f

安全配置

1. 密钥管理

# 生成强密钥
wg genkey | tee privatekey | wg pubkey > publickey

# 设置密钥权限
chmod 600 privatekey
chmod 644 publickey

# 定期轮换密钥
# 建议每3-6个月更换一次

2. 网络隔离

# 限制访问范围
AllowedIPs = 10.0.0.0/24

# 禁用转发
# 在客户端配置中不包含0.0.0.0/0

3. 防火墙规则

# 限制WireGuard端口
sudo ufw allow 51820/udp

# 限制管理访问
sudo ufw allow from 192.168.1.0/24 to any port 22

常见问题

Q: 如何检查连接状态?

A: 使用 sudo wg show 命令查看连接状态和统计信息。

Q: 如何添加新客户端?

A: 生成新的密钥对,在服务器配置中添加新的[Peer]段。

Q: 如何更新配置?

A: 修改配置文件后运行 sudo wg-quick down wg0 && sudo wg-quick up wg0

Q: 如何排查连接问题?

A: 检查防火墙设置、网络连通性、密钥配置和路由表。

总结

WireGuard 是一个优秀的现代VPN解决方案,具有以下优势:

  • 完全免费开源
  • 高性能设计
  • 安全性强
  • 配置简单
  • 跨平台支持
  • 易于维护

WireGuard 特别适合需要高性能、安全性和易用性的VPN场景。

WireGuard 相对较新,建议在生产环境中充分测试后再部署。

WireGuard VPN 开源 网络安全 工具 免费