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
expoliUpdated Dec 7, 2024
该镜像集成了证书自动生成程序,并根据所传入的环境变量自动生成对应配置域名的 ssl 自签证书,你可以通过环境变量来控制 derper 的工作行为。 默认接收四个环境变量具体的名称与作用如下
  1. DOMAIN_NAME[默认值:derper.example.com]
      • 第一个参数为自签证书的域名,你应该根据自己的需求去修改它,注意这是自签名证书。
      • 证书默认存储位置 /opt/ssl/ 你可以根据需要自己传入自己需要的证书
      • 支持自签 IP 地址证书
  1. DERPER_PORT[默认值:443]
      • 第二个参数为 derper 程序运行的端口,根据自己的需求去修改定制
  1. COMMAND_LINE[默认为空]
      • 其他额外的 derper 参数命令,你应该原样输入 derper 命令参数,多个参数应该使用双引号包括起来
  1. 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 中继节点中通过。工作状态符合预期。
Relate Posts
在 Ubuntu 22.04.2 上基于内核 6.4.2 版本添加监控系统调用
Lazy loaded image
动手实践-内核模块的插入删除
Lazy loaded image
如何在 Arch Linux 中更改默认的 MySQL/MariaDB 数据目录
Lazy loaded image
mysql 批量导入 csv 大文件
Lazy loaded image
批量解压当前目录下以及子目录下的 tar.gz 文件
Lazy loaded image
C++ 删除文件最后一行的空行
Lazy loaded image
My first post在 CentOS 9 上编译 DPDK 与 pktgen 24.07
Loading...
tangcuyu
tangcuyu
一只尘世中努力争渡的🐠
Latest posts
自建 tailscaler derper 中继服务
2024-11-9
在 CentOS 9 上编译 DPDK 与 pktgen 24.07
2024-11-1
CentOS 9 DPDK 源码编译
2024-10-31
在 CentOS 9 上启用 CRB 源
2024-10-16
Rime 小狼毫定时用户词库同步设置
2024-5-1
在 Arch Linux 上通过 OneDrive 进行 rime 的用户词库同步
2024-4-20