type
status
slug
summary
tags
category
icon
password
new update day
Property
Nov 9, 2024 01:38 AM
created days
Last edited time
Nov 9, 2024 01:38 AM
Derper 中继节点
某些网络不佳的情况下,P2P 无法打洞成功,流量将通过 Tailscale 的中继节点,也称为 Derper,进行流量的转发。
但由于 Tailscale 在中国大陆境内并没有中继节点,会导致速度非常缓慢,影响使用体验。
可以通过自己搭建 Derper 节点来解决这个问题。
官方提供也提供了操作手册:
构建支持 Derper 自签证书的镜像
tailscale-derper 原始工具添加了 ssl 证书的验查机制,导致自签名证书无法使用,通过关闭下面的验查机制让 derper 工具能够正常运行。
cert.go
tailscale
为了开箱即用,我新建了下面的一个 GitHub 项目,使用 GitHub Actions 进行镜像自动构建。
tailscale-derper
expoli • Updated Dec 7, 2024
该镜像集成了证书自动生成程序,并根据所传入的环境变量自动生成对应配置域名的 ssl 自签证书,你可以通过环境变量来控制 derper 的工作行为。
默认接收四个环境变量具体的名称与作用如下
DOMAIN_NAME
[默认值:derper.example.com]- 第一个参数为自签证书的域名,你应该根据自己的需求去修改它,注意这是自签名证书。
- 证书默认存储位置
/opt/ssl/
你可以根据需要自己传入自己需要的证书 - 支持自签 IP 地址证书
DERPER_PORT
[默认值:443]- 第二个参数为 derper 程序运行的端口,根据自己的需求去修改定制
COMMAND_LINE
[默认为空]- 其他额外的 derper 参数命令,你应该原样输入 derper 命令参数,多个参数应该使用双引号包括起来
ADVANCED_MODE
[默认值:false]- 高级模式,高级模式下,derper 所有的参数都从 COMMAND_LINE 环境变量中读取,不再自动自签证书。
docker 运行命令示例⌘
- 从 docker hub 拉取
- 从 GitHub package 拉取
配置 tailscale Access Controls 规则
进入 Tailscale 后台,选择 Access Controls 配置。
在下面的配置文件中,在最后添加自己的 Derper。
我的配置如下:可以在 nodes 部分中添加多个 derper 节点
测试连接
- netcheck 命令
- 可以从下面输出中的 DERP latency cn 部分以及对应的配置名称,即是配置成功。
- ping 命令,通过ping命令可以发现无法打洞成功的机器会从 DERP 中继节点中通过。工作状态符合预期。
- Author:tangcuyu
- URL:https://expoli.tech/articles/2024/11/09/Self-built-tailscaler-derper-relay-service
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts