V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kemf
V2EX  ›  Linux

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

  •  
  •   kemf · 2 天前 · 2450 次点击

    整过好几次了,部署的前几天能用,过了几天客户端里就提示连不上 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 条回复    2025-12-18 11:53:34 +08:00
    patrickyoung
        1
    patrickyoung  
       2 天前
    用域名但是没备案?
    kemf
        2
    kemf  
    OP
       2 天前
    @patrickyoung 是没备案 之前用的阿里云的服务器备案过后面也是连不上了,阿里倒是会强制跳转备案页面。藤子云这个没搞明白,在问他们售后了
    gunner168
        3
    gunner168  
       2 天前
    不如用 wireguard ,我之前用 Derp 也是开始能用,后来就死活连不上 derp
    kemf
        4
    kemf  
    OP
       2 天前
    @gunner168 可以的话想麻烦您指条明路 谢谢
    kemf
        5
    kemf  
    OP
       2 天前
    跟藤子问了一圈 他们说他们的服务没问题 难搞

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


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

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

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

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

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

    纯 ip 也可以自建中继
    patrickyoung
        21
    patrickyoung  
       2 天前
    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
        22
    Actrace  
       2 天前
    同楼上。
    微林家的 DERP 服务确实不错,省心就用他们家服务吧。之前我也自己部署 DERP 服务,非常难搞。
    SimonYeh
        23
    SimonYeh  
       2 天前
    域名没备案被拦截了,试试使用 ip 证书强制 ip 连接
    gunner168
        24
    gunner168  
       2 天前
    @kemf 就是用你的腾讯云做中转,类似于 derp
    chutianyao
        25
    chutianyao  
       2 天前
    没备案会被腾讯云随机阻断的
    busier
        26
    busier  
       2 天前 via iPhone
    阿里云也是

    未备案就会阻断 tls

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

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

    这个真不错,简单好用。

    目前看起来没啥大问题,后续有问题本帖再跟进,最后感谢 1~40L 的各位大佬的宝贵意见与经验。
    m1nm13
        42
    m1nm13  
       8 小时 39 分钟前
    说不定腾讯把你 IP 关小黑屋了,直接无法访问 tail scale
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.