0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在 Ubuntu 上搭建 WireGuard 服務(wù)器,實(shí)現(xiàn)遠(yuǎn)程登錄

瑞科慧聯(lián)(RAK) ? 2022-08-25 16:14 ? 次閱讀

在本文中,我將向大家展示如何在 Ubuntu上搭建 WireGuard服務(wù)器,從而實(shí)現(xiàn)遠(yuǎn)程登錄。

首先,我們先來(lái)了解一下,什么是 WireGuard?

WireGuard 簡(jiǎn)介

WireGuard 是一款非常簡(jiǎn)單快捷的 VPN工具,采用了最先進(jìn)的加密技術(shù)。它的目標(biāo)是比 IPsec 更快,更簡(jiǎn)單,更精簡(jiǎn)易用,同時(shí)避免大規(guī)模配置的麻煩。WireGuard被設(shè)計(jì)為通用 VPN,用于在嵌入式接口和超級(jí)計(jì)算機(jī)上運(yùn)行,適用于多種不同環(huán)境。WireGuard 最初是為 Linux 內(nèi)核發(fā)布的,現(xiàn)在已經(jīng)可廣泛部署并且跨平臺(tái)支持(Windows,macOS,BSDiOS,Android)。WireGuard 目前發(fā)展迅速,并且已經(jīng)被認(rèn)為是業(yè)內(nèi)最安全,最易用和最簡(jiǎn)單的 VPN 解決方案。

WireGuard 基本概念

WireGuard 中涉及到幾個(gè)基本概念:

  • Peer:WireGuard 中的節(jié)點(diǎn)。
  • 私鑰(Private key):每個(gè)節(jié)點(diǎn)自己的私鑰,可以使用wg genkey 生成。
  • 公鑰(Public key):每個(gè)節(jié)點(diǎn)自己的公鑰,可以使用wg pubkey 生成。
  • AllowedIPs:定義每個(gè)節(jié)點(diǎn)允許通過(guò)的IP地址段。
Wireguard服務(wù)器原理

下面是 WireGuard的配置步驟:

1、創(chuàng)建虛擬網(wǎng)卡 eth0

2、使用私鑰和對(duì)端的公鑰對(duì)其進(jìn)行配置建立連接

3、通過(guò)接口開(kāi)始交換數(shù)據(jù)包

以上為建立一個(gè) WireGuard VPN 鏈接的過(guò)程,建立好后,A 設(shè)備與 B 設(shè)備互相需要保證虛擬網(wǎng)卡的 IP 在相同網(wǎng)段中,并且這個(gè)網(wǎng)段被 WireGuard 的配置文件 AllowedIPs 所允許通過(guò),最后,在 WireGuard 中的所有數(shù)據(jù)報(bào)文,都采用UDP的方式發(fā)送。

WireGuard 安裝

前期準(zhǔn)備

云端服務(wù)器 x 1

系統(tǒng):Ubuntu Server 18.04.1 LTS 64bit

可訪問(wèn)網(wǎng)絡(luò)的 PC x 1

系統(tǒng):Windows11

Ubuntu服務(wù)器 IP地址 42.192.113.207

WireGuard主端虛擬IP地址172.16.1.11

PC

WireGuard對(duì)端虛擬地址:172.16.1.14

安裝 WireGuard服務(wù)器

sudo apt install -y wireguard

安裝Wireguard服務(wù)器

配置 WireGuard服務(wù)器

進(jìn)入 wireguard目錄

cd /etc/wireguard/


使用命令生成一對(duì)公鑰與私鑰

wg genkey | tee privatekey | wg pubkey > publickey && cat privatekey && cat publickey

生成公鑰與私鑰

注意查看 WireGuard 生成的 PublicKey 是

q/fe0sDI0BUzs5OwiLfyqjN5Y40LTHk01rgLkHBDgRM=

WireGuard PC對(duì)端客戶端配置

PC端Wireguard客戶端

新建空隧道

新建Wireguard空隧道

獲得對(duì)端 PublicKey

QjvFxlqoQYnToTT6snhhly2D8ZASb6GzuO81ALSIG3E=

文件配置:

[Interface] 

PrivateKey=IIDs0Jv/iCn08+mXvoXRTuiIzhUziIeyF6hlOEq63lw=

Address=172.16.1.14/32

 [Peer] 
 
 PublicKey=q/fe0sDI0BUzs5OwiLfyqjN5Y40LTHk01rgLkHBDgRM=
 
 AllowedIPs=172.16.1.11/24
 
 Endpoint=42.193.113.207:51820
 
 PersistentKeepalive=25

