Wireguard是一个轻量级的虚拟专用网络 (VPN),支持 IPv4 和 IPv6 连接。VPN允许您遍历不受信任的网络,就像在专用网络上一样。当连接到不受信任的网络(如酒店或咖啡店的WiFi)时,它使您可以自由地从智能手机或笔记本电脑安全可靠地访问互联网。

WireGuard的加密依赖于公共和私钥,供对等方在它们之间建立加密的隧道。WireGuard 的每个版本都使用特定的加密密码套件来确保简单性、安全性和与对等方的兼容性。通俗来说,WireGuard有点类似于MPLS VPN,同样的在VPN网络中不再依赖IP地址,只是WireGuard依靠密钥对完成服务器/客户端的匹配,MPLS以来标签的传递完成数据的传输,通过密钥对可以把连接WireGuard服务器的所有设备组成一个虚拟的局域网,而且位于公网中的WireGuard服务器被虚拟成了该局域网内的虚拟网关,通过WireGuard服务器继而完成内网的穿透,使位于不同地域的设备实现了互通。

 

相比之下,其他VPN软件(如OpenVPN和IPSec)使用传输层安全性(TLS)和证书来验证和建立系统之间的加密隧道。不同版本的 TLS 包括对数百种不同的加密套件和算法的支持,虽然这为支持不同的客户端提供了极大的灵活性,但它也使配置使用 TLS 的 VPN 更加耗时、复杂且容易出错。

一、WireGuard服务端的建立

WireGuard服务器的建立,可以使用NAS服务器端的Docker容器建立(威联通、群晖、Unraid均可以) ,或者使用云服务器建立,这里推荐使用腾讯云推出的lighthouse轻量级服务器,新用户65一年还是不错的,这里我选择的操作i系统是“Ubuntu20.04-Docker20”,具体操作可以参考“spoto”大佬的视频,这里就不再赘述。当基于docker容器技术的WireGuard服务器建立后,按照“http://ip:端口号”访问WireGuard服务器管理页面:

点击“NEW”选择新建客户端文件,本人选择第一个创建nas的配置文件,之所以要创建基于WireGuard的VPN连接,是因为需要在外网访问nas,虽然我可以通过域名访问nas,但是基于安全问题,使用VPN连接更加安全。

二、为NAS服务器创建WireGuard客户端

通过上一步,点击"NEW"新建客户端配置文件,配置文件的命名可以随意,我的命名是“nas”,点击“CREATE”,自动创建客户端配置文件,然后点击下载,把文件保存在本地,文件的格式是“*.conf”通过记事本打开 里面的内容是:

[Interface]
PrivateKey = **************************************
Address = 10.0.8.3/24
DNS = 223.5.5.5[Peer]
PublicKey = **********************************************
PresharedKey = *******************************************
AllowedIPs = 10.0.8.0/24
PersistentKeepalive = 25
Endpoint = 服务器IP地址:51820

因为我的nas是威联通Q453Bmini,所以我就以QTS操作系统来介绍了。

首先登录nas系统,找到"QVPN Server"这个app,没有的可以通过app center下载:

因为我们要建立的是客户端,所以必须选择“VPN连接配置文件” 这个选项:

打开后,选择加入:

点击“加入”,出现下图,并选择“WireGuard” :

出现如下对话框,并编辑:

服务器名称:自定义,私钥:选择刚刚下载好的配置文件里的 ‘PrivateKey = ’后面的字符串,并点击生成密钥对用以生成该客户端的公钥,IP地址:填入配置文件里的IP地址,这个IP地址就是nas的地址,侦听端口可以不填,DNS服务器地址:随意,然后Peer Setting(对端配置,相当于配置服务器端的参数),公钥:填入配置文件里“PublicKey =”后面的字符串,断点:填入“Endpoint = ”后面的IP地址和端口号,点开“高级设置”,预共享密钥:填入“PresharedKey =”后面的字符串,允许的IP:填入“AllowedIPs =”后面的字符串,永久有效:随便填,但是不要太大,最后点击保存。

最后点击连接即可:

三、Windows客户端配置,首先在服务器端先创建客户端配置文件,这里我创建的是“PC”,下载到本地,然后下载windows客户端,客户端需要在WireGuard官网下载windows客户端,官网地址:wiregurd (wireguard.com),下载安装后打开如下图所示:

选择“新建隧道”,在选择窗选定刚刚下载的“PC”客户端配置文件,出现下图,点击“连接”即可:

四、配置手机客户端,首先在服务器端创建手机端配置文件,打开二维码:

然后在官网下载安卓或者ios安装文件, 安装好后,打开WireGuard手机客户端,点击“+”号,选择“扫面二维码”即可。

