乌班图22.04安装wireguard实现异地组网

news2024/11/15 6:40:30

1. 前言:

wireguard是新型的异地组网工具,在此之前,又已经被抛弃的pptpl2tp,有配置复杂的openvpnwireguard被linux作者linus赞叹优雅,于linux 5.6合并至linux内核主线。
在这里插入图片描述

2. 安装过程:

也就是说,linux内核的版本最好大于5.6,如果自己有能力的话,可以尝试编译安装到低版本的linux,不过可能有难度,这里不予展示。

用群晖6.1.7(内核3)装了很久,折腾不太成功,还是装个虚拟机吧。

准备:

  1. 一个linux发行版主机或虚拟机(推荐最新版的)

我这里用的是sever版的乌班图22.04.

1. 更新软件包列表

sudo apt update

在这里插入图片描述

2. 安装wireguard软件包。

sudo apt install wireguard

嘎嘎回车就完了
在这里插入图片描述

3. 生成server端秘钥对
实际上,wireguard并不严格分服务端和客户端,这里我们为了清晰明了,一步步说明。

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

在 /etc/wireguard上生成公私钥。
在这里插入图片描述

4. 配置wireguard。

[Interface]
# 自己拿到的私钥,用于server
PrivateKey = OJgEAHoM/rtEFymO+Hd4M3gWu0KEL2AwpWeNiH+gllI=
# <选择您的VPN服务器IP地址和子网掩码,例如:10.0.0.1/24>
Address = 10.0.0.1/24
# 监听端口
ListenPort = 51820

[Peer]
# 监听端口
PublicKey = Ue37eCIGJRLe1+ykp25LZIwXa3A3rxn4UnBrOrJxkWc=
#哪些IP地址或IP子网流量会通过WireGuard接口进行路由
AllowedIPs = 10.0.0.2/32

在wireguard新建隧道,把客户端公钥复制到,乌班图wg0中的peer中
PublicKey = Ue37eCIGJRLe1+ykp25LZIwXa3A3rxn4UnBrOrJxkWc=

客户端配置:

[Interface]
#客户端私钥
PrivateKey = CPBgcYmbJFQ7qV9TPQD8X3QIwbRsvtqaJnd39WvLU0c=
客户端地址
Address = 10.0.0.2/32

[Peer]
# 服务端地址
PublicKey = Xmuc5J54v7xShTqY4SVIcB5kBVZDEeLHyvOrQV6qyHo=
#哪些IP地址或IP子网流量会通过WireGuard接口进行路由
AllowedIPs = 0.0.0.0/0, ::/0
# 链接主机,一般填的话算做客户端
Endpoint = 172.28.61.92:51820
PersistentKeepalive = 25

在这里插入图片描述

在这里插入图片描述
5. 启动wireguard

#手动加载内核模块
sudo modprobe wireguard 
#查看内核是否运行
lsmod | grep wireguard

在这里插入图片描述
6. 链接成功
在这里插入图片描述

在这里插入图片描述

7. 开启内核转发

如果你发现访问不了局域网设备,可能是没开启内核转发。

内核转发是计算机网络中非常重要的功能,它使得数据包能够在不同的网络接口之间正确传递,从而实现网络通信和数据交换

在安装和配置WireGuard时,有时需要启用内核转发(Kernel IP
Forwarding),以便正确地将流量从一个接口转发到另一个接口,从而实现VPN的正常工作。

3. 总结:

虚拟机可以通过路由开启端口转发,把51820映射一下,就可以通过外网访问家里的局域网了,不过感觉还是开个虚拟机太浪费了,再折腾一下,看看能不能直接装进低版本群晖里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;68&#xff09;-- 算法导论6.5 7题 七、试说明如何使用优先队列来实现一个先进先出队列&#xff0c;以及如何使用优先队列来实现栈(队列和栈的定义见 10.1 节。) 文心一言&#xff1a; 优先队列是一种数据结构&#xff0c;其中…

干货|一次完整的性能测试,测试人员需要做什么?

作者介绍 邓宝菊&#xff08;Kiki Deng&#xff09;&#xff0c;10 年软件测试经验&#xff0c;4 年团队管理经验&#xff0c;当前任职研发部架构质量工程部&#xff0c;整体负责研发部测试团队的效能、工具流程建设和人才培养。 前言 一、 规范性能测试实施流程的意义 规范…

Qt: 查看qmake相关参数设置

Qt开发中&#xff0c;经常会遇到qmake相关问题&#xff0c;比如同时安装了多个Qt版本的情况。比如我的情况是系统自带了Qt 5.12.8, 但是开发中遇到一些兼容性问题&#xff0c;于是又手动安装了5.9.8。 查看qmake版本&#xff0c;qmake -v, 虽然项目中已经指定了5.9.8, 但是系统…

通过String字符生成base64编码在生成图片

* base64转图片 //对字节数组字符串进行Base64解码并生成图片 * param base64str base64码 * return // param savePath 图片路径private static final String savePath"image_ver\\verifyCode"; 判断是否为base64编码 public static void mainDD…

关闭深度学习训练/推理进程的方法

引言 设想有一种情况&#xff0c;在ssh服务器训练/推理的时候&#xff0c;突然断线&#xff0c;再次打开ssh的时候&#xff0c;发现后台在运行&#xff0c;此时无法使用 ctrlc 终止&#xff0c;从而&#xff0c;可以用一个很简单的办法来结束&#xff1a;手动关闭进程。 方法 输…