WireGuard主端文件配置

創(chuàng)建服務(wù)器配置文件 wg0.conf

nano wg0.conf

[Interface]
Address = 172.16.1.11/24   #服務(wù)器虛擬地址
ListenPort = 51820         #監(jiān)聽(tīng)端口
PrivateKey = IJ6niaDAl2/UXVApMIBAX8QjMgApDRTBtNHBsVi9z3o=  #服務(wù)器 PrivateKey
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE

[Peer]
PublicKey =QjvFxlqoQYnToTT6snhhly2D8ZASb6GzuO81ALSIG3E=    #對(duì)端 Publickey
AllowedIPs = 172.16.1.14/32     #對(duì)端虛擬IP地址
PersistentKeepalive = 25        #上傳心跳包間隔

創(chuàng)建網(wǎng)卡配置文件,文件名為 wg0

ip link add dev wg0 type wireguard
ip address

網(wǎng)絡(luò)接口配置虛擬IP 地址(此虛擬 IP地址為前期準(zhǔn)備中的 172.16.1.11/24)

ip address add dev wg0 172.16.1.11/24 ip address

配置虛擬IP

創(chuàng)建一個(gè)私鑰,用于 WireGuard 使用,并配置權(quán)限禁止他人訪問(wèn)

wg genkey | tee /tmp/private-key chmod 600 /tmp/private-key wg set wg0 private-key /tmp/private-key listen-port 51820

創(chuàng)建私鑰

啟動(dòng)網(wǎng)絡(luò)接口

ip link set wg0 up ip address

啟用網(wǎng)絡(luò)接口

此時(shí)我們創(chuàng)建好了本地節(jié)點(diǎn),需要配置哪些節(jié)點(diǎn)是我們的對(duì)端,才能建立網(wǎng)絡(luò)連接。

通過(guò) PC安裝的 WireGuard客戶端連接 WireGuard服務(wù)器

客戶端配置生效

點(diǎn)擊連接

客戶端連接Wireguard服務(wù)器

wg查看連接狀態(tài)

查看連接狀態(tài)

備注:其他相關(guān)命令

1、啟動(dòng) WireGuard

wg-quick up wg0

2、停止 WireGuard

wg-quick down wg0

3、查看 WireGuard運(yùn)行狀態(tài)

Wg

4、WireGuard 配置說(shuō)明

[Interface]
Address = 172.16.1.11/24    #本機(jī)地址與掩碼位數(shù) (IPV4)
ListenPort = 51820         #本機(jī)監(jiān)聽(tīng) WireGuard 端口
PrivateKey = IJ6niaDAl2/UXVApMIBAX8QjMgApDRTBtNHBsVi9z3o=  #本機(jī)加密私鑰
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
#啟動(dòng)前操作
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
 #停止后操作
[Peer]
PublicKey =QjvFxlqoQYnToTT6snhhly2D8ZASb6GzuO81ALSIG3E=    #本機(jī)加密的對(duì)端公鑰(加密后數(shù)據(jù)僅對(duì)端可以解密)
AllowedIPs = 172.16.1.14/32     #本機(jī)允許的對(duì)端設(shè)備的 IP 地址段,其實(shí)就是在本機(jī)中這個(gè)虛擬網(wǎng)卡接收到對(duì)端發(fā)來(lái)的源地址都允許有哪些設(shè)備 IP 地址(多 peer 不可重復(fù))
PersistentKeepalive = 25         #當(dāng)會(huì)話存在一端 IP 地址為 NAT 地址或虛假公網(wǎng) IP 地址時(shí),由該方階段性每 25 秒發(fā)送 keepalive 報(bào)文保持會(huì)話的可用性,防止被設(shè)備終止。

在上文的基礎(chǔ)上,大家需要額外注意以下這些內(nèi)容:

1、如果你存在多個(gè) [Peer] ,則在下面直接增加一個(gè)新的 [Peer] 欄目;

2、如果多個(gè) Peer 存在不同的 IP,請(qǐng)不要讓 AllowedIPs 存在重疊的 IP 地址段(比如配置多個(gè)相同 /24 只有一個(gè)生效);

3、Endpoint 既支持以域名的方式訪問(wèn),也支持以 IP 的方式訪問(wèn);

4、會(huì)話鏈接的建立只要保證兩端數(shù)據(jù)在一臺(tái)設(shè)備上成功協(xié)商,即使動(dòng)態(tài) IP 地址變更也不會(huì)影響 VPN 的穩(wěn)定性;

