开发者社区> 天是蔚蓝色的> 正文

上古神器WireGuard异地高效率组网

简介: 相信很多的工作者、极客玩家或者学生党在项目开发以及发布的时候会遇到云上服务器资源不够(包括内存不够、磁盘不够等等),而我们可能由于一些问题,无法升级云服务器的配置,这样的场景就很尴尬对吧?现在的确有许多的像netapp、以及zerotier这样的内网穿透的存在,但是存在一个问题就是不安全,路由网关并不是在我们自己机器上,而且这些市面的望穿也有高效的方法但是要用money,苦于囊中羞涩,这时候WireGuard就可以很好提供高性能的内网穿透能力。
+关注继续查看

 Snipaste_2022-04-24_12-29-24.jpg

 👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟

🌈擅长领域:Java、大数据、运维、电子

🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!

🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!


目录

缘由

简介

官网

WireGuard组网实现架构图

下面用WireGuard演示一台公网服务器和一台线下机器异步组网:


缘由

        相信很多的工作者、极客玩家或者学生党在项目开发以及发布的时候会遇到云上服务器资源不够(包括内存不够、磁盘不够等等),而我们可能由于一些问题,无法升级云服务器的配置,这样的场景就很尴尬对吧?现在的确有许多的像netapp、以及zerotier这样的内网穿透的存在,但是存在一个问题就是不安全,路由网关并不是在我们自己机器上,而且这些市面的望穿也有高效的方法但是要用money,苦于囊中羞涩,这时候WireGuard就可以很好提供高性能的内网穿透能力。

        举个例子:你是个学生或者工作者,在你的实验室或者公司电脑上,有着项目或者资料,你有又出门在外,想要访问实验室或者公司内部的资料,虽然像向日葵、ToDesk可以满足需求,但是由于是第三方提供着提供有带宽的限制,会导致一卡一卡的,这时候你就可以使用Windows或者Linux自带的远程服务搭配上WireGuard解决这种尴尬的场面。

简介

      WireGuard 是一个易于配置、快速且安全的开源 VPN,它利用了最新的加密技术。目的是提供一种更快、更简单、更精简的通用 VPN,它可以轻松地在树莓派这类低端设备到高端服务器上部署。他没有像OpenVPN那样10w的代码量,WireGuard非常精简只有4000行代码。

官网

地址:https://www.wireguard.com/quickstart/

WireGuard组网实现架构图

    • 架构图:
    • imageimage.gif

    下面用WireGuard演示一台公网服务器和一台线下机器异步组网:

    WireGuard Server(一台公网服务器):

      更新update

      yum update -y

      image.gif安装wireguard

      sudo yum install epel-release elrepo-release
      sudo yum install yum-plugin-elrepo
      sudo yum install kmod-wireguard wireguard-tools

      创建目录

      cd /etc/wireguard

      生成密钥对

      # 开始生成 密匙对(公匙+私匙)。
      wg genkey | tee privatekey-server | wg pubkey > publickey-server # 生成服务端密钥对

      配置服务端文件
      vim /etc/wireguard/wg0.conf输入以下内容

      [Interface]
      Address = 10.100.0.1/16  # 这里指的是使用 10.100.0.1,网段大小是 16 位
      SaveConfig = true
      ListenPort = 51820  # 监听的 UDP 端口
      PrivateKey = < 这里填写 Server 上 privatekey 的内容 >
      # 下面这两行规则允许访问服务器的内网,注意替换`eth0`
      PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
      # Client,可以有很多 Peer
      [Peer]
      PublicKey = < 这里填写 Client 上 publickey 的内容 >
      AllowedIPs = 10.100.0.2/32  # 这个 Peer 只能是 10.100.0.2/32
      # 如果想把所有流量都通过服务器的话,这样配置:
      # AllowedIPs = 0.0.0.0/0, ::/0


      启停服务端

      wg-quick up wg0    #启动服务端
      wg-quick down wg0  #停止服务端
      wg #查看节点列表
      wg syncconf wg0 <(wg-quick strip wg0) #重载配置文件,不影响已有连接.

      image.gif

      WireGuard Client(N台非公网服务器):

      更新update

      yum update -y

      安装wireguard

      sudo yum install epel-release elrepo-release
      sudo yum install yum-plugin-elrepo
      sudo yum install kmod-wireguard wireguard-tools

      创建目录

      cd /etc/wireguard

      生成密钥对

      # 开始生成 密匙对(公匙+私匙)。
      wg genkey | tee privatekey-client | wg pubkey > publickey-client   # 生成客户端密钥对

      image.gif配置客户端文件

      [Interface]
      PrivateKey = < 这里填写 Client 上 privatekey 的内容 >
      Address = 10.100.0.2/32
      DNS = 8.8.8.8  # 连接后使用的 DNS, 如果要防止 DNS 泄露,建议使用内网的 DNS 服务器
      [Peer]
      PublicKey = < 这里填写 Server 上 publickey 的内容 >
      Endpoint = 1.1.1.1:51820  # 服务端公网暴露地址,51280 是上面指定的
      AllowedIPs = 10.100.0.0/16,172.17.0.11/20  # 指定要访问的服务端网段,或者设置0.0.0.0/0来进行全局代理.
      PersistentKeepalive = 25

      image.gif

      启动客户端连接

      wg-quick up ./wg0.conf

      image.gif

      启动完客户端之后回WireGuard服务端查看,也可以尝试从客户端pingWireGuard服务器(内网地址),注意公网作为WireGuard的服务器要安全组开端口

      wg

      image.gif


      版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

      相关文章
      如何设置阿里云服务器安全组?阿里云安全组规则详细解说
      阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
      18573 0
      阿里云服务器如何登录?阿里云服务器的三种登录方法
      购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
      27697 0
      阿里云服务器如何登录?阿里云服务器的三种登录方法
      购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
      12962 0
      阿里云服务器安全组设置内网互通的方法
      虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
      21932 0
      阿里云服务器端口号设置
      阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
      19976 0
      阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
      阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
      15284 0
      +关注
      天是蔚蓝色的
      华为云云享专家、消息队列研发师
      63
      文章
      0
      问答
      文章排行榜
      最热
      最新
      相关电子书
      更多
      JS零基础入门教程(上册)
      立即下载
      性能优化方法论
      立即下载
      手把手学习日志服务SLS,云启实验室实战指南
      立即下载