Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
kemf
V2EX  ›  Linux

求解,为什么部署的 tailscale 的 derp 服务,部署前几天还能用,后面就连不上了

  •  
  •   kemf · Dec 15, 2025 · 5612 views
    This topic created in 323 days ago, the information mentioned may be changed or developed.

    整过好几次了,部署的前几天能用,过了几天客户端里就提示连不上 derp 服务器。

    但是直接 url 进入是没问题的

    DERP This is a Tailscale DERP server.

    It provides STUN, interactive connectivity establishment, and relaying of end-to-end >encrypted traffic for Tailscale clients.

    Documentation:

    用手机看 url 提示 ssl 错误

    logs: 2025/12/15 21:25:43 http: TLS handshake error from 117.143.47.114:2423: write tcp 172.17.0.2:443->117.143.47.114:2423: write: connection reset by peer

    但是证书是肯定没过期的,很奇怪为什么说 tls 有问题

    服务器是腾讯云,derp 是容器部署用的是[ngc7331/docker-derper]( https://github.com/ngc7331/docker-derper)

    42 replies  •  2025-12-18 11:53:34 +08:00
    patrickyoung
    patrickyoung
    Dec 16, 2025
    1
    用域名但是没备案?
    kemf
    kemf
    OP
    Dec 16, 2025
    2
    @patrickyoung 是没备案 之前用的阿里云的服务器备案过后面也是连不上了,阿里倒是会强制跳转备案页面。藤子云这个没搞明白,在问他们售后了
    gunner168
    gunner168
    Dec 16, 2025
    3
    不如用 wireguard ,我之前用 Derp 也是开始能用,后来就死活连不上 derp
    kemf
    kemf
    OP
    Dec 16, 2025
    4
    @gunner168 可以的话想麻烦您指条明路 谢谢
    kemf
    kemf
    OP
    Dec 16, 2025
    5
    跟藤子问了一圈 他们说他们的服务没问题 难搞

    问了 gemini ,说还是藤子的问题,让我再追问


    以下是 gemini:
    我们的核心诊断证据如下(请再次核查):

    tcpdump 证实连接被强制中断:服务器主机上的流量捕获显示,客户端(如 PC )成功完成 TCP 三次握手后,在 TLS 握手阶段,客户端主动发送了 RST (Reset) 包终止连接。

    RST 发生的时机:这表明客户端在发送 Client Hello 后收到了某些异常数据(或没有收到预期数据),导致其 TLS 库认为握手失败而主动断开。

    全局性和定向性:这种故障具有全局性(多台 PC 、移动端)和间歇性( PC 刷新就好),强烈指向腾讯云边缘网络或安全产品对 TLS 流量的 DPI (深度包检测) 误判。
    jayeli
    jayeli
    Dec 16, 2025
    6
    hash
    hash
    Dec 16, 2025
    7
    自己源码编译的 derp 二进制文件,IP:port 形式在腾讯云跑了 1,2 年了没问题.
    hash
    hash
    Dec 16, 2025
    8
    @hash 如果不是非要自建 headscale,那么放弃自建 derp,改用 peer relay 也可以
    yinmin
    yinmin
    Dec 16, 2025 via iPhone
    9
    在腾讯云上使用 tls ,域名必须先备案,不备案 tls 端口会被阻断的。
    mbooyn
    mbooyn
    Dec 16, 2025
    10
    容器的 derp 会死,定期重启容器试试
    shxxy
    shxxy
    Dec 16, 2025
    11
    https://tailscale.com/kb/1118/custom-derp-servers
    *必须*能够通过 ICMP 、HTTP 、HTTPS 、STUN. 对应端口是 80 、443 、3478 。HTTPS 和 STUN 端口能改,80 不能变
    IDAEngine
    IDAEngine
    Dec 16, 2025
    12
    自编译的 derp 没问题,用了几年了,derp 用的 IP 直连,自建 IP 证书
    sujin190
    sujin190
    Dec 16, 2025
    13
    @kemf #2 直接被掐不就是阿里云腾讯云发现你没正确备案防火墙给你掐了呗,域名备案了但是阿里云还是跳转备案页,那是你没在阿里云上做域名备案吧,域名备案是绑定着云服务商或机房的,更换需要程序在对应的云服务商备案
    IDAEngine
    IDAEngine
    Dec 16, 2025
    14
    "RegionID": 888,
    "RegionCode": "AliyunSZ",
    "RegionName": "AliyunSZ",
    "Nodes": [
    {
    "Name": "AliyunSZ001",
    "RegionID": 888,
    "DERPPort": 1443,
    "HostName": "x.x.x.x",
    "IPv4": "x.x.x.x",
    "IPv6": "X.X.X.X.X.X.X",
    "STUNPort": 3478,
    "CertName": "sha256-raw:XXXXXXXXXXXXXXXXX",
    "InsecureForTests": true,
    },
    ],
    patrickyoung
    patrickyoung
    Dec 16, 2025
    15
    @qwq11 不是的,除了 3478 外可以变,然后可以只用 IP ,配 policy 就能用自建 derp
    bootvue
    bootvue
    Dec 16, 2025
    16
    443 80 端口不备案不行 要么开个香港的节点
    AkinoKaedeChan
    AkinoKaedeChan
    Dec 16, 2025 via Android
    17
    @qwq11 那个 80 端口是用来做 Captive Portals Check 的, DerpMap 里面有个参数可以禁用,具体看代码。
    issakchill
    issakchill
    Dec 16, 2025
    18
    用官方的服务体验也不错
    zealotxxxx
    zealotxxxx
    Dec 16, 2025
    19
    其实不需要备案也可以玩的。只是说走 ip 不走域名

    之前韩风有视频,按着操作来就行
    haukuen
    haukuen
    Dec 16, 2025
    20
    https://github.com/haukuen/derper

    纯 ip 也可以自建中继
    patrickyoung
    patrickyoung
    Dec 16, 2025
    21
    1. headscale 是 controller / collaboration server ,不需要的话可以不建
    2. derper 是 relay server ,用于中转流量
    3. 在开始之前请仔细阅读官方 derper 文档 https://pkg.go.dev/[email protected]/cmd/derper#section-readme 和其中指向的官方 kb
    4. tailscale 最近启用了 peer relay, 可以看看 https://tailscale.com/kb/1591/peer-relays ,不一定要 derper
    5. 国内的云厂商带域名的流量都会过 DPI ( TLS SNI 和 HTTP Host ),这部分检查生效是滞后的,因此如果没备案/备案没有接入对应厂商,不要用域名访问,尤其是 80/443/8080/8443
    6. 完整的 derp 在控制台的配置参数可以参考 https://pkg.go.dev/tailscale.com/tailcfg#DERPNode ,不要 80 就 `CanPort80=false` 就行

    最后的控制台的配置大概长这样:

    ```json
    {"derpMap":{"regions":{"1":null,"2":null,"4":null,"5":null,"6":null,"8":null,"9":null,"10":null,"11":null,"12":null,"13":null,"14":null,"15":null,"16":null,"17":null,"18":null,"19":null,"21":null,"22":null,"23":null,"24":null,"25":null,"26":null,"27":null,"28":null,"29":null,"30":null,"31":null,"32":null,"999":{"RegionID":999,"RegionCode":"shd","RegionName":"SELF-Hosted Derp","Nodes":[{"Name":"my-derp-server-example","RegionID":999,"HostName":"server-ip","DERPPort":自定义端口(int),"STUNPort":自定义端口(int),"CanPort80":false,"CertName":"sha256-raw:证书 fingerprint"}]}}}}
    ```

    Node 那部分会由 derper 程序直接给出,你照搬就行。我设了 region = null 的那些是不想用官方的 derp 服务器,因为实在太慢。

    利益无关 tips:只需要 derp 服务的话,可以试试微林的 hosted derp ,我没用过,但是之前他家还叫 vxTrans 的时候用着还不错。
    Actrace
    Actrace
    Dec 16, 2025
    22
    同楼上。
    微林家的 DERP 服务确实不错,省心就用他们家服务吧。之前我也自己部署 DERP 服务,非常难搞。
    SimonYeh
    SimonYeh
    Dec 16, 2025
    23
    域名没备案被拦截了,试试使用 ip 证书强制 ip 连接
    gunner168
    gunner168
    Dec 16, 2025
    24
    @kemf 就是用你的腾讯云做中转,类似于 derp
    chutianyao
    chutianyao
    Dec 16, 2025
    25
    没备案会被腾讯云随机阻断的
    busier
    busier
    Dec 16, 2025 via iPhone
    26
    阿里云也是

    未备案就会阻断 tls

    没办法 政策就这么恶心
    zyq2280539
    zyq2280539
    Dec 16, 2025
    27
    先在 vps 上配置一个 nginx 和 certbot ,确保 nginx 的 ssl 证书配置完毕并且能自动续期,我直接用的通配符域名证书,然后在配置 derper,做个软连接连接到 nginx 的 ssl 证书上就可以了。证书管理由 certbot 自动管理,很少出现错误。
    guanzhangzhang
    guanzhangzhang
    Dec 16, 2025
    28
    如果你是用域名 https 形式,阿里云我搭建了个 etcd ,https 的域名访问在 ssl 握手的 sni 阶段就给我阻断了。腾讯的话换 ip 形式的 https 试试看
    huangsen365
    huangsen365
    Dec 16, 2025
    29
    就是域名未备案导致的问题
    happydoge
    happydoge
    Dec 16, 2025
    30
    @qwq11 可以不用 80 端口的, "CanPort80": false 这个参数。

    另外可以试试 relay ,现在支持 static endpoint
    MindMindMax
    MindMindMax
    Dec 16, 2025
    31
    不要用标准的 WEB 端口( 443 ) 就行了。
    wangdefa132
    wangdefa132
    Dec 16, 2025
    32
    https://blog.sleepstars.net/archives/ji-yu-docker-compose 可以参考一下这个博客,不需要域名和备案有公网 ip 就可以部署,亲测好用
    putaro
    putaro
    Dec 16, 2025
    33
    我也是在腾讯云上搭建的,过几天就被拿下了😅;目前改了端口号,正常运行一个多月了
    comeondewei
    comeondewei
    Dec 16, 2025 via iPhone
    34
    闲鱼买一个
    wolonggl
    wolonggl
    Dec 16, 2025
    35
    不要用带内置进程监控的云系统镜像部署,我直接将 openwrt 克隆到阿里云轻量服务器,跑了几个月,暂时没问题;
    doubtlhy
    doubtlhy
    Dec 16, 2025
    36
    我也遇到过,重启一下就能连上了,然后就写了个 cron 每天重启一次。
    s1461a
    s1461a
    Dec 16, 2025
    37
    tailscale 不是出了个新功能 Peer Relays ,用这个应该就足够了吧,也比较简单
    kemf
    kemf
    OP
    Dec 16, 2025
    38
    感谢楼上的各位大佬的帮助 我这边再根据各位佬的意见研究研究 有后续回帖反馈
    vinsony
    vinsony
    Dec 16, 2025
    39
    现在可以不用 derp 了,用 Peer Relays 还不怕被别人用
    HarveyLiu
    HarveyLiu
    Dec 17, 2025 via Android
    40
    不会换个思路?用去中心化的 easutier?,还能走 TCP 不被,三大运营商(电信,移动,联通)qos ,还能有概率 p2p 穿透双方都是 nat4 的大内网下直连。nat4 以下 3.2.1 都是 100%穿
    kemf
    kemf
    OP
    Dec 17, 2025
    41
    兄弟们,试了楼上的 Peer Relays 服务,目前好使。

    这个真不错,简单好用。

    目前看起来没啥大问题,后续有问题本帖再跟进,最后感谢 1~40L 的各位大佬的宝贵意见与经验。
    m1nm13
    m1nm13
    Dec 18, 2025
    42
    说不定腾讯把你 IP 关小黑屋了,直接无法访问 tail scale
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 150ms · UTC 16:35 · PVG 00:35 · LAX 08:35 · JFK 11:35
    ♥ Do have faith in what you're doing.