WireGuard配置指南
WireGuard是一个现代的高效VPN协议,支持端到端或服务器到客户端的安全连接,以下是配置步骤:
安装WireGuard
首先安装WireGuard和相关工具:
# CentOS/Fedora sudo dnf install wireguard
生成密钥
使用wg命令生成密钥:
# 生成服务器公钥(server_pub) wg genkey server: <server_pub_key> # 生成客户端公钥(client_pub) wg genkey client: <client_pub_key> # 查看密钥 wg show keys
注意:
- 服务器的私钥应存放在安全的位置(如密钥环)。
- 私钥一旦泄露,可能导致安全风险。
配置WireGuard服务器
1 安装并准备服务器
安装必要的包:
sudo apt install ufw
配置网络接口:
sudo ifconfig wg 0.../24
创建路由表:
sudo ip route add 0.../ via 192.168.1.1 dev wg sudo ip route add 192.168.1./24 dev wg
设置默认网关:
sudo sysctl -e net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -o wg -j MASQUERADE
2 配置WireGuard
编辑/etc/wireguard/wg.conf:
# 服务器配置 PublicKey = <server_pub_key> PrivateKey = <server_priv_key> ListenPort = 518 # 内部网络配置 DNSEnable = 2
注意:
- 将
<server_pub_key>和<server_priv_key>替换为实际生成的密钥。 ListenPort是默认端口,可以根据需要更改。
3 启动服务器
sudo wg-quick-hup wg
配置WireGuard客户端
1 下载服务器公钥
将服务器的公钥传递给客户端:
# 服务器端传递公钥(示例,假设服务器IP为192.168.1.1) scp /etc/wireguard/wg.pub 192.168.1.1:/etc/wireguard/wg.pub
2 配置客户端
编辑/etc/wireguard/wg.conf:
# 客户端配置 PublicKey = <server_pub_key> PrivateKey = <client_priv_key> Peer = <server_ip:518>
注意:
- 将
<server_pub_key>替换为服务器的公钥。 - 将
<client_priv_key>替换为客户端的私钥。 - 将
<server_ip>替换为服务器的IP地址。
3 启动客户端
sudo wg-quick-hup wg
测试连接
1 查看状态
查看连接状态:
sudo wg show wg
2 测试IP
在客户端运行:
ping 192.168.1.1
在服务器运行:
ping 192.168.1.2
常见问题
1权限问题
确保运行wg命令没有权限问题:
sudo chmod 700 /etc/wireguard sudo chown root:root /etc/wireguard
2路由问题
检查路由表:
sudo ip route show
确保服务器配置了正确的路由。
进一步优化
1 开启IP转发
sudo sysctl -e net.ipv4.ip_forward=1
2 NAT配置
如果服务器位于NAT后面:
sudo iptables -t nat -A POSTROUTING -o wg -j MASQUERADE sudo iptables -t nat -A PREROUTING -i wg -j DNAT --to-destination 192.168.1.1
日志管理
查看日志:
sudo journalctl -u wg-quick@wg.service -b
高级配置
1 多个服务器
如果有多个服务器,可以重复以上步骤为每个服务器生成密钥,并配置客户端连接到所有服务器。
2 DNS配置
在客户端配置中添加DNS:
DNS = 192.168.1.1









