Caddy, Docker 简单的自建 Tailscale DERP

作为一个拥有全端加密且能进行端到端连接的服务。Tailscale 现在的免费账户已经支持连接 100 台设备,这对于个人用户来说绰绰有余。我的内网设备几乎都在使用 Tailscale 连接。在前段时间发布的 用 VS Code 管理服务器,我有独特的服务器管理方式 中表明我很喜欢用 Remote SSH,我经常借住 Tailscale 组成的内网使用 Remote SSH 进行远程开发。

然而,Tailscale 在中国大陆的网络环境中存在一个问题,就是经常出现高延迟或者连接不上的情况。好在官方允许用户自建 DERP 服务,以充当中继,解决这个问题。再也不用担心写代码写一半就突然断了,而且优秀的网络体验也能提高 VS Code 的 Port Forward 的体验,方便远程预览开发。

由于我本身就有一台低配置的云服务器,过去曾经使用 Caddy 作为反向代理服务器来运行我的 Alist 项目。所以这次也考虑在同一台服务器上使用 Caddy 作为反向代理来部署 DERP 项目。

采用 Caddy 主要是他相比较于 Nginx 使用很简单的配置就能满足大部分需求,还有体验良好的自动 SSL 管理。能省很多事。

废话不多说,直接开始配置了。

配置 Docker

yml 复制代码
// docker-compose.yml
version: '3'
services:
  derper:
    image: fredliang/derper
    restart: always
    ports:
      - 3478:3478/udp
      - 23333:443
    environment:
      - DERP_DOMAIN=derp.example.com

然后启动

sh 复制代码
sudo docker compose up

配置 Caddy

yml 复制代码
// Caddyfile
derp.example.com {
    reverse_proxy localhost:23333
}

重载 Caddy 的配置

sh 复制代码
sudo docker compose exec -w /etc/caddy caddy caddy reload

别忘了解析你的域名到你的 Caddy 服务器上。

配置 Tailscale

在 Access Controls 中配置

直达链接:login.tailscale.com/admin/acls/...

json5 复制代码
{
  // ... 其他 ACL 配置
  "derpMap": {
    "OmitDefaultRegions": true, // 是否只连接自建 derper 节点
    "Regions": {
      "900": {
        "RegionID": 900,
        "RegionCode": "myderp",
        "Nodes": [
          {
            "Name": "1",
            "RegionID": 900,
            "HostName": "derp.example.com", // 域名
            "STUNPort": 3478,
            "DERPPort": 443,
          }
        ]
      }
    }
  }
}

结束。

参考

  1. GitHub - fredliang44/derper-docker: tailscale's selfhosted derp-server docker image
  2. Custom DERP Servers
  3. How NAT traversal works
  4. Tailscale 基础教程:部署私有 DERP 中继服务器
  5. 浅探 Tailscale DERP 中转服务
相关推荐
九皇叔叔9 小时前
Kubernetes 资源管理方式详解:命令式与声明式管理
docker·容器·k8s
Lsetea14 小时前
Nginx报No required SSL certificate was sent:mTLS客户端证书排查
运维·nginx·https·ssl·openssl
程序猿小郑15 小时前
Docker Compose 构建完整服务实战指南:从入门到最佳实践
docker·容器
行百里er18 小时前
5 分钟跑起 Redis(Docker 版)
redis·后端·docker
Mr.朱鹏18 小时前
Docker三剑客实战指南:Docker、Dockerfile 和 Docker Compose
python·docker·devops·dockerfile
鬼先生_sir19 小时前
Docker 完整教程
docker
java_logo19 小时前
Docker 一键部署 Jellyfin:快速搭建私有化媒体服务器
docker·私有化部署·jellyfin·硬件加速·媒体服务器·轩辕镜像·影音库
jianpeng的工程笔记21 小时前
WeKnora 搭建研发 EDA 知识库:Docker 部署、RAG 与 Wiki 实践
docker·知识库·eda·rag
ZeroNews内网穿透1 天前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
九皇叔叔1 天前
K8S 资源菜单
docker·容器·kubernetes·k8s