服务器和客户端安装配置WireGuard VPN教程

WireGuard
WireGuard是一种现代、安全且易于设置的VPN(虚拟专用网络)解决方案,可用于在服务器和客户端之间创建安全通信隧道。以下是在服务器和客户端上安装和配置WireGuard的逐步指南。

请注意,此处提供的说明是一般指南,具体操作可能因您使用的特定操作系统而有所不同。在本教程中,我们将介绍Linux系统上的安装和配置。

**服务器端安装和配置:**

  1. **在服务器上安装WireGuard**:
  • 在Ubuntu/Debian上:
1
2
sudo apt update
sudo apt install wireguard
  • 在CentOS/RHEL上:
1
2
sudo yum install epel-release
sudo yum install wireguard-tools
  1. **生成服务器的私钥和公钥**:
1
2
umask 077
wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
  1. **配置WireGuard接口**:
    创建一个新的配置文件,例如:/etc/wireguard/wg0.conf,并添加以下内容(将替换为上一步生成的私钥和公钥):
1
2
3
4
5
6
[Interface]
Address = 10.0.0.1/24
PrivateKey =
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

配置选项的解释:

  • Address:分配给连接到VPN的客户端的IP地址范围。
  • PrivateKey:上一步生成的服务器私钥。
  • ListenPort:WireGuard监听传入连接的端口。
  • PostUpPostDown:这些是用于设置和关闭VPN的IP转发和NAT的命令。
  1. **启用IP转发**:
    打开/etc/sysctl.conf文件并取消注释或添加以下行:
1
net.ipv4.ip\_forward=1

然后应用更改:

1
sudo sysctl -p

  1. **启动WireGuard接口**:
1
sudo wg-quick up wg0
  1. **开机自动启动WireGuard**:
1
sudo systemctl enable wg-quick@wg0
  1. **配置防火墙规则**:
    如果已安装防火墙(例如ufwfirewalld),允许WireGuard端口(默认为51820/UDP):
1
2
3
# UFW示例
sudo ufw allow 51820/udp
sudo ufw enable

**客户端安装和配置:**

  1. **在客户端上安装WireGuard**:
    在客户端机器上执行与服务器相同的步骤。

  2. **生成客户端的私钥和公钥**:

1
2
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
  1. **创建客户端配置文件**:
    创建一个新的配置文件,例如:wg-client.conf,并添加以下内容(将替换为上一步生成的私钥和公钥,将``替换为您的服务器公共IP地址):
1
2
3
4
5
6
7
8
9
10
[Interface]
PrivateKey =
Address = 10.0.0.2/24
DNS = 1.1.1.1 # 可选:在此设置您偏爱的DNS服务器

[Peer]
PublicKey =
Endpoint = :51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

配置选项的解释:

  • PrivateKey:上一步生成的客户端私钥。
  • Address:在VPN内为客户端分配的IP地址。
  • DNS:可选;为客户端指定DNS服务器。
  1. **在客户端上启动WireGuard接口**:
1
sudo wg-quick up wg-client.conf
  1. **开机自动启动WireGuard**:
1
2
3
4
# 在基于systemd的系统上
sudo systemctl enable wg-quick@wg-client

# 在非systemd系统上,请将该命令添加到启动脚本中。
  1. **测试连接**:
    通过检查连接状态和公共IP地址来验证VPN连接是否建立并正常工作:
1
2
sudo wg show
curl ifconfig.me

就是这样!您的WireGuard VPN现在应该已经安装并运行,安全地连接您的服务器和客户端。请记住,保持私钥和配置文件的安全非常重要,它们对于您的VPN设置的完整性至关重要。