一、简介
- candy 是一个高可用,低时延,安全的异地组网工具
- 使用C语言编写,低资源消耗、性能可靠
- 服务部署采用C/S架构,需要部署服务端、客户端,可以实现客户端间的P2P连接
- 提供客户端(Windows、macOS、Linux)与服务器(Web、CLI),支持Docker快速部署
- 只支持异地组网和多局域网组网
- 该工具的开源地址参考:https://github.com/lanthora/candy
- 该工具网络拓扑示例可参考下图:
二、安装
1. 预备条件
- 一台具有公网IP的服务器
- 客户端、服务端主机提前安装Docker、docker-compose软件环境
2. 配置文件
- (Docker方式)客户端、服务端都新增 docker-compose.yml 配置文件,配置内容一样,参考如下
version: '3' services: candy: image: docker.io/lanthora/candy:latest privileged: true network_mode: host dns: 8.8.8.8 #DNS不稳定情况,最好指定稳定的,如google的DNS volumes: - ./candy.cfg:/candy.cfg restart: always command: -c /candy.cfg
- 在服务端,在 docker-compose.yml 所在目录继续新增 candy.cfg 配置文件,参考内容如下
# 以服务端模式工作 mode = "server" # 服务端不支持 wss, 需要由外部的服务加密,例如 nginx/caddy, 生产环境建议使用 wss websocket = "ws://0.0.0.0:8080" # 不配置此项时,客户端需要指定静态地址 dhcp = "10.10.0.0/24" # 不配置此项时,口令为空 password = "xxx123456"
- 在客户端,同样在 docker-compose.yml 所在目录继续新增 candy.cfg 配置文件,参考内容如下
# 以客户端模式工作 mode = "client" # 示例以 ws 传输明文,客户端支持 wss 协议(建议服务端前端增加nginx等反向代理来启用tls传输) websocket = "ws://server_ip:8080" # 需要与服务端配置保持一致 password = "xxx123456" # 静态地址,服务端配置 dhcp 的情况下可以不配置此项,由服务端随机分配地址 tun = "10.10.0.2/24" # 网卡名,区分单个机器上的多个客户端,同一台主机的网卡名不能冲突,不配置此项表示使用默认网卡名 candy name = "candytest" # STUN 服务器,用于获取建立对等连接所需的公网信息,不配置此项表示不启用对等连接 stun = "stun://stun.canets.org"
3. 启动客户端/服务端(Docker方式)
- 配置完成,分别启动启动服务端、客户端,执行如下命令
docker-compose up -d
服务端启动成功截图
客户端启动成功截图
4. 其他客户端
- 其他客户端,可直接下载可执行文件,下载地址:https://github.com/lanthora/candy/releases
- 启动其他客户端,类似如下命令
./candy.exe -c candy.cfg
其客户端启动成功截图
三、使用
-
任意两个客户端之间,可以通过虚拟局域网ip互相ping
-
访问任意一台主机的服务,使用虚拟局域网ip+端口即可
如访问另外一台主机的 portainer 服务
如访问另外一台主机的 mysql 服务
四、总结
- candy工具可以帮助快速实现异地组网,如把工作、家庭、nas、公网服务器统统放到一个网络中
- 安装部署配置比较简单,支持所有操作系统,还可以使用Docker方式
- 建议实际应用要开启wss连接方式,通过增加 tls证书来增强数据流量传输安全性
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容