服务器和客户端安装配置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
  2. **配置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
  2. **启动WireGuard接口**:

    1
    sudo wg-quick up wg0
  3. **开机自动启动WireGuard**:

    1
    sudo systemctl enable wg-quick@wg0
  4. **配置防火墙规则**:
    如果已安装防火墙(例如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
  3. **创建客户端配置文件**:
    创建一个新的配置文件,例如: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
  2. **开机自动启动WireGuard**:

    1
    2
    3
    4
    # 在基于systemd的系统上
    sudo systemctl enable wg-quick@wg-client

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

    1
    2
    sudo wg show
    curl ifconfig.me

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