WireGuard介绍

  • Wireguard是一款快速现代的VPN,旨在提供易用性和高性能。

  • 常用于组建VPN服务和异地组网

  • 它适用于Windows、Linux、Ubuntu 20.04、Debian、AlmaLinux、Rocky Linux、CentOS和Fedora。

  • 即使您是WireGuard的新手,也可以在几分钟内设置自己的VPN服务器,这个应用程序将帮助您实现此目标。

  • WireGuard是一种实现加密虚拟专用网络(VPN) 的通信协议和免费开源软件,其设计目标是易于使用、高速性能和低攻击面。

  • 它旨在比IPsec和OpenVPN这两种常见的隧道协议具有更好的性能和更强大的功能。

  • WireGuard 协议通过UDP传递流量。

  • 通过描述,我们知道了wireguard其实就是一个FAST(速度快)、MODERN(流行)、SECURE (安全)的VPN TUNNEL(VPN隧道)。

  • 多用与将不同区域的设备(如公网环境的家庭NAS)组建在一个虚拟局域网内,进行异地访问。

WireGuard Easy介绍

简介

  • 在任何Linux主机上安装和管理WireGuard的最简单方法!

优点

  • 多合一:WireGuard + Web UI。

  • 易于安装,使用简单。

  • 列出、创建、编辑、删除、启用和禁用客户端。

  • 显示客户的 QR 码。

  • 下载客户端的配置文件。

  • 已连接客户端的统计信息。

  • 每个连接的客户端的 Tx/Rx 图表。

  • Gravatar 支持。

使用要求

  • 具有支持 WireGuard 的内核(所有现代内核)的主机。

  • 安装了Docker的主机

安装Docker

  • 如果您尚未安装 Docker,请通过运行以下命令来安装它:

    # 下列命令一行一个,依次执行。
    
    curl -sSL https://get.docker.com | sh
    
    sudo usermod -aG docker $(whoami)
    
    exit

安装WireGuard Easy

  1. 教程以AWS云服务器作为演示,系统为全新安装的Debian系统。
    你也可以自行前往AWS亚马逊云服务官网进行注册,可免费获得一个EC2云服务器。

  2. 使用终端软件进行连接云服务器并切换到root状态下。

  3. 安装好Docker和docker-compose(百度自查教程,数不完的教程。)

  4. 随意进入一个路径下,准备创建项目文件夹。
    演示进入/home路径下创建

    cd /home
  5. 创建项目文件夹及子文件夹

    mkdir -p wg-easy/data
  6. 进入项目文件夹

    cd wg-easy
  7. 查看自己服务器的网卡名称

    # 和你服务器控制台上显示的局域网IP一样的那个网卡就是你的网卡名,一般是eth0之类的。
    
    ip addr
  8. 编辑docker-compose.yml模板文件

    vi docker-compose.yml
  9. 按字母 i 键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入 :wq 保存并退出。

    # 下面注释的是可选项,如不修改,则默认就是这些。可直接根据官网项目默认配置安装。
    # 注释不需要的可删除
    
    version: "3"
    services:
        wg-easy:
            container_name: wg-easy
            environment:
                - WG_HOST=1**.00.111.**4    # 换成你自己服务器的公网IP或域名(如已绑定)
                - PASSWORT=S20306    # 设置登录密码
                - WG_PERSISTENT_KEEPALIVE=25
                #- WG_MTU=1420    # 客户端将使用的 MTU。Server 使用默认的 WG MTU。
                #- WG_DEVICE=eth0    # 将eth0换成你自己的网卡名,用于转发 wireguard 流量。
                #- WG_DEFAULT_ADDRESS=10.8.0.0/24    # 自定义组网设备网段
                #- WG_ALLOWED_IPS=0.0.0.0/0, ::/0    # 客户端将使用的允许的 IP。
            volumes:
                - ./data:/etc/wireguard
            ports:
                - 51820:51820/udp
                - 51821:51821/tcp
            cap_add:
                - NET_ADMIN
                - SYS_MODULE
            sysctls:
                - net.ipv4.conf.all.src_valid_mark=1
                - net.ipv4.ip_forward=1
            restart: unless-stopped
            image: ghcr.io/wg-easy/wg-easy
  10. 执行命令,启动docker-compose模板文件,拉取镜像并创建容器。

    docker-compose up -d
    
    或
    
    docker compose up -d
  11. 查看正在运行的项目容器实时日志,按Ctrl+C中断查看。

    docker-compose logs -f
    
    或
    
    docker compose logs -f

配置安全组规则

  • 每个云服务器的系统不同,大致说一下即可,自行操作。

  • 在安全组规则创建入站规则,放行TCP端口51821、UDP端口51520。
    (TCP端口51821规则在我们使用完之后记得删除)

  • 出站规则为允许全部流量

访问WireGuard Easy

  1. 打开浏览器,以云服务器的IP+设置的端口进行访问。
    以本机为例:http://1**.**.***.**4:51821
    (初始时会有页面提示你输入密码进行登录)

  2. 输入一个客户端名称,然后点击创建。

  3. 创建好之后点击二维码,使用扫描添加组网服务端。
    你想下载配置文件手动导入到电脑客户端都行。

  4. 手机端下载wireguard客户端
    安装后打开客户端,扫码进行添加并连接即可。

  5. 连接成功
    注意连接后要有接受、发送数据量才是连接成功,否则请打开客户端的日志选项,查看详细的日志排查问题。
    如流量很少就打开个手机浏览器网页,刷新一下再看。

  6. 同时在网页端可以看到客户端已在线,并且记录了详细的数据量。image-bkkc.png

  7. 电脑端则是下载安装wireguard客户端,从网页上选择下载客户端文件,进行导入。

注意事项

  • 由于WireGuard-Easy这个GitHub项目已经是只读状态了,并且很久没有更新。
    我们在使用完控制台之后一定要把控制台的访问端口关闭,否则被别人盗用,小心你的流量超额,钱包吃不消。

  • WireGuard是使用UDP端口进行数据传输的,易受到运营商的封锁。
    但是效果也是看的见的,速度比其他的快的多。

  • WireGuard的好处是服务端部署在哪,我们组网的设备的网络就能访问到哪,常见的用途为无公网环境下进行异地访问我们的家庭NAS、或者出去看看**、懂王之类的。

  • 尝试过WireGuard Easy、WireGuard UI、WireGuard+Firefly的部署,在多个云服务器上均出现一个问题,就是部署后如果没有一个一直连接着WireGuard的设备进行心跳活动,那么你在下次连接新设备时将出现网络握手失败的问题,导致无数据传输 。
    这个问题查询了很多,暂时无解决方案,如果你知道相关问题的话可找我完善此教程。

参考资料

功德+1(狗子).gif

👇👇👇