【Tailscale】DERPer中继从源码的搭建及Headscale导入

💡 原文中文,约7600字,阅读约需18分钟。
📝

内容提要

DERP是Tailscale的中继服务器,负责客户端连接信息的交换和流量中继。由于国内网络环境特殊,官方节点连接延迟和稳定性差,因此需要自行编译DERP。本文记录了DERP的编译、安装和运行过程,包括使用Tailscale客户端接入Tailnet和配置NGINX反向代理,最后检查DERP节点是否成功添加。

🎯

关键要点

  • DERP是Tailscale的中继服务器,负责客户端连接信息的交换和流量中继。

  • 由于国内网络环境特殊,官方节点连接延迟和稳定性差,需要自行编译DERP。

  • DERP程序是基于Go构建的二进制文件,官方未提供预编译包。

  • 编译DERP需要下载Go环境并使用Go命令构建derper二进制文件。

  • 安装Tailscale客户端以接入自己的Tailnet网络,防止DERP服务器被其他用户使用。

  • 在阿里云ECS上使用Tailscale时需注意MagicDNS地址与内网DNS冲突。

  • 运行DERPer时可以选择不同的命令配置,支持HTTPS和HTTP端口跳转。

  • 使用NGINX反向代理可以更好地隐藏服务特征,配置简单。

  • 在headscale的config.yaml中设置DERP列表,重启headscale服务以应用配置。

  • 使用tailscale netcheck检查DERP节点是否添加成功,并获得延迟信息。

🔎

延伸解读

DERP的安全性

DERP服务器负责流量中继,但不会解密传输的数据,因此使用官方DERP服务器是安全的。用户在搭建自有DERP时,需确保其配置和安全性,以防止潜在的安全隐患。

国内网络环境的挑战

由于国内网络环境的特殊性,官方DERP节点的延迟和稳定性较差,自行编译DERP成为一种解决方案。用户在选择服务器时,应考虑网络条件,以优化连接质量。

使用NGINX的优势

通过NGINX反向代理可以有效隐藏DERP服务的特征,增强安全性。配置NGINX时,用户可以选择将DERP服务与其他网站共存,灵活性较高,适合多种使用场景。

配置注意事项

在阿里云ECS上使用Tailscale时,需注意MagicDNS地址与内网DNS的冲突,可能导致网络问题。用户应提前做好DNS配置,以确保DERP服务的正常运行。

延伸问答

什么是DERP服务器,它的主要功能是什么?

DERP是Tailscale的中继服务器,负责交换客户端之间的连接信息和在无法直接连接时中继流量。

为什么需要自行编译DERP而不是使用官方节点?

由于国内网络环境特殊,官方节点连接延迟和稳定性差,因此需要自行编译DERP以提高连接质量。

如何编译DERP程序?

需要下载Go环境并使用Go命令构建derper二进制文件,具体步骤包括解压Go环境、进入目录并执行安装命令。

在阿里云ECS上使用Tailscale时需要注意什么?

需要注意MagicDNS地址与阿里云内网DNS冲突,可能导致服务器联网出现问题。

如何使用NGINX反向代理DERP服务?

可以通过配置NGINX的反向代理,将DERP服务隐藏并与其他网站共存,具体配置包括设置proxy_pass和相关头信息。

如何在headscale中添加DERP节点?

需要在headscale的config.yaml中设置DERP列表,并重启headscale服务以应用配置。

🏷️

标签

➡️

继续阅读