当前位置:首页 > Centos > 正文

CentOS WireGuard配置(手把手教你从零搭建安全高速的VPN服务)

在当今网络安全日益重要的时代,搭建一个私有、加密且高效的虚拟专用网络(VPN)变得尤为重要。WireGuard 是一款现代、轻量级、高性能的 VPN 协议,相比传统方案如 OpenVPN 或 IPSec,它具有更简洁的代码库和更快的速度。本文将详细讲解如何在 CentOS 系统上完成 CentOS WireGuard配置,即使是 Linux 新手也能轻松上手。

CentOS WireGuard配置(手把手教你从零搭建安全高速的VPN服务) WireGuard配置 WireGuard安装教程 CentOS搭建VPN WireGuard内核模块 第1张

一、准备工作

在开始之前,请确保你满足以下条件:

  • 一台运行 CentOS 7 或 CentOS 8/Stream 的服务器(建议使用 CentOS Stream 8 或 9,对新内核支持更好)
  • 拥有 root 权限或可使用 sudo 的用户
  • 服务器已连接互联网

二、安装 EPEL 和必要的依赖

首先,我们需要启用 EPEL(Extra Packages for Enterprise Linux)仓库,并安装一些基础工具:

# 对于 CentOS 7sudo yum install -y epel-releasesudo yum install -y yum-utils# 对于 CentOS Stream 8/9sudo dnf install -y epel-releasesudo dnf install -y dnf-plugins-core

三、安装 WireGuard 内核模块和工具

WireGuard 需要内核模块支持。在较新的 CentOS 版本中,可以通过官方仓库直接安装。如果系统内核较旧,可能需要通过 DKMS 编译模块。

执行以下命令安装 WireGuard:

# CentOS Stream 8/9(推荐)sudo dnf install -y wireguard-tools# CentOS 7(需先启用 ELRepo 仓库)sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.reposudo yum install -y wireguard-dkms wireguard-tools

安装完成后,可通过以下命令验证是否成功:

wg --version

如果看到类似 wg v1.0.20210914 的输出,说明 WireGuard内核模块 已正确安装。

四、生成密钥对

WireGuard 使用公钥加密机制。我们需要为服务器和客户端分别生成密钥对。

# 创建配置目录sudo mkdir -p /etc/wireguard# 进入目录并生成私钥和公钥sudo su -cd /etc/wireguardumask 077wg genkey | tee privatekey | wg pubkey > publickey

执行后,你会在 /etc/wireguard/ 目录下看到两个文件:privatekey(服务器私钥)和 publickey(服务器公钥)。

五、配置 WireGuard 服务端

创建配置文件 /etc/wireguard/wg0.conf

[Interface]PrivateKey = <你的服务器私钥>Address = 10.0.0.1/24ListenPort = 51820PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

请将 <你的服务器私钥> 替换为 /etc/wireguard/privatekey 文件中的内容。注意:确保网卡名称(如 eth0)与你服务器实际外网网卡一致,可通过 ip a 命令查看。

六、启用 IP 转发并启动服务

编辑 sysctl 配置以启用 IPv4 转发:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.confsudo sysctl -p

设置配置文件权限并启动 WireGuard:

sudo chmod 600 /etc/wireguard/wg0.confsudo systemctl enable wg-quick@wg0sudo systemctl start wg-quick@wg0

至此,CentOS搭建VPN 的服务端已基本完成。

七、配置客户端(以 Windows 为例)

在客户端设备上安装 WireGuard 客户端(官网下载),然后创建如下配置:

[Interface]PrivateKey = <客户端私钥>Address = 10.0.0.2/24DNS = 8.8.8.8[Peer]PublicKey = <服务器公钥>Endpoint = <你的服务器公网IP>:51820AllowedIPs = 0.0.0.0/0PersistentKeepalive = 25

客户端私钥可通过本地 WireGuard 工具生成。服务器公钥即之前生成的 /etc/wireguard/publickey 内容。

八、防火墙设置(重要!)

确保服务器防火墙允许 UDP 51820 端口通信:

# firewalld(CentOS 7/8 默认)sudo firewall-cmd --permanent --add-port=51820/udpsudo firewall-cmd --reload# 或使用 iptables(若未用 firewalld)sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

九、验证连接

在客户端激活连接后,回到服务器执行:

wg show

如果看到 peer 信息和最新握手时间,说明 WireGuard安装教程 成功完成!你现在拥有了一个安全、快速、低延迟的私有网络。

十、常见问题排查

  • 无法连接?检查防火墙和云服务商安全组是否放行 UDP 51820
  • 连接后无网络?确认 PostUp 中的网卡名(eth0/enp0s3 等)是否正确
  • CentOS 7 报错“Protocol not supported”?说明内核版本过低,建议升级或使用 CentOS Stream

通过本教程,你应该已经掌握了完整的 CentOS WireGuard配置 流程。WireGuard 不仅安全高效,而且配置简洁,是现代 VPN 解决方案的理想选择。