飞鼠异地组网工具是一款能够突破地域限制、实现高效异地组网的强大工具。它采用标准的OSPF路由协议,具备跨平台兼容性,可以应对大批量数据中心之间的异地组网需求。
飞鼠异地组网工具的应用场景非常广泛,可以在各种行业和领域中发挥重要作用,提高生产效率,缩短响应时间,节约成本,增强服务质量等。以下是飞鼠异地组网工具的一些主要使用场景:
远程协作:在团队分布在不同地方的情况下,使用异地组网工具可以实现远程协作,共享文件、数据和应用程序。
远程教育:教师和学生可以使用异地组网工具进行远程教育,包括远程授课、学习和测试等。
远程医疗:医疗机构可以使用异地组网工具为患者提供远程医疗服务,包括远程诊断、远程手术和远程监测等。
远程管理:企业可以使用异地组网工具实现远程管理,包括远程办公、远程监控和远程维修等。
远程销售:商家可以使用异地组网工具为客户提供远程销售服务,包括远程售前、售后和咨询等。
家庭与个人:家庭娱乐、资料备份等个人使用场景。
飞鼠官方网站:https://www.feishuwg.com/
当前个人版本免费,其余版本价格合理,公司及企业使用非常合适。
1.本次实践的飞鼠工具版本为个人免费版;
2.本次实践环境为云服务器及本地个人服务器;
3.本次服务器版本均为ubuntu22.04;
4.本次实践为飞鼠工具的基本使用教程。
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客户端 |
master节点与路由节点、子网节点都需要安装Docker,如果已经安装,可以忽略Docker安装步骤。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
echo '{ "registry-mirrors": ["https://sp4mg57h.mirror.aliyuncs.com"] }' > /etc/docker/daemon.json
systemctl daemon-reload && systemctl restart docker
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.ip_forward
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
root@cloud:~# docker compose version
Docker Compose version v2.21.0
子网节点安装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
root@jeven:~# docker compose version
Docker Compose version v2.21.0
执行以下命令,创建挂载目录。
mkdir -p /data/feishu/{feishudb,pg}
root@cloud:~# cd /data/feishu/
root@cloud:/data/feishu# ls
feishudb pg
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
执行docker compose up -d 命令,创建飞鼠相关容器,开始部署中心控制器。
docker compose up -d
检查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)
检查feishu容器运行日志,确保飞鼠服务正常运行。
检查飞鼠服务监听端口
root@cloud:/data/feishu# ss -tunlp |grep feishu
tcp LISTEN 0 4096 *:8088 *:* users:(("-feishu",pid=27758,fd=11))
tcp LISTEN 0 4096 *:8089 *:* users:(("-feishu",pid=27758,fd=12))
tcp LISTEN 0 4096 *:8090 *:* users:(("-feishu",pid=27758,fd=7))
tcp LISTEN 0 4096 *:8095 *:* users:(("-feishu",pid=27758,fd=9))
作用 | 类型 | 端口 | 备注 |
---|---|---|---|
网页访问 | tcp | 8088 | master必开 |
socket通信 | tcp | 8095 | master必开 |
sdwan通信 | udp | 50000-51000 | master必开,路由节点、子网节点必开 |
检查当前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
打开阿里云的云服务器防火墙管理页面,添加防火墙规则,放行tcp/8088、tcp/8089、tcp/8090、tcp/8095、udp/50000-51000。
连接本地的子网节点服务器
创建挂载目录
mkdir -p /data/feishu/feishudb
进入/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
执行docker compose up -d 命令,创建feishu容器,开始部署子网节点。
root@jeven:/data/feishu# docker compose up -d
[+] Running 1/1
✔ Container feishu-feishu-1 Started 0.4s
检查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
检查feishu容器日志,确保feishu服务正常运行。
执行以下命令,检查feishu服务监听端口。
root@jeven:/data/feishu# ss -tunlp |grep feishu
tcp LISTEN 0 4096 *:8088 *:* users:(("-feishu",pid=56597,fd=10))
tcp LISTEN 0 4096 *:8089 *:* users:(("-feishu",pid=56597,fd=9))
tcp LISTEN 0 4096 *:8090 *:* users:(("-feishu",pid=56597,fd=8))
执行以下命令,关闭防火墙。
systemctl stop ufw && systemctl disable ufw
使用以下命令查询防火墙状态,其中inactive是关闭,active是开启。
root@jeven:/data/feishu# ufw status
Status: inactive
1.访问地址:https://120.79.233.45:8088/,将IP替换为自己服务器IP地址。
2.管理员账号密码:admin/admin@123!
进入master节点的飞鼠管理后台后,选择异地组网——控制中心——修改中心控制器。
起始端口:50000;
对外网络地址:https://120.79.233.45:8088,将IP更换云服务器的公网IP地址。
1.路由节点: 有公网ip用于网络冗余;
2.子网节点: 无公网ip适合节点网关;
3.本次实践部署子网节点,异地组网——子网节点——新增控制器入网令牌。
名字:自定义设置,这里填“jeven”;
勾选“子网节点”,确认。
新增控制器入网令牌后,当前子网节点的状态是“待入网状态”。
在节点列表栏的操作中,点击“复制入网令牌”,复制入网令牌信息。
1.访问地址:https://192.168.3.246:8088/,将IP替换自己实际的本地子网节点服务器IP地址。
2.登录账号密码:admin/admin@123!
在子网节点的后台管理页面,异地组网——控制中心——导入入网令牌,将刚复制的入网令牌导入到子网节点。
在master节点的管理后台,异地组网——子网节点——查看申请信息,同意子网节点的入网请求。
查看子网节点入网状态,当前都已经处于正常状态。
在中心控制器的管理后台,异地组网——路由——路由表信息,查看路由信息,此时master节点新增子网10.5.1.0/30。
在中心控制器的管理后台,异地组网——路由——bfd快速检测,可以看到10.5.1.1IP地址会话状态正常。
在中心控制器的管理后台,异地组网——路由——邻居信息查询,可以看到路由器IP为10.5.1.1。
在子网节点服务器的终端命令行,进行以下静态路由配置。
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
在子网节点服务器中,其本地IP地址为192.168.3.246,尝试ping中心控制器节点的内网IP地址:172.22.48.72,发现可以正常ping通,异地组网成功完成。
ping 172.22.48.72 -c 10
在中心控制器节点的管理后台,区域管理——创建区域。
名字:自定义,这里填写mynet;
网络协议:FS-NAT,无限制访问;
选择端口:50020;
对外网络地址:选择公网IP地址;
网卡名称:选择本地网卡eth0;
允许网络:192.168.3.0/24,需要连接的局域网网络。
其余默认即可,选择“创建”。
区域管理——新建的区域(mynet)——客户端管理,选择“添加用户”。
用户名:jeven;
Email地址:[email protected];
客户端IP:默认10.5.0.2/32;
保存即可。
点击下载,下载jeven.conf配置文件。
下载地址:https://github.com/xingkongwangbin/feishuwg/releases/tag/1.0
将下载的wireguard安装包,在windows客户端直接运行即可。
将之前下载的jeven.conf配置文件,导入到wireguard中。
在wireguard中,点击连接,可以看到处于已连接状态。
在mynet区域中,状态查看页面,可以看到VPN连接状态显示小绿灯,表示连接处于正常状态。
在自定义创建的区域mynet中,区域管理——允许的IP段,填写中心控制器节点所在内网的网络:172.22.48.0/24,保存即可。
在windows客户端的wireguard中,重新连接隧道,发现允许的IP端已经成功添加上。
在windows客户端,本地IP为192.168.3.167,ping中心控制器节点(master节点)的内网IP172.22.48.72,发现可以正常ping通。