在服务器端(Linux)
- 安装 WireGuard 工具
- 如果你使用的是 Debian 或 Ubuntu,运行以下命令安装:
sudo apt-get install wireguard
- 启动 WireGuard 服务:
sudo systemctl start wg-quick@wg
- 使其自动启动:
sudo systemctl enable wg-quick@wg
- 如果你使用的是 Debian 或 Ubuntu,运行以下命令安装:
在客户端(Linux 或 Windows)
- 安装 WireGuard 工具
- Linux:
sudo apt-get install wireguard
- Windows(使用 WSL):
安装 WSL 后,可以通过以下步骤安装 WireGuard:
# 如果你使用的是 WSL 2,确保你已经启用了虚拟化和Hyper-V。 # 安装 wireguard: wget https://github.com/wireguard/wireguard/releases/download/v1../wireguard-1..-1.tar.xz tar xz -O - cd wireguard-1..-1 # 安装并启动: sudo ./wireguard install
- Linux:
生成 WireGuard 密钥文件
-
在服务器端生成密钥文件
-
运行以下命令生成服务器的密钥文件:
wg genkey --server -o wireguard_server.key
-
生成客户端密钥文件:
wg genkey -o wireguard_client.key
-
注意:密钥文件是加密的,务必妥善保存,避免丢失。
-
配置服务器端的 WireGuard 接口
-
编辑服务器的配置文件
-
打开
wg.conf文件:sudo nano /etc/wireguard/wg.conf
-
[Interface] Listen = 0...:51820 Binding = 0.../
-
说明:
Listen:指定接口的监听地址和端口,这里使用了默认的 51820 端口。Binding:指定接口的绑定地址, 表示所有接口都可以访问。
-
-
将服务器的公钥添加到配置文件中
- 使用
wgpubkey命令生成服务器的公钥文件:wgpubkey -o /etc/wireguard/wg.pub
- 打开
wg.pub文件:nano /etc/wireguard/wg.pub
- 复制公钥内容,粘贴到服务器的
wg.conf文件中,确保位于[Peer]部分。
- 使用
配置客户端的 WireGuard 接口
-
编辑客户端的配置文件
-
创建或编辑客户端的配置文件
client.conf:nano client.conf
-
[Interface] PrivateKey = /path/to/wireguard_client.key PublicKey = /path/to/wireguard_server.pub
-
注意:确保
PrivateKey和PublicKey指向正确的密钥文件路径。
-
-
添加服务器的公钥到客户端的配置文件中
- 将服务器的公钥内容复制到客户端的
client.conf文件中,确保位于[Peer]部分。
- 将服务器的公钥内容复制到客户端的
启动 WireGuard 服务并连接
-
在服务器端启动 WireGuard
- 运行以下命令启动 WireGuard 服务:
sudo wg-quick-halt wg
- 服务将启动并监听指定端口。
- 运行以下命令启动 WireGuard 服务:
-
在客户端连接服务器
- 在客户端运行以下命令:
wg-quick-halt
- 等待连接建立后,可以使用以下命令检查状态:
wg show
- 如果状态显示接口
wg已连接,说明配置成功。
- 在客户端运行以下命令:
测试 VPN 连接
-
检查接口状态
- 在客户端运行:
ip link show
- 查看
wg接口是否处于连接状态。
- 在客户端运行:
-
测试网络连通性
- 在客户端运行:
ping 8.8.8.8
- ping 成功,说明 VPN 正确配置,并且可以访问外部网络。
- 在客户端运行:
备份配置文件
-
服务器端:
sudo mv /etc/wireguard/wg.conf /etc/wireguard/wg.conf.bak
修改配置文件并保存更改。
-
客户端:
cp client.conf client.conf.bak
故障排除
-
权限问题
- 确保 WireGuard 服务和相关文件有正确的权限:
sudo chown -R wg:wg /etc/wireguard/
- 确保 WireGuard 服务和相关文件有正确的权限:
-
端口占用
- 检查端口 51820 是否被占用:
sudo netstat -tuln | grep 51820
- 检查端口 51820 是否被占用:
-
防火墙设置
- 确保防火墙允许 WireGuard 服务通过:
sudo ufw allow out 51820
- 确保防火墙允许 WireGuard 服务通过:
进一步配置(可选)
-
NAT 穿透
- 在客户端配置文件中添加:
[Options] Nat Enable
- 在客户端配置文件中添加:
-
DNS 解决方案
- 在客户端配置文件中添加 DNS 服务器:
[DNS] Servers = 8.8.8.8
- 在客户端配置文件中添加 DNS 服务器:
通过以上步骤,你已经成功配置了 WireGuard VPN 服务器,并为客户端设置了正确的接口配置,确保密钥文件和配置文件的路径正确,及时备份配置文件,以便在必要时恢复,使用 WireGuard 提供了一个高效且安全的 VPN 配置方式,适用于多种网络环境。









