10分钟搞定WireGuard异地组网:快速搭建安全高效的私有VPN网络
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
前言 笔者在现在工作中经常需要下发一些比较占用网络带宽的脚本任务,一时间搞得家里的网络异常拥堵。正在发愁之际突然想起老家的千兆宽带一直都是半闲置状态,除了爸妈刷短视频的那点流量外,其余时间都是空闲着,那有没有办法将任务下发到老家设备,将这千兆宽带给利用上呢? 构想了一下,其实只需要在老家放置一台服务器,通过远程登录下发任务指令,等待任务处理完毕再取回任务结果就完事了,这样整个任务执行期间所占用的带宽都是通过老家千兆宽带出去,笔者这边只需要下发指令和获取结果,极大地缓解笔者所在网络的带宽压力。 这里面最大的问题就是:要怎么才能方便地登录老家服务器呢?笔者这里的网络和老家的网络都是经过NAT的地址,没有公网IP。经过一番搜索,最终选定使用WireGuard进行异地组网,在老家网络环境放置一台服务器(树莓派),使用一台云服务器作为中转节点(有公网IP地址),笔者所在网络使用一服务器(用于连接中转节点),将三台设备进行组网,笔者所在网络服务器经中转服务器就可以访问老家环境服务器,整个拓扑如下: 其实进行异地组网的方式有很多,这里说下为啥要使用WireGuard,最主要的原因就是:简洁。网上有很多使用OpenVPN进行组网的教程,各种证书,配置文件,看得人实在头大,据说WireGuard只有4000行代码,Linux之父Linus Torvalds都对其赞不绝口,那还不得试一试嘛。(虽然笔者在使用WireGuard搭建时也费了很大气力,其中最主要的原因就是网上一些关于WireGuard文章介绍配置信息并不准确,可能那些文章作者自己根本就没有跑通,这也是笔者写本文的目的,相信读者看了本文,按文中配置操作10分钟就能搞定。) 另在此特别声明,本教程仅为了办公方便进行异地组网使用,勿作其他非法用途,由此带来的问题需要由使用者本人承担,与笔者无关。 安装 要求内核版本5.6及以上,如果不符合要求,请升级内核版本或更换操作系统
网络规划 在配置前我们需要提前规划好网络,组网的IP地址不要与本机原有地址重复,笔者这里规划如下:
如下图: 中继节点配置 最先配置中继节点Server1,这里先生成所需要的密钥
编辑配置文件
接入节点配置 同样参照中继节点的命令,生成该节点的私钥和公钥,记得将生成的公钥信息填写到中继节点的配置信息中。 生成密钥后,对接入节点进行配置(Client1和Client2除了IP地址和密钥不同外,其他地方都类似,下面只演示Client1配置)
启动服务 完成上面的配置后,就可以启动服务啦。 注意Server1、Client1和Client2的配置文件公钥私钥都要配置正确。 以下操作需要在中继节点和接入节点上操作:
测试连接状态 完成上面操作后就可以使用10.0.0.0网段IP进行相互访问啦。
常见错误 以下是常见的错误,如果按上面配置发现仍然无法访问,可以按下面清单依次检查:
结语 经过上面配置后,现在已经成功实现通过云服务器的中继节点,将两个异地的内网组合在一块了。但又遇到一个问题,Client1与Client2进行通信时,所有的流量都需要经过云服务器Server1,但是笔者的云服务器恰好是按使用流量进行收费,如果遇到任务结果数据量巨大,那从Client2传输到Client1的流量费用是任务数据量的两倍,这样就太心疼了。 通过一段时间的摸索,笔者发现可以通过网盘实现任务结果文件的传输,即Client1到Client2的任务指令通过云服务器的中继节点下发,而Client2的结果数据通过中间网盘进行传输。这样就不会受到云服务的流量费用或者是带宽限制。如下图: 好啦,本文到此就结束了,祝大家组网一遍通过!对于使用网盘传输文件感兴趣的同学可以看看这篇文章。 阅读原文:原文链接 该文章在 2025/9/8 9:05:07 编辑过 |
关键字查询
相关文章
正在查询... |