python中如何记录日志?

日志是一种可以追踪某些软件运行时所发生事件的方法。一条日志信息对应的是一个事件的发生&#xff0c;而一个事件通常需要包括以下几个内容&#xff1a;事件发生时间、事件发生位置、事件的严重程度--日志级别、事件内容。 logging模块定义的函数和类为应用程序和库的开发实现…

Python-Python基础综合案例——数据可视化 - 动态柱状图

版本说明 当前版本号[20230729]。 版本修改说明20230729初版 目录 文章目录 版本说明目录知识总览图Python基础综合案例——数据可视化 - 动态柱状图案例效果基础柱状图通过Bar构建基础柱状图反转x和y轴将数值标签放在右侧 基础时间线柱状图创建时间线自动播放时间线设置主题…

基于FPGA的VGG16卷积神经网络加速器--WL

VGG16是一个典型的卷积神经网络&#xff0c;由13层卷积层&#xff0c;5层池化层和3层全连接层组成。且卷积层的计算时间在整个计算过程中占比极大&#xff0c;通过FPGA的并行运算可以有效的加快卷积层的计算速度。 一个卷积层可以有若干个卷积核&#xff0c;以第一层为例&#…

NetSuite 工单超额完工

用户问题 在报工时&#xff0c;完工数量能否超过工单上的计划数量&#xff1f; 解决方法 在制造相关的参数中&#xff0c;有一个参数控制: ALLOW OVERAGE ON WORK ORDER TRANSACTIONS •Check On允许超出工单计划数量 •Check Off不允许超出工单计划数量 Demo 工单计划数量…

前缀和拆分

前缀和 前缀和&#xff1a;一段序列里的前n项和 给出n个数&#xff0c;在给出q次问询&#xff0c;每次问询给出L、R&#xff0c;快速求出每组数组中一段L至R区间的和 给出一段数组&#xff0c;每次问询为求出l到r区间的和 普通方法&#xff1a;L到R进行遍历&#xff0c;那么…

Python-ElasticSearch客户端的封装(聚合查询、统计查询、全量数据)

目录 ES Python客户端介绍封装代码测试代码参考 ES Python客户端介绍 官方提供了两个客户端elasticsearch、elasticsearch-dsl pip install elasticsearchpip install elasticsearch-dsl第二个是对第一个的封装&#xff0c;类似ORM操作数据库&#xff0c;可以.filter、.group…

EverEdit的一些特殊使用教学(持续更新)

项目场景&#xff1a; EverEdit的使用经常一问三不知 搜也搜不到 解决方案&#xff1a; 先去EverEdit在线帮助文档看一下(附链接) EverEdit在线帮助文档 1.快速排序 使用快捷键时:若是小键盘&#xff0c;请同时按住fn键&#xff08;在最左下角的ctrl旁&#xff09;

220. 存在重复元素 III

220. 存在重复元素 III 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;TreeSetsequenceSet.ceilingjava中的红黑树 参考代码&#xff1a; 原题链接&#xff1a; 220. 存在重复元素 III https://leetcode.cn/problems/contains-duplicate-iii/description/ 完…

ER系列路由器多网段划分设置指南

ER系列路由器多网段划分设置指南 - TP-LINK 服务支持 TP-LINK ER系列路由器支持划分多网段&#xff0c;可以针对不同的LAN接口划分网段&#xff0c;即每一个或多个LAN接口对应一个网段&#xff1b;也可以通过一个LAN接口与支持划分802.1Q VLAN的交换机进行对接&#xff0c;实现…

幅度调制与角度调制

文章目录 前言一、调制简介1、调制定义2、调制目的3、调制的分类 二、幅度调制&#xff08;线性调制&#xff09;1、幅度调制的一般模型2、常规双边带调幅 AM①、AM 信号的产生②、AM 调制器的模型③、AM 波形和频谱④、AM 信号的特点⑤、AM 包络检波⑥、调幅系数 3、抑制载波双…

Kotlin~Facade

概念 又称门面模式&#xff0c;为复杂系统提供简单交互接口。 角色介绍 Facade&#xff1a;外观类&#xff0c;供客户端调用&#xff0c;将请求委派给响应的子系统。SubSystem&#xff1a;子系统&#xff0c;独立的子设备或子类 UML 代码实现 class Light(val name: Strin…

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…

msvcp120.dll丢失的解决方法?哪种解决方法比较推荐?

msvcp120.dll是Microsoft Visual C Redistributable软件包的一部分。它是用于支持运行使用Microsoft Visual C编写的应用程序的动态链接库文件。msvcp120.dll提供了许多C标准库函数和组件&#xff0c;包括输入/输出、字符串处理、数学运算、内存管理等功能。 当您运行某个依赖于…

C++初阶——缺省参数以及函数重载

1. 缺省参数 缺省参数的分类&#xff1a;全缺省&#xff0c;半缺省 缺省参数是声明或定义函数时为函数的参数指定一个缺省值 在调用该函数时&#xff0c;若没有指定实参则采用该形参的缺省值否则使用指定的实参 void Func(int a 0) {cout<<a<<endl; }int main(…

nest的核心概念

请求进来 --- 中间件 --- 守卫 --- 拦截器 --- 通道 --- 处理&#xff08;controller层&#xff09; --- 拦截器 --- 返回 Pipe &#xff1a; 就是实现 PipeTransform 接口的 transform 方法&#xff0c;它的返回值就是传给 handler 的值。 ---------------------------------…