如何在 CentOS 8 上设置 WireGuard VPN
admin
2023-08-03 05:35:00
0

WireGuard 是一种简单而现代的 VPN(虚拟专用网络),具有最先进的加密技术。它与其他类似解决方案(如 IPsec 和 OpenVPN)更快、更容易配置,性能也更强。

WireGuard 是跨平台的,几乎可以在任何地方运行,包括 Linux、Windows、Android 和 macOS。卫士是点对点VPN;它不是基于客户端-服务器模型。根据其配置,对等体可以充当传统服务器或客户端。

WireGuard的工作原理是在每个作为隧道运行的对等设备上创建一个网络接口。对等体通过交换和验证公钥(模拟 SSH 模型)相互验证。公钥使用隧道中允许的 IP 地址列表映射。VPN 流量封装在 UDP 中。

本教程介绍如何在 CentOS 8 计算机上设置线卫士,该计算机将充当 VPN 服务器。我们还将向您展示如何将 WireGuard 配置为客户端。客户端的流量将通过 CentOS 8 服务器路由。此设置可用作针对中间人攻击、匿名浏览网页、绕过地理限制内容或允许在家工作的同事安全地连接到公司网络的保护。

先决条件

您将需要一个 CentOS 8 服务器,您可以访问为 root 或帐户与sudo 权限。

设置有线保护服务器

我们将从在 CentOS 计算机上安装 WireGuard 开始,并将其设置为充当服务器。我们还将配置系统以路由客户端的流量通过它。

在 CentOS 8 上安装线护

WireGuard 工具和内核模块可用于从 Epel 和 Elrepo 存储库进行安装。要将存储库添加到系统,请运行以下命令:

sudo dnf install epel-release elrepo-release 

完成后,安装 WireGuard 软件包:

sudo dnf install kmod-wireguard wireguard-tools

系统可能会要求您导入存储库 GPG 密钥。出现提示时键入。y

配置线护

该包包括两个名为的命令行工具,允许您配置和管理 WireGuard 接口。wireguard-toolswgwg-quick

我们将将 VPN 服务器配置存储在目录中。在 CentOS 上,在安装过程中不会创建此目录。运行以下命令以创建目录:/etc/wireguard

sudo mkdir /etc/wireguard

在目录中生成公钥和私钥。/etc/wireguard

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

您可以查看与猫或更少的文件。私钥绝不应与任何人共享。

现在生成密钥,下一步是配置将路由 VPN 流量的隧道设备。

可以使用ip和 或使用文本编辑器创建配置文件,从命令行设置设备。wg

创建一个名为并添加以下内容的新文件:wg0.conf

sudo nano /etc/wireguard/wg0.conf

/etc/线护/wg0.conf

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp     = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
PostDown   = firewall-cmd --zone=public --remove-port 51820/udp && firewall-cmd --zone=public --remove-masquerade

复制

该接口可以命名为任何您想要的,但建议使用类似 包括 或 等内容。接口部分中的设置具有以下含义:wg0wgvpn0

  • 地址 – 接口的 v4 或 v6 IP 地址的逗号分隔列表。使用专用网络保留范围的 IP(10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16)。wg0
  • 侦听端口 – WireGuard 将接受传入连接的端口。
  • 专用密钥 – 命令生成的私钥。(若要查看文件运行的内容:wg genkeysudo cat /etc/wireguard/privatekey)
  • SaveConfig – 设置为 true 时,关闭时接口的当前状态将保存到配置文件中。
  • PostUp – 在启动接口之前执行的命令或脚本。在此示例中,我们使用 来打开 WireGuard 端口并启用伪装。这将允许流量离开服务器,使 VPN 客户端访问互联网。firewall-cmd
  • PostDown – 在关闭接口之前执行的命令或脚本。一旦接口关闭,防火墙规则将被删除。

和 文件不应对普通用户进行可读。使用chmod将权限设置为 :wg0.confprivatekey600

sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}

完成后,使用配置文件中指定的属性启动接口:wg0

sudo wg-quick up wg0

该命令将输出类似以下操作:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

若要查看接口状态和配置,请运行:

sudo wg show wg0
interface: wg0
  public key: My3uqg8LL9S3XZBo8alclOjiNkp+T6GfxS+Xhn5a40I=
  private key: (hidden)
  listening port: 51820

还可以使用 命令验证接口状态:ip

ip a show wg0
4: wg0:  mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

若要在启动时启动接口,请运行以下命令:wg0

sudo systemctl enable wg-quick@wg0

服务器网络

要使 NAT 正常工作,我们需要启用 IP 转发。创建新文件 并添加以下行:/etc/sysctl.d/99-custom.conf

sudo nano /etc/sysctl.d/99-custom.conf

/etc/sysctl.d/99-自定义.conf

net.ipv4.ip_forward=1

复制

保存文件并使用sysctl 应用更改

