云服务器安装WireGuard Easy异地组网VPN工具
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
教程以AWS云服务器作为演示,系统为全新安装的Debian系统。
你也可以自行前往AWS亚马逊云服务官网进行注册,可免费获得一个EC2云服务器。使用终端软件进行连接云服务器并切换到root状态下。
安装好Docker和docker-compose(百度自查教程,数不完的教程。)
随意进入一个路径下,准备创建项目文件夹。
演示进入/home路径下创建cd /home
创建项目文件夹及子文件夹
mkdir -p wg-easy/data
进入项目文件夹
cd wg-easy
查看自己服务器的网卡名称
# 和你服务器控制台上显示的局域网IP一样的那个网卡就是你的网卡名,一般是eth0之类的。 ip addr
编辑docker-compose.yml模板文件
vi docker-compose.yml
按字母
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
执行命令,启动docker-compose模板文件,拉取镜像并创建容器。
docker-compose up -d 或 docker compose up -d
查看正在运行的项目容器实时日志,按Ctrl+C中断查看。
docker-compose logs -f 或 docker compose logs -f
配置安全组规则
每个云服务器的系统不同,大致说一下即可,自行操作。
在安全组规则创建入站规则,放行TCP端口51821、UDP端口51520。
(TCP端口51821规则在我们使用完之后记得删除)出站规则为允许全部流量
访问WireGuard Easy
打开浏览器,以云服务器的IP+设置的端口进行访问。
以本机为例:http://1**.**.***.**4:51821
(初始时会有页面提示你输入密码进行登录)
输入一个客户端名称,然后点击创建。
创建好之后点击二维码,使用扫描添加组网服务端。
你想下载配置文件手动导入到电脑客户端都行。手机端下载wireguard客户端
安装后打开客户端,扫码进行添加并连接即可。连接成功
注意连接后要有接受、发送数据量才是连接成功,否则请打开客户端的日志选项,查看详细的日志排查问题。
如流量很少就打开个手机浏览器网页,刷新一下再看。同时在网页端可以看到客户端已在线,并且记录了详细的数据量。
电脑端则是下载安装wireguard客户端,从网页上选择下载客户端文件,进行导入。
注意事项
由于WireGuard-Easy这个GitHub项目已经是只读状态了,并且很久没有更新。
我们在使用完控制台之后一定要把控制台的访问端口关闭
,否则被别人盗用,小心你的流量超额,钱包吃不消。WireGuard是使用UDP端口进行数据传输的,易受到运营商的封锁。
但是效果也是看的见的,速度比其他的快的多。WireGuard的好处是服务端部署在哪,我们组网的设备的网络就能访问到哪,常见的用途为无公网环境下进行异地访问我们的家庭NAS、或者出去看看**、懂王之类的。
尝试过WireGuard Easy、WireGuard UI、WireGuard+Firefly的部署,在多个云服务器上均出现一个问题,就是部署后如果没有一个一直连接着WireGuard的设备进行心跳活动,那么你在下次连接新设备时将出现网络握手失败的问题,导致无数据传输 。
这个问题查询了很多,暂时无解决方案,如果你知道相关问题的话可找我完善此教程。
参考资料
WireGuard官网:https://www.wireguard.com/
WireGuard客户端下载地址:https://www.wireguard.com/install/
WireGuard官方详细使用文档:https://github.com/pirate/wireguard-docs#persistentkeepalive
WireGuard Easy GitHub项目地址:https://github.com/weejewel/wg-easy
WireGuard部署使用参考:https://www.ioiox.com/archives/143.html
👇👇👇
- 感谢你赐予我前进的力量