Ubuntu 18.04快速配置WireGuard互联

正文共:1234 字 14 图,预估阅读时间:2 分钟

大概是去年这个时候,我发了几篇有关WireGuard的文章**(** 使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网 ,WireGuard的对标选手主要是IPsec和openVPN,目标是比IPsec更快、更简单、更精简、更有用,比 OpenVPN 性能更高。

对比IPsec部分,我们之前也测试过了**(** 2个报文即完成隧道建立!WireGuard的报文交互竟然比野蛮模式还快! ,在Windows系统中,WireGuard确实相比传统的IPsec有了较大的改进,一般需要至多6次报文交互即可完成隧道建立;并且,传统的IPsec在转发层和接口层是分离的,而WireGuard则直接新建了一个虚拟接口来进行转发。

性能部分,虽然我们没有测试到WireGuard官方宣称的速率,但是比主机IPSec加密的性能领先空间还是巨大的!

WireGuard认为OpenVPN的性能很差,因为必须在内核空间和用户空间之间多次复制数据包,需要一个长寿命的守护进程。并且支持全部过多的TLS功能,增加了相当多的代码,提高了漏洞暴露的风险。目前我们也多次测试过openVPN了**(** openVPN的Linux客户端竟然比Windows客户端性能高5倍不止 ,后面我们会将相关信息验证一下。

之前协助很多小伙伴处理了WireGuard的一些问题,今天我们来介绍一下Ubuntu 18.04系统中配置WireGuard的基本方法。

首先是软件安装,这个就很简单了,我们之前在CentOS 7系统中提供了3种方法,这里我们直接用最简单的。

nginx 复制代码
apt install -y wireguard

首先,作为前提条件,我们需要为主机增加一个虚拟网卡,并配置一个IP地址。

bash 复制代码
ip link add dev wg0 type wireguardip address add dev wg0 10.10.1.79/24ip link set up dev wg0

在另一台主机中做同样的操作。

然后就是创建WireGuard的配置文件,可以参考之前的文章**(** Wireguard配置文件详解 。主要就是**[Interface]** 中本地的接口配置和**[Peer]**中邻居的配置信息,其中公钥和私钥信息需要手工在本地生成。

nginx 复制代码
umask777wggenkey > privatekeycatprivatekeywgpubkey < privatekey > publickeycatpublickey

在另一台主机中做同样的操作。

到这里我们就拿到了双方的公钥和私钥信息,私钥是配置在本端的[Interface]配置中的,公钥是配置在对端的[Peer]配置中的。

接下来,我们想让两台主机使用通过10.1.1.0/24网段建立连接,对应[Peer]配置中的Endpoint部分,端口号使用10086,配置允许邻居通过WireGuard网卡传入的流量以及本地要发送给对端发送的流量仅限10.10.1.0/24网段。那我们可以将配置文件简单配置成如下所示:

ini 复制代码
[Interface]PrivateKey = 4BHensh4FJf8pKS8hHdVp6vCOj9C853avTQATB54K0w=ListenPort = 10086[Peer]PublicKey = /Ea+Nj9RJIXGe4q9QgSiQDM6DZSRjjWuHYgnSEbr/3A=Endpoint = 10.1.1.82:10086AllowedIPs = 10.10.1.0/24

对应的,对端的Wireguard配置如下:

ini 复制代码
[Interface]PrivateKey = IFc7N1RHppXkbOt16piy/IakNrEwsGrgDUa2iu/DcFE=ListenPort = 10086[Peer]PublicKey = loHNmk9TLIyNYK2mptzIYRJxFx1/nHui62e5qBSohTo=Endpoint = 10.1.1.79:10086AllowedIPs = 10.10.1.0/24

两端都配置完成之后,就可以配置调用生效了。

go 复制代码
wgsetconfwg0wg0.conf

可以看到,配置前后的显示存在明显差异;再配置好另一台终端,就可以测试访问了。

我们查看一下设备的路由表信息。

通过上次的测试,我们发现Ubuntu 18.04的性能最大可以达到30 Gbps**(** Debian阵营还是要原装,Ubuntu是真不行 。接下来,我们来测试一下载Ubuntu系统中WireGuard能达到多少性能。

可以看到,在相同配置参数下,使用底层网卡打流的带宽是30.7 Gbps,经过WireGuard隧道转发的带宽是2.44 Gbps,这个数值比之前它自己宣称的1 Gbps高出去一倍多了。

呃,不过好像这个带宽也没有VPP的性能高啊?毕竟我们之前将1C1G的VPP的性能测得了3.57 Gbps**(** CPU0实锤了!VPP这个精致的单核英雄主义者!! ,是不是WireGuard测得不仔细啊?

对了,最后提一下,这里我们手工创建的WireGuard网卡wg0重启之后就失效了,还需要再次配置,非常不方便。如果我们想实现WireGuard开机自动连接,可以将相关命令写入到启动脚本文件/etc/rc.d/rc.local中就可以了。

bash 复制代码
iplink add dev wg0 type wireguardipaddress add dev wg0 10.10.1.79/24iplink set up dev wg0wgsetconf wg0 /root/wg0.conf

还有一个使用wg-quick配置的方法,你还记得吗? 配置Wireguard的几个进阶玩法

好了,今天就介绍到这里吧!

长按二维码

关注我们吧

Ubuntu系统如何连接或断开openVPN

Ubuntu编译安装VPP23.02

将OpenWrt部署在x86服务器上

OpenWrt配置单臂路由模式

OpenWrt部署配置openVPN服务器

OpenWrt配置openVPN客户端

带认证的openVPN连接/断开操作指南

openVPN+SmartDNS=openDNS or smartVPN?

配置openVPN使用用户名密码认证

DDNS如何应用到SD-WAN网络中?

DDNS配置详解

拨号有公网Ip地址了,肯定要通过DDNS用起来啊!

相关推荐
pound12718 分钟前
Linux
linux·运维·服务器
@CLoudbays_Martin1122 分钟前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
盟接之桥2 小时前
盟接之桥说制造:在安全、确定与及时之间,构建品质、交期与反应速度的动态平衡
大数据·运维·安全·汽车·制造·devops
learning_tom2 小时前
HTML图片标签及路径详解
linux·服务器·php
dbdr09013 小时前
Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
linux·运维·服务器·网络·python·学习
大白的编程日记.3 小时前
【Linux学习笔记】信号的深入理解之软件条件产生信号
linux·笔记·学习
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
群联云防护小杜3 小时前
服务器异常磁盘写排查手册 · 已删除文件句柄篇
运维·服务器·nginx·开源·lua
buyutang_3 小时前
C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
linux·c语言·c++·学习
liliangcsdn3 小时前
结合prompt分析NodeRAG的build过程
java·服务器·人工智能·数据分析·知识图谱