目 录CONTENT

文章目录

DERP

moke
2024-10-18 / 0 评论 / 0 点赞 / 29 阅读 / 0 字

DERP介绍

DERP服务器的作用

  1. 中继节点通信:
    • 充当中继站点,解决由于网络地址转换(NAT)或防火墙等原因而导致的节点无法直接通信的问题。
    • 节点A和节点B通过DERP服务器建立连接,DERP服务器协助它们获取对方的地址信息,使得它们能够建立直接通信,而无需担心网络边界的限制。
  2. 控制面交互:
    • 处理Headscale网络的控制平面,负责节点注册、身份验证以及密钥交换等操作。
    • DERP服务器在节点启动时验证其身份,并分发必要的配置信息和密钥,确保网络的安全性和可控性。它是网络管理的中枢,负责协调节点之间的关系。

DERP服务器的原理

  1. 中继节点通信原理:
    • 节点A和节点B分别与DERP服务器建立连接,将自己的网络信息注册到DERP服务器上。
    • DERP服务器根据节点的注册信息,协助节点获取对方的地址信息,使它们能够直接通信,解决了可能存在的NAT或防火墙等网络层面的问题。
    • DERP服务器不直接处理数据传输,只在建立连接时提供协助。
  2. 控制面交互原理:
    • DERP服务器通过安全的通信协议(例如TLS)与Headscale节点进行通信。
    • 节点在启动时向DERP服务器注册,DERP服务器验证节点的身份,确保只有合法的节点能够参与Headscale网络。
    • DERP服务器分发必要的配置信息和密钥,为节点的安全通信提供基础。

这样,DERP服务器通过协助节点间的通信和处理网络控制平面,使得Headscale网络能够在分散的环境中安全、高效地运作。

DERP服务器部署

docker compose 部署

docker-compose.yaml的配置

version: '3.5'

services:
  # DERP服务器
  derper:
    container_name: derper
    image: fredliang/derper
    restart: always
    ports:
      - 3478:3478/udp  # UDP端口,用于中继通信
      - 56000:19850    # 控制面交互端口
    environment:
      - DERP_DOMAIN=xxx.xxx.com  # 指定DERP服务器的域名
      - DERP_ADDR=:19850           # 指定DERP服务器监听的地址和端口
      - DERP_VERIFY_CLIENTS=false  # 不验证客户端,简化配置
    networks:
      - internal-network  # 使用内部网络

networks:
  internal-network:
    driver: bridge

说明:

  • 服务器需要开放端口:3478,类型为UDP
  • DERP_DOMAIN为derp服务器的域名
  • DERP_VERIFY_CLIENTS=false 为表示不加验证,谁都可以用本DERP服务器,如果不希望公用,需要改为true
博主关闭了所有页面的评论