内网穿透系列十四:基于Websocket传输协议实现的异地组网工具 candy,简单安全稳定

一、简介

  • 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

    服务端启动成功截图
    图片[1]-内网穿透系列十四:基于Websocket传输协议实现的异地组网工具 candy,简单安全稳定-副业网
    客户端启动成功截图

4. 其他客户端

  • 其他客户端,可直接下载可执行文件,下载地址:https://github.com/lanthora/candy/releases
  • 启动其他客户端,类似如下命令
    ./candy.exe -c candy.cfg

    其客户端启动成功截图

三、使用

  • 任意两个客户端之间,可以通过虚拟局域网ip互相ping

  • 访问任意一台主机的服务,使用虚拟局域网ip+端口即可
    如访问另外一台主机的 portainer 服务
    图片[2]-内网穿透系列十四:基于Websocket传输协议实现的异地组网工具 candy,简单安全稳定-副业网
    如访问另外一台主机的 mysql 服务

四、总结

  • candy工具可以帮助快速实现异地组网,如把工作、家庭、nas、公网服务器统统放到一个网络中
  • 安装部署配置比较简单,支持所有操作系统,还可以使用Docker方式
  • 建议实际应用要开启wss连接方式,通过增加 tls证书来增强数据流量传输安全性
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容