飞飞鼠异地组网工具基本使用教程
- 一、飞鼠工具介绍
- 1.1 飞鼠工具简介
- 1.2 飞鼠工具特点
- 1.3 飞鼠工具使用场景
- 1.4 飞鼠工具官网
- 1.5 飞鼠工具版本介绍
- 1.6 飞鼠工具节点类型
- 二、本次实践介绍
- 2.1 本次实践简介
- 2.2 本次环境规划
- 三、Docker环境安装工作
- 3.1 master节点安装Docker
- 3.2 子网节点安装Docker
- 四、安装中心控制器
- 4.1 创建挂载目录
- 4.2 编辑docker-compose.yaml文件
- 4.3 开始安装中心控制器
- 4.4 检查容器状态
- 4.5 检查容器日志
- 4.6 检查飞鼠服务监听端口
- 五、master节点安全设置
- 5.1 防火墙设置
- 5.2 云服务器放行端口
- 六、部署子网节点
- 6.1 SSH连接子网节点
- 6.2 创建挂载目录
- 6.3 编辑docker-compose.yaml文件
- 6.4 创建feishu容器
- 6.5 检查feishu容器状态
- 6.6 检查feishu容器日志
- 6.6 检查feishu服务监听端口
- 6.7 防火墙设置
- 七、异地组网配置
- 7.1 访问中心控制节点管理后台
- 7.2 修改中心控制器
- 7.3 新增控制器入网令牌
- 7.4 查看子网节点状态
- 7.5 复制入网令牌
- 7.6 访问子网节点管理后台
- 7.7 子网节点导入入网令牌
- 7.8 中心控制器审核入网请求
- 7.9 查看子网节点入网状态
- 八、异地组网测试
- 8.1 查看路由信息
- 8.2 查看bfd快速检测
- 8.3 邻居信息查询
- 8.4 子网节点静态路由配置
- 8.5 测试内网IP连通性
- 九、配置区域管理
- 9.1 创建区域
- 9.2 添加用户
- 9.3 下载客户端配置文件
- 9.4 windows客户端下载wireguard
- 9.5 windows客户端运行wireguard
- 9.6 导入配置文件
- 9.7 连接隧道
- 9.8 查看VPN连接状态
- 十、区域配置网络测试
- 10.1 添加允许的IP段
- 10.2 wireguard工具设置
- 10.3 测试网络通信情况
一、飞鼠工具介绍
1.1 飞鼠工具简介
飞鼠异地组网工具是一款能够突破地域限制、实现高效异地组网的强大工具。它采用标准的OSPF路由协议,具备跨平台兼容性,可以应对大批量数据中心之间的异地组网需求。
1.2 飞鼠工具特点
- 强大的OSPF路由协议:我们的工具基于标准的OSPF路由协议,这是一种被广泛接受和使用的协议,为异地组网提供了快速、可靠的路径选择和数据转发。它能够自动计算最短路径,确保数据在不同数据中心之间的快速传输。
- 跨平台兼容性:我们的工具具有跨平台的特性,可以在各种操作系统上运行,包括Windows、Linux、Mac等,也可以在虚拟化平台如vsphere、ESXi、PVE上运行,甚至支持ARM平台设备。这种灵活性使得不同的数据中心可以无缝地集成和组网,为用户提供了更大的便利性和适用性。
- 高效的异地组网:我们的工具专为大批量数据中心之间的异地组网而设计,它能够处理大量的数据流量,并确保数据的高效传输。不论是跨国公司还是遍布全球的数据中心,我们的工具都能够应对各种规模和复杂度的异地组网需求。
- 数据安全性保障:我们深知数据在异地组网过程中的重要性,因此我们采用了先进的加密技术和安全措施。基于WireGuard协议的加密方式,能够确保数据在传输过程中的机密性和完整性,有效保护数据免受恶意攻击和窃取。
- 灵活性和可扩展性:我们的旁路由节点模式异地组网工具具备极高的灵活性和可扩展性。用户可以根据实际需求自由添加或移除旁路由节点,以适应不同规模和复杂度的异地组网需求。这为用户提供了更大的自主权和定制性。
- 旁路由节点模式:我们的工具采用旁路由节点模式,即在现有网络架构之外添加路由节点,实现异地组网的连接。这种模式不会对现有网络架构进行任何修改或干扰,因此无需担心组网过程中的风险和不稳定性。
- 高度兼容性:我们的工具具备高度的兼容性,可以与现有网络设备和路由器无缝集成。不论是使用哪种品牌或型号的设备,我们的工具都能够与其完美配合,实现异地组网的顺畅连接。
1.3 飞鼠工具使用场景
飞鼠异地组网工具的应用场景非常广泛,可以在各种行业和领域中发挥重要作用,提高生产效率,缩短响应时间,节约成本,增强服务质量等。以下是飞鼠异地组网工具的一些主要使用场景:
-
远程协作:在团队分布在不同地方的情况下,使用异地组网工具可以实现远程协作,共享文件、数据和应用程序。
-
远程教育:教师和学生可以使用异地组网工具进行远程教育,包括远程授课、学习和测试等。
-
远程医疗:医疗机构可以使用异地组网工具为患者提供远程医疗服务,包括远程诊断、远程手术和远程监测等。
-
远程管理:企业可以使用异地组网工具实现远程管理,包括远程办公、远程监控和远程维修等。
-
远程销售:商家可以使用异地组网工具为客户提供远程销售服务,包括远程售前、售后和咨询等。
-
家庭与个人:家庭娱乐、资料备份等个人使用场景。
1.4 飞鼠工具官网
飞鼠官方网站:https://www.feishuwg.com/
1.5 飞鼠工具版本介绍
当前个人版本免费,其余版本价格合理,公司及企业使用非常合适。
1.6 飞鼠工具节点类型
- 中心控制器 :完全有公网ip地址,用于控制所有节点通信转发,后面都称为master节点。
- 路由节点:可以是第二个数据中心要求有公网,用于冗余。
- 子网节点:不要求公网,用于下级局域网之间通信。
二、本次实践介绍
2.1 本次实践简介
1.本次实践的飞鼠工具版本为个人免费版;
2.本次实践环境为云服务器及本地个人服务器;
3.本次服务器版本均为ubuntu22.04;
4.本次实践为飞鼠工具的基本使用教程。
2.2 本次环境规划
hostname | IP地址 | 操作系统版本 | 服务器类别 | 角色 |
---|---|---|---|---|
cloud | 内网IP:172.22.48.72、公网IP:120.79.233.45 | ubuntu22.04 | 阿里云服务器 | 中心控制器(master) |
jeven | 192.168.3.246 | ubuntu22.04 | 本地服务器 | 子网节点 |
jeven | 192.168.3.167 | windows 11 | —— | wireguard客户端 |
三、Docker环境安装工作
3.1 master节点安装Docker
master节点与路由节点、子网节点都需要安装Docker,如果已经安装,可以忽略Docker安装步骤。
- 远程连接master节点,主机名为cloud的阿里云服务器。
- 使用Docker一键部署脚本,快速安装Docker。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
- Docker镜像加速配置
echo '{ "registry-mirrors": ["https://sp4mg57h.mirror.aliyuncs.com"] }' > /etc/docker/daemon.json
systemctl daemon-reload && systemctl restart docker
- 开启内核IP转发功能
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
- 查看是否成功:sysctl net.ipv4.ip_forward,如果返回为“net.ipv4.ip_forward = 1”则表示成功 sysctl。
sysctl -p
sysctl net.ipv4.ip_forward
- 检查当前Docker状态,确保Docker服务正常运行。
root@cloud:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-10-28 22:21:01 CST; 15min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 26876 (dockerd)
Tasks: 9
Memory: 25.4M
CGroup: /system.slice/docker.service
└─26876 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
- 检查docker compose版本,当前最新版Docker已经将Docker compose工具集成在了Docker中,无需再重新安装。
root@cloud:~# docker compose version
Docker Compose version v2.21.0
3.2 子网节点安装Docker
子网节点安装Docker部署与以上步骤一样,安装完毕后,检查Docker服务状态。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-10-28 10:43:57 UTC; 3h 53min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 45192 (dockerd)
Tasks: 12
Memory: 106.4M
CPU: 5.180s
CGroup: /system.slice/docker.service
└─45192 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
- 检查docker compose版本
root@jeven:~# docker compose version
Docker Compose version v2.21.0
四、安装中心控制器
4.1 创建挂载目录
执行以下命令,创建挂载目录。
mkdir -p /data/feishu/{feishudb,pg}
4.2 编辑docker-compose.yaml文件
- 进入/data/feishu目录
root@cloud:~# cd /data/feishu/
root@cloud:/data/feishu# ls
feishudb pg
- 编辑docker-compose.yaml文件,数据库的密码可以修改POSTGRES_PASSWOR变量。
version: "3"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: feishuwg
POSTGRES_PASSWORD: m7576WDx8dunrjU2
POSTGRES_USER: feishuuser
logging:
driver: "none"
restart: unless-stopped
ports:
- 5432:5432/tcp
volumes:
- /data/feishu/pg:/var/lib/postgresql/data
feishu:
image: feishuwg/wg:arm
cap_add:
- ALL
depends_on:
- db
environment:
#POSTGRE-PATH: postgres://数据库用户名:数据库密码@数据库所在内网地址:端口/库
POSTGRE-PATH: postgres://feishuuser:m7576WDx8dunrjU2@localhost:5432/feishuwg
NODE_TYPE: master
restart: always
network_mode: host
volumes:
- /data/feishu/feishudb:/feishu/db/
- /lib/modules:/lib/modules
4.3 开始安装中心控制器
执行docker compose up -d 命令,创建飞鼠相关容器,开始部署中心控制器。
docker compose up -d
4.4 检查容器状态
检查feishu相关容器状态,确保各容器都正常运行。
root@cloud:/data/feishu# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
feishu-db-1 postgres:11-alpine "docker-entrypoint.sh postgres" db 6 minutes ago Up 6 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
feishu-feishu-1 feishuwg/wg:arm "sh /feishu/auto_start.sh" feishu 6 minutes ago Up 6 minutes (healthy)
4.5 检查容器日志
检查feishu容器运行日志,确保飞鼠服务正常运行。
4.6 检查飞鼠服务监听端口
检查飞鼠服务监听端口
root@cloud:/data/feishu# ss -tunlp |grep feishu
tcp LISTEN 0 4096 *:8088 *:* users:(("vpn-feishu",pid=27758,fd=11))
tcp LISTEN 0 4096 *:8089 *:* users:(("vpn-feishu",pid=27758,fd=12))
tcp LISTEN 0 4096 *:8090 *:* users:(("vpn-feishu",pid=27758,fd=7))
tcp LISTEN 0 4096 *:8095 *:* users:(("vpn-feishu",pid=27758,fd=9))
- 飞鼠服务端口情况说明
作用 | 类型 | 端口 | 备注 |
---|---|---|---|
网页访问 | tcp | 8088 | master必开 |
socket通信 | tcp | 8095 | master必开 |
sdwan通信 | udp | 50000-51000 | master必开,路由节点、子网节点必开 |
五、master节点安全设置
5.1 防火墙设置
检查当前ufw状态
root@cloud:/data/feishu# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2023-10-28 21:34:25 CST; 1h 34min ago
Docs: man:ufw(8)
Main PID: 249 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 2194)
Memory: 0B
CGroup: /system.slice/ufw.service
Warning: journal has been rotated since unit was started, output may be incomplete.
关闭防火墙
systemctl stop ufw && systemctl disable ufw
重新检查ufw状态,确保防火墙关闭。
root@cloud:/data/feishu# systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:ufw(8)
Oct 28 23:09:51 cloud systemd[1]: Stopping Uncomplicated firewall...
Oct 28 23:09:51 cloud ufw-init[28623]: Skip stopping firewall: ufw (not enabled)
Oct 28 23:09:51 cloud systemd[1]: ufw.service: Succeeded.
Oct 28 23:09:51 cloud systemd[1]: Stopped Uncomplicated firewall.
也可以使用以下命令查询防火墙状态,其中inactive是关闭,active是开启。
root@cloud:/data/feishu# ufw status
Status: inactive
5.2 云服务器放行端口
打开阿里云的云服务器防火墙管理页面,添加防火墙规则,放行tcp/8088、tcp/8089、tcp/8090、tcp/8095、udp/50000-51000。
六、部署子网节点
6.1 SSH连接子网节点
连接本地的子网节点服务器
6.2 创建挂载目录
创建挂载目录
mkdir -p /data/feishu/feishudb
6.3 编辑docker-compose.yaml文件
进入/data/feishu/目录下
root@jeven:~# cd /data/feishu/
root@jeven:/data/feishu#
编辑docker-compose.yaml文件
version: "3"
services:
feishu:
image: feishuwg/wg:arm
cap_add:
- ALL
environment:
NODE_TYPE: slave
restart: always
network_mode: host
volumes:
- /data/feishu/feishudb:/feishu/db/
- /lib/modules:/lib/modules
6.4 创建feishu容器
执行docker compose up -d 命令,创建feishu容器,开始部署子网节点。
root@jeven:/data/feishu# docker compose up -d
[+] Running 1/1
✔ Container feishu-feishu-1 Started 0.4s
6.5 检查feishu容器状态
检查feishu容器状态,确保fgeishu容器正常启动。
root@jeven:/data/feishu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24a83a404fce feishuwg/wg:arm "sh /feishu/auto_sta…" 2 minutes ago Up 2 minutes (healthy) feishu-feishu-1
6.6 检查feishu容器日志
检查feishu容器日志,确保feishu服务正常运行。
6.6 检查feishu服务监听端口
执行以下命令,检查feishu服务监听端口。
root@jeven:/data/feishu# ss -tunlp |grep feishu
tcp LISTEN 0 4096 *:8088 *:* users:(("vpn-feishu",pid=56597,fd=10))
tcp LISTEN 0 4096 *:8089 *:* users:(("vpn-feishu",pid=56597,fd=9))
tcp LISTEN 0 4096 *:8090 *:* users:(("vpn-feishu",pid=56597,fd=8))
6.7 防火墙设置
执行以下命令,关闭防火墙。
systemctl stop ufw && systemctl disable ufw
使用以下命令查询防火墙状态,其中inactive是关闭,active是开启。
root@jeven:/data/feishu# ufw status
Status: inactive
七、异地组网配置
7.1 访问中心控制节点管理后台
1.访问地址:https://120.79.233.45:8088/,将IP替换为自己服务器IP地址。
2.管理员账号密码:admin/admin@123!
7.2 修改中心控制器
进入master节点的飞鼠管理后台后,选择异地组网——控制中心——修改中心控制器。
起始端口:50000;
对外网络地址:https://120.79.233.45:8088,将IP更换云服务器的公网IP地址。
7.3 新增控制器入网令牌
1.路由节点: 有公网ip用于网络冗余;
2.子网节点: 无公网ip适合节点网关;
3.本次实践部署子网节点,异地组网——子网节点——新增控制器入网令牌。
名字:自定义设置,这里填“jeven”;
勾选“子网节点”,确认。
7.4 查看子网节点状态
新增控制器入网令牌后,当前子网节点的状态是“待入网状态”。
7.5 复制入网令牌
在节点列表栏的操作中,点击“复制入网令牌”,复制入网令牌信息。
7.6 访问子网节点管理后台
1.访问地址:https://192.168.3.246:8088/,将IP替换自己实际的本地子网节点服务器IP地址。
2.登录账号密码:admin/admin@123!
7.7 子网节点导入入网令牌
在子网节点的后台管理页面,异地组网——控制中心——导入入网令牌,将刚复制的入网令牌导入到子网节点。
7.8 中心控制器审核入网请求
在master节点的管理后台,异地组网——子网节点——查看申请信息,同意子网节点的入网请求。
7.9 查看子网节点入网状态
查看子网节点入网状态,当前都已经处于正常状态。
八、异地组网测试
8.1 查看路由信息
在中心控制器的管理后台,异地组网——路由——路由表信息,查看路由信息,此时master节点新增子网10.5.1.0/30。
8.2 查看bfd快速检测
在中心控制器的管理后台,异地组网——路由——bfd快速检测,可以看到10.5.1.1IP地址会话状态正常。
8.3 邻居信息查询
在中心控制器的管理后台,异地组网——路由——邻居信息查询,可以看到路由器IP为10.5.1.1。
8.4 子网节点静态路由配置
在子网节点服务器的终端命令行,进行以下静态路由配置。
ip route add 172.22.48.0/24 via 10.5.1.1
配置完毕后,查询当前子网节点服务器的路由表。
root@jeven:/data/feishu# ip route
default via 192.168.3.254 dev ens18 proto static
10.5.1.0/30 dev 50000 proto kernel scope link src 10.5.1.1
10.5.1.0/30 dev 50000 proto bird scope link metric 32
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.22.48.0/24 via 10.5.1.1 dev 50000
192.168.3.0/24 dev ens18 proto kernel scope link src 192.168.3.246
8.5 测试内网IP连通性
在子网节点服务器中,其本地IP地址为192.168.3.246,尝试ping中心控制器节点的内网IP地址:172.22.48.72,发现可以正常ping通,异地组网成功完成。
ping 172.22.48.72 -c 10
九、配置区域管理
9.1 创建区域
在中心控制器节点的管理后台,区域管理——创建区域。
名字:自定义,这里填写mynet;
网络协议:FS-NAT,无限制访问;
选择端口:50020;
对外网络地址:选择公网IP地址;
网卡名称:选择本地网卡eth0;
允许网络:192.168.3.0/24,需要连接的局域网网络。
其余默认即可,选择“创建”。
9.2 添加用户
区域管理——新建的区域(mynet)——客户端管理,选择“添加用户”。
用户名:jeven;
Email地址:jeven@qq.com;
客户端IP:默认10.5.0.2/32;
保存即可。
9.3 下载客户端配置文件
点击下载,下载jeven.conf配置文件。
9.4 windows客户端下载wireguard
下载地址:https://github.com/xingkongwangbin/feishuwg/releases/tag/1.0
9.5 windows客户端运行wireguard
将下载的wireguard安装包,在windows客户端直接运行即可。
9.6 导入配置文件
将之前下载的jeven.conf配置文件,导入到wireguard中。
9.7 连接隧道
在wireguard中,点击连接,可以看到处于已连接状态。
9.8 查看VPN连接状态
在mynet区域中,状态查看页面,可以看到VPN连接状态显示小绿灯,表示连接处于正常状态。
十、区域配置网络测试
10.1 添加允许的IP段
在自定义创建的区域mynet中,区域管理——允许的IP段,填写中心控制器节点所在内网的网络:172.22.48.0/24,保存即可。
10.2 wireguard工具设置
在windows客户端的wireguard中,重新连接隧道,发现允许的IP端已经成功添加上。
10.3 测试网络通信情况
在windows客户端,本地IP为192.168.3.167,ping中心控制器节点(master节点)的内网IP172.22.48.72,发现可以正常ping通。