如何在五分鐘內(nèi)裝好 WireGuard?!
點(diǎn)擊上方藍(lán)色“程序猿DD”,選擇“設(shè)為星標(biāo)”
回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

作者 |?米開朗基楊
前言
WireGuard 的安裝和使用條件非??量?/strong>,對內(nèi)核版本要求極高,不僅如此,在不同的系統(tǒng)中,內(nèi)核,內(nèi)核源碼包,內(nèi)核頭文件必須存在且這三者版本要一致。所以一般不建議在生成環(huán)境中安裝,除非你對自己的操作很有把握。Red Hat、CentOS、Fedora 等系統(tǒng)的內(nèi)核,內(nèi)核源碼包,內(nèi)核頭文件包名分別為?kernel、kernel-devel、kernel-headers,Debian、Ubuntu 等系統(tǒng)的內(nèi)核,內(nèi)核源碼包,內(nèi)核頭文件包名分別為?kernel、linux-headers。
果這三者任一條件不滿足的話,則不管是從代碼編譯安裝還是從 repository 直接安裝,也只是安裝了?wireguard-tools?而已。而 WireGuard 真正工作的部分,是?wireguard-dkms,也就是動(dòng)態(tài)內(nèi)核模塊支持(DKMS),是它將 WireGuard 編譯到系統(tǒng)內(nèi)核中。因此,在某些 VPS 商家,是需要你先自主更換系統(tǒng)內(nèi)核,并事先將這三者安裝好,才有可能不會(huì)出現(xiàn)編譯或安裝失敗。
當(dāng)然,目前 WireGuard 已經(jīng)被合并到?Linux 5.6?內(nèi)核中了,如果你的內(nèi)核版本 >= 5.6,就可以用上原生的 WireGuard 了,只需要安裝 wireguard-tools 即可。例如,對于 Ubuntu 20.04 來說,它的內(nèi)核版本是 5.4,雖然小于 5.6,但經(jīng)過我的測試發(fā)現(xiàn)它已經(jīng)將 WireGuard 合并到了內(nèi)核中,我們只需要安裝 wireguard-tools 即可:
$?sudo?apt?install?wireguard?-y
下面討論 WireGuard 在低版本內(nèi)核中的安裝方法。
1. 升級(jí)內(nèi)核
對于 Ubuntu 等 apt 系的發(fā)行版來說,不需要升級(jí)內(nèi)核即可安裝 WireGuard,可以略過此步驟。
如果你使用的是 CentOS 等 rpm 系的發(fā)行版,必須要升級(jí)內(nèi)核,步驟如下:
① 載入公鑰
$?rpm?--import?https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
② 升級(jí)安裝 elrepo
$?rpm?-Uvh?http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
③ 載入 elrepo-kernel 元數(shù)據(jù)
$?yum?--disablerepo=\*?--enablerepo=elrepo-kernel?repolist
④ 安裝最新版本的內(nèi)核
$?yum?--disablerepo=\*?--enablerepo=elrepo-kernel?install??kernel-ml.x86_64??-y
⑤ 刪除舊版本工具包
$?yum?remove?kernel-tools-libs.x86_64?kernel-tools.x86_64??-y
⑥ 安裝新版本工具包
$?yum?--disablerepo=\*?--enablerepo=elrepo-kernel?install?kernel-ml-tools?kernel-ml-devel?kernel-ml-headers?-y
⑦ 查看內(nèi)核插入順序
$?grep?"^menuentry"?/boot/grub2/grub.cfg?|?cut?-d?"'"?-f2
CentOS?Linux?(3.10.0-1127.10.1.el7.x86_64)?7?(Core)
CentOS?Linux?(5.7.2-1.el7.elrepo.x86_64)?7?(Core)
CentOS?Linux?(0-rescue-96820b9851c24560b5f942f2496b9aeb)?7?(Core)
默認(rèn)新內(nèi)核是從頭插入,默認(rèn)啟動(dòng)順序也是從 0 開始。
⑧ 查看當(dāng)前實(shí)際啟動(dòng)順序
$?grub2-editenv?list
saved_entry=CentOS?Linux?(3.10.0-1127.10.1.el7.x86_64)?7?(Core)
⑨ 設(shè)置默認(rèn)啟動(dòng)
$?grub2-set-default?'CentOS?Linux?(5.7.2-1.el7.elrepo.x86_64)?7?(Core)'
最后重啟檢查:
$?reboot
$?uname?-r
2. 安裝 WireGuard
升級(jí)內(nèi)核之后,就可以根據(jù)官方文檔[1]來安裝 WireGuard 了。不過這里我要介紹一個(gè)更狂野的安裝方法,它更高效,也更不容易出錯(cuò),那就是通過源代碼編譯安裝。先別急著反駁,我知道從源代碼編譯看起來一點(diǎn)都不容易,但請聽我說完。你以為我會(huì)教你如何從頭開始編譯嗎?那不可能,有違我這篇文章的初衷,我要推薦一位大佬——秋水逸冰的一鍵安裝腳本,它可以讓你哼著小曲就能從源碼編譯安裝 WireGuard,只需一條命令即可。
腳本的使用方法超級(jí)簡單,先下載腳本,然后賦予執(zhí)行權(quán)限,最后執(zhí)行一條命令搞定:
$?/opt/wireguard.sh?-s
關(guān)于該腳本需要說明幾點(diǎn):
支持兩種安裝方式:既支持從源代碼編譯安裝,也支持從包管理器直接安裝。 腳本會(huì)創(chuàng)建默認(rèn)的 wg0 設(shè)備,以及 wg0 的客戶端配置,并生成客戶端配置對應(yīng)的二維碼 png 圖片。 腳本會(huì)修改本機(jī)防火墻設(shè)置,如果未啟用防火墻,則會(huì)出現(xiàn)警告提示,需要手動(dòng)去設(shè)置。 腳本會(huì)從 1024 到 20480 隨機(jī)生成監(jiān)聽端口。 腳本支持新增,刪除,列出客戶端功能。 腳本支持查看已安裝的 WireGuard 的版本號(hào)。 腳本支持從代碼編譯安裝的方式升級(jí) WireGuard 到當(dāng)前最新版本。
對于咱手藝人來說,肯定是不想用它自動(dòng)生成的配置的,如果你想自己生成配置文件,請直接將配置文件目錄清空:
$?rm?-rf?/etc/wireguard/*
然后手動(dòng)生成秘鑰和配置文件,具體的流程請參考:WireGuard 的搭建使用與配置詳解[2]。
如果你想通過 Web UI 來管理 WireGuard 的配置文件,可以看看這個(gè)項(xiàng)目:Wg Gen Web[3]
參考資料
[1]官方文檔:?https://www.wireguard.com/install/
[2]WireGuard 的搭建使用與配置詳解:?https://fuckcloudnative.io/posts/wireguard-docs-practice/
[3]Wg Gen Web:?https://github.com/vx3r/wg-gen-web
最后,給大家提供一鍵安裝腳本。
按照下面的步驟領(lǐng)取吧
領(lǐng)取方式:
長按掃碼關(guān)注
關(guān)注后發(fā)消息?[一鍵安裝腳本]即可獲取,還在等什么
DD自研的滬牌代拍業(yè)務(wù),點(diǎn)擊直達(dá)
【往期推薦】
2020-11-22
2020-11-21
2020-11-21
2020-11-20
2020-11-19
﹀
﹀
﹀
深度內(nèi)容
推薦加入