sudo sysctl -p /etc/sysctl.d/99-custom.conf
net.ipv4.ip_forward = 1

就是这样。将充当服务器的 CentOS 对等体已设置。

Linux 和 macOS 客户端设置

所有受支持平台的安装说明可在https://wireguard.com/install/。在 Linux 系统上,可以使用分发包管理器安装包,并使用 在 macOS 上安装。安装 WireGuard 后,请按照以下步骤配置客户端设备。brew

设置 Linux 和 macOS 客户端的过程与服务器的过程大致相同。首先生成公钥和私钥:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

创建文件并添加以下内容:wg0.conf

sudo nano /etc/wireguard/wg0.conf

/etc/线护/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

复制

接口部分中的设置与设置服务器时的含义相同:

  • 地址 – 接口的 v4 或 v6 IP 地址的逗号分隔列表。wg0
  • 专用密钥 – 要查看客户端计算机上运行的文件内容,请参阅运行:sudo cat /etc/wireguard/privatekey

对等部分包含以下字段:

  • PublicKey – 要连接到的对等体的公钥。(服务器文件的内容)。/etc/wireguard/publickey
  • 终结点 – 要连接到的对等体的 IP 或主机名,后跟冒号,然后是远程对等体侦听的端口号。
  • 允许 IP – 允许对等体传入流量的 v4 或 v6 IP 地址的逗号分隔列表,该列表指示该对等体的传出流量。我们使用 0.0.0.0/0,因为我们路由流量,希望服务器对等体发送具有任何源 IP 的数据包。

如果需要配置其他客户端,只需使用不同的专用 IP 地址重复相同的步骤。

Windows 客户端设置

从有线卫士网站下载并安装Windows msi包。

安装后打开 WireGuard 应用程序,然后单击\”添加隧道\” – > \”添加空隧道…\”如下图所示:

windows-add-tunnel_hu56a3787b65506e3031c39b5f2d23f7ff_36326_480x0_resize_q75_lanczos-1windows-add-tunnel_hu56a3787b65506e3031c39b5f2d23f7ff_36326_480x0_resize_q75_lanczos-1

将自动创建公共密钥对并在屏幕上显示。

windows-tunnel_huec2f8613c4e0f62234ee1d2c887150b3_60380_480x0_resize_q75_lanczos-1windows-tunnel_huec2f8613c4e0f62234ee1d2c887150b3_60380_480x0_resize_q75_lanczos-1

输入隧道的名称并编辑配置,如下所示:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

复制

在接口部分中添加新行以定义客户端隧道地址。

在对等部分中添加以下字段:

  • PublicKey – CentOS 服务器(文件)的公钥。/etc/wireguard/publickey
  • 端点 – CentOS 服务器的 IP 地址后跟冒号和 WireGuard 端口 (51820)。
  • 允许的 IP – 0.0.0.0/0

完成后,单击\”保存\”按钮。

将客户端对等体添加到服务器

最后一步是将客户端公钥和 IP 地址添加到服务器:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

请确保使用在客户端计算机上生成的公钥 () 更改 ,如果客户端 IP 地址不同,请调整该地址。Windows 用户可以从 WireGuard 应用程序复制公钥。CLIENT_PUBLIC_KEYsudo cat /etc/wireguard/publickey

完成后,返回客户端计算机并打开隧道接口。

Linux 和 macOS 客户端

在 Linux 客户端上运行以下命令,打开接口:

sudo wg-quick up wg0

现在,您应该连接到 CentOS 服务器,并且客户端计算机的流量应该通过它路由。您可以检查以下连接:

sudo wg
interface: wg0
  public key: sZThYo/0oECwzUsIKTa6LYXLhk+Jb/nqK4kCCP2pyFg=
  private key: (hidden)
  listening port: 60351
  fwmark: 0xca6c

peer: My3uqg8LL9S3XZBo8alclOjiNkp+T6GfxS+Xhn5a40I=
  endpoint: XXX.XXX.XXX.XXX:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 213.25 KiB received, 106.68 KiB sent

您也可以打开浏览器,键入\”什么是我的IP\”,你应该看到你的 CentOS 服务器IP地址。

要停止隧道,请关闭接口:wg0

sudo wg-quick down wg0

窗口客户端

如果您在 Windows 上安装了 WireGuard,请单击\”激活\”按钮。连接对等体后,隧道状态将更改为\”活动\”:

windows-connect-tunnel_hud873eb0fda625aa40c16e0159ae1b4f2_73122_480x0_resize_q75_lanczos-1windows-tunnel_huec2f8613c4e0f62234ee1d2c887150b3_60380_480x0_resize_q75_lanczos-1

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在电报Telegram中隐... 点击进入:ChatGPT工具插件导航大全 在Android上的电报中隐藏您的电话号码 您可以通过切换...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在 iPhone 14 P... Apple 的 iPhone 14 Pro 是第一款配备 48MP 传感器的 iPhone。所有以前...