WireGuard 安装

艾凌龙
2023-12-01

WireGuard 快速安装教程

安装前说明:

WireGuard 的安装和使用条件非常苛刻,对内核版本要求极高,不仅如此,在不同的系统中,内核,内核源码包,内核头文件必须存在且这三者版本要一致。

所以一般不建议在生成环境中安装,除非你对自己的操作很有把握。Red Hat、CentOS、Fedora 等系统的内核,内核源码包,内核头文件包名分别为 kernelkernel-develkernel-headers,Debian、Ubuntu 等系统的内核,内核源码包,内核头文件包名分别为 kernellinux-headers

如果这三者任一条件不满足的话,则不管是从代码编译安装还是从 repository 直接安装,也只是安装了 wireguard-tools 而已。

而 WireGuard 真正工作的部分,是 wireguard-dkms,也就是动态内核模块支持(DKMS),是它将 WireGuard 编译到系统内核中。

因此,在某些 VPS 商家,是需要你先自主更换系统内核,并事先将这三者安装好,才有可能不会出现编译或安装失败。

一、升级内核

对于 Ubuntu 等 apt 系的发行版来说,不需要升级内核即可安装 WireGuard,可以略过此步骤。

如果你使用的是 CentOS 等 rpm 系的发行版,必须要升级内核,步骤如下:

1.载入公钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2.升级安装 elrepo

# centos7
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

# centos8
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

3.载入 elrepo-kernel 元数据

yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

4.安装最新版本的内核

yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml  -y

5.删除旧版本工具包

yum remove kernel-tools-libs kernel-tools kernel-devel kernel-headers -y

6.安装新版本工具包

yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools kernel-ml-devel kernel-ml-headers -y

7.查看内核插入顺序

centos7命令

grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2

CentOS Linux (5.17.7-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-20210623111207095151419199170789) 7 (Core)
[root@duandian yum.repos.d]# 

centos8命令

grubby --info=ALL |grep title

title="Red Hat Enterprise Linux (5.17.7-1.el8.elrepo.x86_64) 8.5 (Ootpa)"
title="Red Hat Enterprise Linux (0-rescue-4cb651785e634a439e0ba4d0a9408d82) 8.5 (Ootpa)"
title="Red Hat Enterprise Linux (4.18.0-348.12.2.el8_5.x86_64) 8.5 (Ootpa)"
title="Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 8.5 (Ootpa)"

默认新内核是从头插入,默认启动顺序也是从 0 开始。

8.查看当前实际启动顺序

centos7命令

grub2-editenv list

saved_entry=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)

centos8 命令

grubby --default-kernel
#grubby --default-title

/boot/vmlinuz-5.17.7-1.el8.elrepo.x86_64

9.设置默认启动

centos7 命令

grub2-set-default 'CentOS Linux (5.17.7-1.el7.elrepo.x86_64) 7 (Core)'

centos8 命令

grubby --set-default /boot/vmlinuz-5.17.7-1.el8.elrepo.x86_64

10.重启检查

reboot
uname -r

二、安装 WireGuard

官方文档: Installation - WireGuard

1.yum安装

centos7 安装

$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools

centos8 安装

$ sudo yum install elrepo-release epel-release
$ sudo yum install kmod-wireguard wireguard-tools

2.脚本一键安装

从源码编译安装 WireGuard,只需一条命令即可。

$ wget --no-check-certificate -O /opt/wireguard.sh https://raw.githubusercontent.com/teddysun/across/master/wireguard.sh

$ chmod 755 /opt/wireguard.sh

$ /opt/wireguard.sh -s

关于该脚本需要说明几点:

  • 支持两种安装方式:既支持从源代码编译安装,也支持从包管理器直接安装。
  • 脚本会创建默认的 wg0 设备,以及 wg0 的客户端配置,并生成客户端配置对应的二维码 png 图片。
  • 脚本会修改本机防火墙设置,如果未启用防火墙,则会出现警告提示,需要手动去设置。
  • 脚本会从 1024 到 20480 随机生成监听端口。
  • 脚本支持新增,删除,列出客户端功能。
  • 脚本支持查看已安装的 WireGuard 的版本号。
  • 脚本支持从代码编译安装的方式升级 WireGuard 到当前最新版本。

如果你想自己生成配置文件,请直接将配置文件目录清空:

rm -rf /etc/wireguard/*
 类似资料: