飞牛基于Easytier开源方案实现免费内网穿透-虚拟局域网

方案简介:

这是一个简单、安全、去中心化的内网穿透 SD-WAN 异地组网方案,使用 Rust 语言和 Tokio 框架实现。支持各个系统平台构建使用,通过组建一种异地虚拟局域网的方式,实现使用外网访问无公网IP的NAS、公网SMB、游戏联机等目的,本教程仅涉及通过其组网功能实现飞牛NAS的内网穿透功能。

主要针对以下需求:多个设备分布在不同网络环境及系统环境,需要通过网页或APP在外网连接飞牛NAS,没有公网IP也没有域名,想简单、高速、免费的使用连接功能。

官网网址:简介 | EasyTier

特点及亮点:

操作简便省心:

一次配置成功后,基本无需调整。各设备具有固定的虚拟IP地址,好记忆、好管理。

跨平台支持:

MacOS/Linux/Windows/FreeBSD/Android,未来将支持 IOS(目前可以通过WireGuard实现接入)。可执行文件静态链接,部署简单。

无公网IP组网:

支持利用共享的公网节点组网(提供免费低带宽公共服务器搭桥,打洞成功后即为P2P高速连接)。同时也支持用自己的公网IP自建服务端,完全私有化部署。

IPV6支持:

支持利用 IPV6 组网。

去中心化:

无需依赖中心化服务,节点平等且独立。各节点可以互相通信。

安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量。

高性能:全链路零拷贝,性能与主流组网软件相当,打洞成功后没有第三方带宽限制。

NAT穿透:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接。

子网代理(点对网):节点可以将可访问的网段作为代理暴露给虚拟网,允许其他节点通过该节点访问这些子网,实现公网访问与飞牛在同一子网的其他设备。

智能路由:根据流量智能选择链路,减少延迟,提高吞吐量。

TCP支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能。

高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径

安装方式:

1、飞牛端的安装配置:

打开飞牛桌面Docker,点击Compose,点击右上角新增项目,输入自定义项目名称,选择项目路径,点击创建.yml,粘贴代码,勾选创建项目后立即启动,点击完成。

QQ20241129-043416.jpg

services:
   watchtower: #用于自动更新easytier镜像,若不需要请删除这部分
         command: --interval 3600 --cleanup --label-enable
         container_name: watchtower
         environment:
               - TZ=Asia/Shanghai
               - WATCHTOWER_NO_STARTUP_MESSAGE
         image: containrrr/watchtower
         restart: always
         volumes:
               - /var/run/docker.sock:/var/run/docker.sock
   easytier:
         restart: always
         labels:
               com.centu**inklabs.watchtower.enable: "true"  
         privileged: true
         mem_limit: 0m
         container_name: easytier
         hostname: easytier #设备名,可自定义
         network_mode: host
         volumes:
               - /etc/easytier:/root
         environment:
               - TZ=Asia/Shanghai
         image: easytier/easytier:latest
         command: -i <虚拟ipv4地址> --network-name <网络名称> --network-secret <网络密码> -e tcp://public.easytier.top:11010 -l 11010

代码解释:

< >及内容是需要自己替换掉的。

Watchtower服务用于创建自动更新easytier的项目,如果不需要可以删除这一段。

hostname后填写设备名,可自定义(大小写英文)。

虚拟ipv4地址:指定本节点(也就是本设备)在将组建的虚拟局域网中的地址,如10.114.114.1,预加入同虚拟局域网的其他节点地址需要在相同网段,如10.114.114.2,不可重复。

网络名称:仅限英文。

网络密码:仅限英文。各个节点使用相同的名称和密码加入同一虚拟局域网。

Tcp及后面的一段网址是easytier提供的免费公共服务器,方便没有公网IP组网。

下图即为构建项目完成

QQ20241129-053237.png

后期如何更改飞牛NAS中easytier连接的虚拟局域网配置:

停止容器后,在容器管理中点击项目的详情,在容器设置中最底部的命令中更改配置

QQ20241129-053317.png

2、安卓端的安装配置:

Releases · EasyTier/EasyTier下载.apk安装包在手机上安装,打开软件后进行配置

点击添加新网络,按照之前在飞牛中的配置进行填写,点击运行网络即可运行

例:

Screenshot_20241129_035401.jpg

在高级设置中可以更改设备名。

使用虚拟局域网IP连接飞牛APP:

在运行网络后,打开飞牛APP登录页面,第一栏填写飞牛配置easytier时设置的IP地址,输入飞牛用户名密码即可连接。

例:

Screenshot_20241129_035333.jpg

3、Windows端的安装配置:

Releases · EasyTier/EasyTier下载“*.windows.zip”文件解压安装,按照统一的配置进行填写并开启网络,即可在浏览器中使用虚拟局域网IP加飞牛端口号连接飞牛NAS。

配置效果:

下图为正常连接后的例图:

QQ20241129-064449.png

下图为在山东移动5G流量环境下使用安卓手机通过异地组网P2P实测飞牛APP下载文件的速度:

Screenshot_20241129_065158.jpg

更多功能:

请在EasyTier查询使用手册探索更多功能。本帖仅供论坛分享功能使用。