5、ListenPort 不添加會(huì)自動(dòng)生成高位端口用來(lái) peer,以及主從結(jié)構(gòu)下,從端不填寫(xiě) listenport;

6、Table 參數(shù)可以使用 auto 和 off,兩者分別對(duì)應(yīng)"自動(dòng)注入路由"和"禁止注入"。不配置采用 auto;

7、如果你是主從結(jié)構(gòu),需要讓從端在配置中將從端的"AllowedIPs ="補(bǔ)寫(xiě)一條內(nèi)容 0.0.0.0/0,::0 以允許所有流量;

8、PreUp,PostUp,PreDown,PostDown 這四個(gè)命令參數(shù),是作為 wg-quick 快速設(shè)置/刪除接口之前/之后由 bash(1)執(zhí)行的四條命令,常用于配置自定義 DNS 或防火墻規(guī)則。 特殊字符串 %i 作為變量替代所控制的 INTERFACE 配置名。每個(gè)命令參數(shù)都支持多條命令,參數(shù)內(nèi)的多條命令將按前后順序依次執(zhí)行,分隔符為 ; 分號(hào)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    563

    瀏覽量

    29762
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何實(shí)現(xiàn)NFS服務(wù)搭建

    共享資源掛載到本地機(jī)器的目錄上。 企業(yè)生產(chǎn)集群為什么需要共享存儲(chǔ) 這個(gè)共享存儲(chǔ)對(duì)于中小企業(yè),也就是使用服務(wù)器配置NFS網(wǎng)絡(luò)文件共享系統(tǒng)實(shí)現(xiàn)。 什么是共享存儲(chǔ) ? ? 簡(jiǎn)單說(shuō)就是將很多臺(tái)服務(wù)器的數(shù)據(jù),都可以保存在同一個(gè)存儲(chǔ)
    的頭像 發(fā)表于 12-10 10:10 ?204次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b>NFS<b class='flag-5'>服務(wù)</b><b class='flag-5'>搭建</b>

    企業(yè)云服務(wù)器平臺(tái)設(shè)計(jì)與搭建

    企業(yè)云服務(wù)器平臺(tái)的設(shè)計(jì)與搭建是一個(gè)復(fù)雜但系統(tǒng)的過(guò)程,涉及多個(gè)環(huán)節(jié)和因素。主機(jī)推薦小編為您整理發(fā)布企業(yè)云服務(wù)器平臺(tái)設(shè)計(jì)與搭建這一過(guò)程的詳細(xì)闡述。
    的頭像 發(fā)表于 12-04 09:51 ?98次閱讀

    服務(wù)器搭建步驟

    服務(wù)器不僅提供了靈活的資源配置和強(qiáng)大的計(jì)算能力,還降低了IT基礎(chǔ)設(shè)施的維護(hù)成本。下面,rak小編帶您詳細(xì)了解云服務(wù)器搭建的步驟。
    的頭像 發(fā)表于 10-09 10:58 ?218次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-常見(jiàn)網(wǎng)絡(luò)服務(wù)搭建之SSH服務(wù)搭建

    SSH為Secure Shell的縮寫(xiě),由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定的建立應(yīng)用層基礎(chǔ)的安全協(xié)議。SSH是較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)
    發(fā)表于 09-29 09:48

    飛凌嵌入式ElfBoard ELF 1板卡-常見(jiàn)網(wǎng)絡(luò)服務(wù)搭建之SSH服務(wù)搭建

    SSH為Secure Shell的縮寫(xiě),由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定的建立應(yīng)用層基礎(chǔ)的安全協(xié)議。SSH是較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)
    發(fā)表于 09-27 09:06

    服務(wù)器連接不是什么原因引起的?

    服務(wù)器連接不是一個(gè)常見(jiàn)的問(wèn)題,常見(jiàn)的原因有網(wǎng)絡(luò)連接、賬戶權(quán)限、安全組設(shè)置、服務(wù)器狀態(tài)、端口占用、遠(yuǎn)程登錄未開(kāi)啟、云
    的頭像 發(fā)表于 09-26 11:11 ?214次閱讀

    Jtti:美國(guó)服務(wù)器Ubuntu系統(tǒng)中Clang的版本管理

    美國(guó)服務(wù)器Ubuntu系統(tǒng)中,Clang的版本管理可以通過(guò)多種方式來(lái)實(shí)現(xiàn)

    服務(wù)器搭建詳細(xì)過(guò)程

    隨著云計(jì)算技術(shù)的發(fā)展,越來(lái)越多的企業(yè)和個(gè)人開(kāi)始選擇使用云服務(wù)器來(lái)部署自己的應(yīng)用和服務(wù)。相比于傳統(tǒng)的物理服務(wù)器,云服務(wù)器提供了更高的靈活性、可擴(kuò)展性和安全性。下面將詳細(xì)介紹如何
    的頭像 發(fā)表于 09-12 10:00 ?346次閱讀

    ElfBoard技術(shù)貼|如何在ELF 1開(kāi)發(fā)板搭建流媒體服務(wù)器

    流媒體服務(wù)器是一種專門用于傳輸實(shí)時(shí)數(shù)據(jù)流的服務(wù)器軟件,廣泛用于視頻直播、視頻會(huì)議、音頻播放等應(yīng)用場(chǎng)景。嵌入式開(kāi)發(fā)領(lǐng)域,將流媒體服務(wù)器部署到開(kāi)發(fā)板
    的頭像 發(fā)表于 08-20 14:48 ?573次閱讀
    ElfBoard技術(shù)貼|如何在ELF 1開(kāi)發(fā)板<b class='flag-5'>上</b><b class='flag-5'>搭建</b>流媒體<b class='flag-5'>服務(wù)器</b>

    服務(wù)器的linux中如何搭建php運(yùn)行環(huán)境?

    要在云服務(wù)器的Linux系統(tǒng)搭建PHP運(yùn)行環(huán)境,您可以按照以下步驟進(jìn)行: 1、安裝PHP: 使用包管理工具(如apt、yum等)安裝PHP及其相關(guān)模塊。例如,
    的頭像 發(fā)表于 03-21 17:08 ?665次閱讀

    服務(wù)器遠(yuǎn)程服務(wù)器怎么辦?服務(wù)器無(wú)法遠(yuǎn)程的原因是什么?

    訪問(wèn)服務(wù)器 PS:檢查端口是否能正常通信,可以通過(guò)命令tcping ip端口來(lái)確定,如果端口不通,檢查防火墻遠(yuǎn)程端口策略有沒(méi)有把現(xiàn)在 的遠(yuǎn)程端口加入策略之中,如果防火墻策略正常,那么檢查服務(wù)器
    發(fā)表于 02-27 16:21

     海外云服務(wù)器搭建pi節(jié)點(diǎn)詳細(xì)步驟

     海外云服務(wù)器搭建pi節(jié)點(diǎn)簡(jiǎn)單嗎?海外云服務(wù)器搭建pi節(jié)點(diǎn)步驟有哪些?小編為您整理發(fā)布海外云服務(wù)器搭建
    的頭像 發(fā)表于 02-21 10:16 ?1118次閱讀

    KVM矩陣遠(yuǎn)程辦公場(chǎng)景中的應(yīng)用:實(shí)現(xiàn)靈活的服務(wù)器訪問(wèn)與控制

    矩陣遠(yuǎn)程辦公場(chǎng)景中的應(yīng)用,以及如何實(shí)現(xiàn)靈活的服務(wù)器訪問(wèn)與控制。 一、KVM矩陣遠(yuǎn)程辦公中的優(yōu)
    的頭像 發(fā)表于 02-18 14:49 ?491次閱讀

    如何遠(yuǎn)程登錄服務(wù)器?登錄失敗是什么原因?

    我用Linux云服務(wù)器,遇到了有關(guān)遠(yuǎn)程登錄的一些問(wèn)題,于是搜索了一些資料,整理了一篇文檔,作為記錄。如果你也遇到過(guò) 相似的問(wèn)題,歡迎一起探討! 一、Linux云服務(wù)器
    發(fā)表于 02-01 15:32

    幻獸帕魯聯(lián)機(jī)服務(wù)器搭建教程:無(wú)需公網(wǎng)IP、無(wú)需購(gòu)買云服務(wù)器,比私建FRP更穩(wěn)定

    ,可以國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境搭建自己的服務(wù)器。 搭建《幻獸帕魯》服務(wù)器的過(guò)程其實(shí)非常簡(jiǎn)單,但如何實(shí)現(xiàn)
    的頭像 發(fā)表于 01-29 16:58 ?608次閱讀
    幻獸帕魯聯(lián)機(jī)<b class='flag-5'>服務(wù)器</b><b class='flag-5'>搭建</b>教程:無(wú)需公網(wǎng)IP、無(wú)需購(gòu)買云<b class='flag-5'>服務(wù)器</b>,比私建FRP更穩(wěn)定