关于Ubuntu客户端的配置,我个人认为是最难的,因为我对Linux只是处于了解状态,而且ubuntu一般作为服务器端使用,对于客户端的资料基本没有,但是笔者最近安装了Ubuntu的最新操作系统Ubuntu22.04桌面版,感觉很惊艳啊,在micros Egde浏览器的加持下,Ubuntu系统也基本上够用了,所以很想为Ubuntu系统安装一个WireGuard客户端。

按照前面的规则,先在服务器端创建好ubuntu客户端配置文件,然后下载到ubuntu系统本地,将文件名重命名为wg0.conf,并保存在‘etc/wireguard ’文件夹,若没有路径则以以下命令创建:mkdir -p /etc/wireguard,必须要有这一步,因为后面用得到。

WireGuard-Ubuntu客户端可以通过终端安装,也可以从官网下载.deb客户端和wirguard-tool.deb,再通过软件中心安装。

安装好后就可以在终端操作了:

  1. 最高权限登录终端:

    sudo -i
  2. 提示输入密码:

  3. 虽然导入了配置文件,但是直接运行的时候出错了,提示网络错误,无法启动。后来查阅各方资料终于发现对于Linux系统,必须在配置文件wg0.conf设定本机网络参数,具体请看下文。

  4. 查看本机网络,对于使用公共 IP 地址通过 SSH 或其他协议访问的远程对等方,需要向对等方的文件添加一些额外的规则。这些规则将确保您在连接系统时仍可以从隧道外部连接到系统。否则,当建立隧道时,通常在公共网络接口上处理的所有流量将无法正确路由以绕过隧道接口,从而导致无法访问的远程系统:

    输入:

    ip route list table main default

    输出:

    default dev wg0 scope link

    default via 192.168.45.47 dev wlp1s0 proto dhcp metric 600

    记下网关突出显示的 IP 地址以供以后使用,并记下网卡号wlp1s0 当然每个人的设备名称可能不同。如果是这样,请在命令中替换它。

  5. 输入:

    ip -brief address show wlp1s0   

    输出:

    wlp1s0           UP        192.168.45.40/24                  240e:44d:5414:502:58b0:27f0:1da5:492e/64  240e:44d:5414:502:28b8:eb1f:fc41:b387/64 fe80::a547:c15d:61b5:4d78/64

  6. 输入:sudo nano /etc/wireguard/wg0.conf

    编辑 wg0.conf文件将得到的网络信息以固定格式加入:PostUp = ip rule add table 200 from xxx.xxx.xxx.xxx(本机IP地址),PostUp = ip route add table 200 via xxx.xxx.xxx.xxx(网关IP地址),PreDown = ip rule delete table 200 from xxx.xxxx.xxx.xxx(本机IP),PreDown = ip route delete table 200 via xxxx.xxx.xxx.xxx(网关IP地址),并保存,这些线路将创建自定义路由规则,并添加自定义路由以确保到系统的公共流量使用默认网关。

    如以下格式:

    [Interface]PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxAddress = 10.0.9.5/24DNS = 114.114.114.114PostUp = ip rule add table 200 from 192.168.222.87PostUp = ip route add table 200 default via 192.168.208.1PreDown = ip rule delete table 200 from 192.168.222.87PreDown = ip route delete table 200 default via 192.168.208.1[Peer]PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxPresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAllowedIPs = 10.0.9.0/24PersistentKeepalive = 25Endpoint = xxx.xxx.xxx.xxx:xxxxx
  7. 如果您通过VPN路由所有流量并设置了DNS转发,则需要在启动隧道之前在WireGuard对等体上安装‘resolvconf‘程序。

    输入:

    sudo apt install resolvconf     #安装resolvconf 程序
  8. 重启wg0服务:

    输入:

    sudo wg-quick down wg0         #关闭隧道wg0

    输出: [#] ip link delete dev wg0      [#] resolvconf -d tun.wg0 -f

    输入:

    sudo wg-quick up wg0           #重新开启隧道wg0

8.输入:

sudo wg      # 可以使用此命令检查对等体上隧道的状态     

看到上面的信息基本可以确定客户端已成功开启,也可以通过WireGuard服务器页面查看客户端或者ping命令查看是否正常运行:

好了,暂时就写到这了,几大系统配置基本写完了,有不足之处请在评论区指出。。。。。肝了一天的时间,不是一般的累,那后续有机会再更新了。

Wireguard各主流平台的配置教程相关推荐

  1. movidius 神经计算棒 ncsdk windows 平台 支持 配置 教程

    概述:movidius ncs的ncsdk目前官方还不支持windows,但是inter好像发布了openvino,这个里面是包含ncsdk的好像是支持windows的.现在不讲openvino,讲n ...

  2. mysql安装的官方教程_MySQL官方教程及各平台的安装教程和配置详解入口

    官方文档入口: https://dev.mysql.com/doc/ 一般选择MySQL服务器版本入口: https://dev.mysql.com/doc/refman/en/ 在右侧有版本选择: ...

  3. 组网神器WireGuard安装与配置教程(超详细)

    文章目录 01 引言 02 安装教程 2.1 前提条件 2.2 wireguard安装 2.2.1 步骤一: 安装wireguard 2.2.2 步骤二: 服务端生成秘钥对 2.2.3 步骤三: 配置 ...

  4. 野牛物联网-新版华为OC云平台配置教程

    1. 本文愿景: 大概在2月份,华为OC云平台在实验室的申请入口已经关闭,很多同学反馈找不到入口,新版本的OC平台并入到了华为IOT云,而且正式商业化了,需要收费.好消息是,华为OC云还是可以通过开发 ...

  5. Mac使用OBS直播配置教程|解疑答惑

    Mac使用OBS直播配置教程|解疑答惑   这个教程方便Mac使用OBS直播,解决了以下几个使用Mac直播中一定会遇到的问题: 主流直播平台,直播推流怎么配置? 为什么Mac直播的时候,别人听不到电脑 ...

  6. 目前市场上配置独立显卡的计算机是,2021上半年主流中高低配置推荐(大部分支持win7系统)...

    2021年市场比较混乱,虽然b560主板和11代酷睿cpu都己经发布了,但2021年上半年装机主流还是以b460和10代cpu为主,今天电脑系统城小编就给大家分享关于2021上半年主流中低高端配置清单 ...

  7. [免费视频教程]UI自动化测试之Jenkins配置教程

    [免费视频教程]UI自动化测试之Jenkins配置教程 image 前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试 ...

  8. Termux 高级终端安装使用配置教程

    Termux 高级终端安装使用配置教程,这篇文章拖了有小半年.因为网上相关的文章相对来说还是比较少的,恰好今天又刷了机,所以就特意来总结一下,希望本文可以帮助到其他的小伙伴.发挥Android平台更大 ...

  9. CSGO服务器插件配置教程SourceModMetaMod插件深度解析

    CSGO服务器插件配置教程SourceMod&MetaMod插件深度解析 我是艾西,再上一篇中我详细的说了csgo社区/私人服务器的搭建过程以及需要注意的一些事项,那么很多小伙伴对于插件可能还 ...

最新文章

  1. poj1625Censored!(AC自动机+dp)
  2. 中科院计算所关于“木兰”语言问题处理情况说明
  3. 关于日期比较compareTo
  4. idea无法引用jar包中的class
  5. python学习之matplotlib绘制动图(FuncAnimation()参数)
  6. 刷新系统托盘(清除死掉的图标)修正版
  7. 为什么Android项目mainactivity中有一个变量R_博客笔记大汇总,Android优化总结篇
  8. 双十一天猫霸榜的背后,是威马推动营销变革的无限野心
  9. -------------初识----------动态规划。--------------------------------------------
  10. ClickHouse和Elasticsearch压测对比,谁是yyds?
  11. dropbox访问_使用PHP访问Dropbox
  12. 将py文件打包成可exe文件
  13. PCB添加图片或logo的方法
  14. 抖音壁纸小程序v1.0.2版本功能,新增达人入住功能
  15. Learned-Mixin +H(LMH)
  16. 基于python的可视化成绩分析
  17. 数学建模美赛特等奖提名、国赛国一队伍经验分享
  18. 创业计划书和商品计划书PPT模板-朴尔PPT
  19. 32.768khz晶振在手表中的作用
  20. USB设备未被识别为HID,而是libusb-win32-device BETTER_USB_HS

热门文章

  1. 小程序中使用WeUI及ZanUI
  2. 《静态时序分析实用方法》第六章翻译
  3. emui9.1是鸿蒙系统吗,EMUI9.1系统再次更新,可惜用户不买账,原来大家期待鸿蒙公测...
  4. [树链剖分]hihocoder1883
  5. 卷积形式汇总2022
  6. Mugeda-H5交互动画晋级教程-岑远科-专题视频课程
  7. 电脑开机是正常的,但是一重启就黑屏
  8. html手机页面下拉加载更多,jQuery手机端上拉刷新下拉加载更多页面
  9. 【高阶循环谱】基于FPGA的高阶循环谱的调制识别算法开发
  10. 以Lgwr Worker为例,基于Strace 分析 Oracle 数据库行为的方法