V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gearfox
V2EX  ›  宽带症候群

tailscale 回家速度不理想,求教

  •  
  •   gearfox · 2023-05-25 10:53:44 +08:00 · 7971 次点击
    这是一个创建于 552 天前的主题,其中的信息可能已经有所发展或是发生改变。
    电信 300M 宽带有公网 ip ,千兆光猫设置了桥接,主路由硬件 RouterOS 设备负责拨号,副路由 Openwrt 上安装有 tailscale
    拓扑为 华为光猫---RB760---Openwrt
    最早在 RouterOS 配置了 NAT1 给 openwrt ,tailscale 的速度还凑活吧,现在关闭了 NAT1 ,tailscale 的速度就很慢了,但是凑活将就能用,网上说可通过自建 derper 的方式提速,但是我在阿里轻量云上安装并配置了 derper ,测试无法使用,下面我发出来步骤,请大家排查一下问题,谢谢了。

    [安装 derper ]
    wget --no-check-certificate https://go.dev/dl/go1.20.4.linux-amd64.tar.gz
    tar -xzf go1.20.4.linux-amd64.tar.gz -C /usr/local
    echo 'export GOROOT=/usr/local/go' | tee -a /etc/profile
    echo 'export GOPATH=/usr/local/gopath' | tee -a /etc/profile
    echo 'export GOBIN=$GOPATH/bin' | tee -a /etc/profile
    echo 'export PATH=$PATH:$GOROOT/bin' | tee -a /etc/profile
    echo 'export PATH=$PATH:$GOPATH/bin' | tee -a /etc/profile
    source /etc/profile
    go version
    go env -w GOPROXY=https://goproxy.cn,direct
    go install tailscale.com/cmd/derper@main

    [阿里云申请 1 年免费证书并上传到 /home/admin/certs ]
    浏览器 https 方式打开 deeper 页面也正常

    [ aliyun 上关闭了防火墙和系统内置的 firewalld ]

    [启动服务如下]
    tee /etc/systemd/system/derper.service <<'EOF'
    [Unit]
    Description=Tailscale DERP Server
    Requires=tailscaled.service
    After=tailscaled.service

    [Service]
    Type=simple
    User=root
    Restart=always
    RestartSec=5
    ExecStart=/usr/local/gopath/bin/derper -c=/root/derper.conf --hostname=aliyun.111.com --verify-clients -a=:7777 -stun-port=8888 -http-port=-1 -certdir=/home/admin/certs/ -certmode=manual

    [Install]
    WantedBy=multi-user.target
    EOF

    systemctl daemon-reload && systemctl enable --now derper && systemctl status derper

    [官方页面里配置 ACL 规则]
    "derpMap": {
    "OmitDefaultRegions": false,
    "Regions": {
    "900": {
    "RegionID": 900,
    "RegionCode": "aliyunderp",
    "Nodes": [
    {
    "Name": "1",
    "RegionID": 900,
    "HostName": "aliyun.111.com",
    "STUNPort": 7777,
    "DERPPort": 8888,
    },
    ],
    },
    },
    },

    [安装验证服务]
    dnf config-manager --add-repo https://pkgs.tailscale.com/stable/centos/9/tailscale.repo
    dnf install tailscale -y
    systemctl enable --now tailscaled
    tailscale up

    测试时就有问题了,tailscale status 也显示无法连接到自建 derper 上
    提示# Health check:
    # - not connected to home DERP region 900

    或者显示连接上了,使用命令 tailscale ping 不通 openwrt 和其他安装 tailscale 的设备,好奇怪,请有经验的各位大大指点指点,谢谢大家
    51 条回复    2023-07-27 23:09:05 +08:00
    Tink
        1
    Tink  
       2023-05-25 11:07:08 +08:00
    打洞成功了吗
    gearfox
        2
    gearfox  
    OP
       2023-05-25 11:09:35 +08:00
    @Tink 不自建的话,能连回家正常使用,打开家里的服务都正常
    azure2023us559
        3
    azure2023us559  
       2023-05-25 11:20:53 +08:00
    没看懂,为什么要绕下呢?有公网 ip ,直接在 op 上 装 wireguard 之类的 server ,配合 ddns , 手机装 client 连接不就完了吗?
    Lentin
        4
    Lentin  
       2023-05-25 11:31:47 +08:00
    人生苦短,建议用 zerotier+自建 planet 很稳、很快、
    gearfox
        5
    gearfox  
    OP
       2023-05-25 12:04:50 +08:00
    @azure2023us559 好吧,哈哈哈,以前用过 wireguard ,就是试了试这个,结果遇到问题了
    gearfox
        6
    gearfox  
    OP
       2023-05-25 12:06:02 +08:00
    @Lentin 好的谢谢,我闲了改成 zerotier
    bt7vip
        7
    bt7vip  
       2023-05-25 12:31:46 +08:00 via Android
    最近搞多地互联,局域网全映射,看了 net maker ,tailscale ,看了头大,感觉太复杂了,找了一个 ansible 角色,又好些功能实现不了,好难。
    目前构思是用 wireguard 映射各地非同段局域网,做头部转发,wireguard 的虚拟局域网仅用作 mash 互联和移动端接入,太难了太难了。
    已经实现是 wireguard 直连,省内异网 40~50ms ,同城 30ms 以内,感觉还行,远程桌面也跟手。就是连另一个局域网要切,非常不够优雅。
    Sekai
        8
    Sekai  
       2023-05-25 12:35:56 +08:00
    手动运行 ExecStart 那一串启动命令会出现什么错误? 服务端正常运行的话访问 aliyun.111.com:7777 会出现 This is a Tailscale DERP server 页面
    gearfox
        9
    gearfox  
    OP
       2023-05-25 12:46:55 +08:00
    @Sekai 测试了,页面都正常的
    Jhma
        10
    Jhma  
       2023-05-25 13:36:12 +08:00
    我用 openvpn ,利用 IPv6 地址和 DDNS ,实现了用户+密码+证书+APP 动态码的高安全连接,在外面用 v6 隧道串流家里面的 xbox 非常爽
    Badupp
        11
    Badupp  
       2023-05-25 13:55:14 +08:00
    @Lentin zerotier 不支持 ddns
    JayZXu
        12
    JayZXu  
       2023-05-25 14:04:33 +08:00
    这个我刚折腾过,可能有两个问题
    首先是对应域名证书的配置,证书得配 fullchain ,不然可能会报证书无效
    另外,在 Access Controls 里面配置 derp 配置时,试着吧
    "HostName": "xxx.xxxx.com",
    "IPv4": "xxx.xxx.xxx.xxx",
    两项同时配置,我发现宿主机能 ping 通的情况下,tailscale 客户端经常找不到域名对应 IP

    我之前都用的 zerotier ,现在切到 tailscale 了。tailscale 在建立连接后的响应延迟和稳定性比 zerotier 要好。
    derp 也比 planet 和 moon 的转发效率高,但是好像峰值速度没有 zerotier 快,而且更占 CPU
    Sekai
        13
    Sekai  
       2023-05-25 14:04:53 +08:00
    @gearfox 那可能 ACL 写得不太对? Nodes 里面可以加上"IPv4"一项,可以多找些范例看看,另外 OmitDefaultRegion 设为 false 的话也可能走其他服务器去了
    Sekai
        14
    Sekai  
       2023-05-25 14:07:11 +08:00
    另外证书文件改成 aliyun.111.com.crt 和 aliyun.111.com.key 试一下
    gearfox
        15
    gearfox  
    OP
       2023-05-25 14:07:18 +08:00
    @Jhma 那你弄的挺好的。 我是家里有 v4 和 v6 ,办公室只有 v4 ,其实 l2tp 也能连回家,就是想折腾一下 tailscale
    gearfox
        16
    gearfox  
    OP
       2023-05-25 14:16:01 +08:00
    @JayZXu 好的,我再折腾折腾
    gearfox
        17
    gearfox  
    OP
       2023-05-25 14:16:25 +08:00
    @Sekai 好的,我一个一个重新搞一下再试试
    Lentin
        18
    Lentin  
       2023-05-25 14:21:53 +08:00
    @Badupp #11 如果设备不多的话应该用不上 ddns 吧,ipv4 地址手动分几个好记得就行了=。=
    gearfox
        19
    gearfox  
    OP
       2023-05-25 14:57:22 +08:00
    重新搞了一遍,还是互相 ping 不通,提示
    [root@ali]# tailscale status
    100.109.90.40 V1 w@ linux -
    100.122.80.66 openwrt w@ linux -
    100.76.171.72 V3 w@ windows active; relay "aliderp", tx 5624 rx 0

    # Health check:
    # - not connected to home DERP region 900
    # - Some peers are advertising routes but --accept-routes is false
    JayZXu
        20
    JayZXu  
       2023-05-25 15:01:41 +08:00
    @gearfox #19 试下 docker 封装好的 http://github.xiaoc.cn/fredliang44/derper-docker 这个项目。
    我当时用命令直接部署的也是有问题。
    把上面的环境变量配置正确,证书路径映射对,基本上就没问题了
    sansam
        21
    sansam  
       2023-05-25 15:02:01 +08:00
    @bt7vip 上 headscale ,所有节点(网络) mesh 互联互通,非常好使。
    neroxps
        22
    neroxps  
       2023-05-25 15:13:24 +08:00 via iPhone
    tailscale 太重了,单节点的话直接拉个 wg-easy 容器就完事。
    neroxps
        23
    neroxps  
       2023-05-25 15:14:00 +08:00 via iPhone
    另 routeros 也有 wg 直接 wg 即可。
    gearfox
        24
    gearfox  
    OP
       2023-05-25 15:21:54 +08:00
    @neroxps 好的
    gearfox
        25
    gearfox  
    OP
       2023-05-25 15:22:37 +08:00
    @JayZXu 好的好的,自己一直不习惯用 docker ,就手工了
    Sekai
        26
    Sekai  
       2023-05-25 15:43:36 +08:00
    好像你把 ACL 里的两个端口搞颠倒了?
    xhcnb
        27
    xhcnb  
       2023-05-25 15:46:51 +08:00
    都有公网地址了, 直接 ikev2/ipsec vpn 回去不香吗, 系统自带协议支持, 不用什么客户端
    如果觉得 udp 被 qos, 就使用 tinc, 走 tcp 通道, 支持 ddns
    gps949
        28
    gps949  
       2023-05-25 16:29:53 +08:00
    端口写反了吧?
    bt7vip
        29
    bt7vip  
       2023-05-25 17:02:58 +08:00 via Android
    @sansam headscale 不是控制器吗,在 icloudnative.io 上看了教程,套来套去的,不敢上的主要原因是异地,挂了就要跑过去🌚🌚🌚
    thereone
        30
    thereone  
       2023-05-25 17:41:49 +08:00
    直接用 softether 就行,这个管理方便 v4 v6 都支持也随时都能切换成 tcp 或者 udp 。最主要的是全图形化界面配置非常方便
    thereone
        31
    thereone  
       2023-05-25 17:44:42 +08:00
    @bt7vip 用 softether 在每一个路由器上面新建一个桥接网卡,然后配置上 3 层地址写个静态路由。不要太简单
    bt7vip
        32
    bt7vip  
       2023-05-25 18:15:30 +08:00 via Android
    @thereone 好的,我试试
    superchijinpeng
        33
    superchijinpeng  
       2023-05-25 18:37:41 +08:00
    看了下延迟还是很低的

    * MappingVariesByDestIP: false
    * HairPinning: false
    * PortMapping:
    * CaptivePortal: false
    * Nearest DERP: Shanghai
    * DERP latency:
    - sh: 20.5ms (Shanghai)
    - tok: 76.6ms (Tokyo)
    - hkg: 125.2ms (Hong Kong)
    - sin: 140.5ms (Singapore)
    - blr: 164.6ms (Bangalore)
    - sfo: 169.3ms (San Francisco)
    - sea: 193.8ms (Seattle)
    - den: 213ms (Denver)
    - dfw: 217.5ms (Dallas)
    - hnl: 222.3ms (Honolulu)
    - ord: 225.8ms (Chicago)
    - lhr: 234.8ms (London)
    - fra: 238.2ms (Frankfurt)
    - lax: 238.4ms (Los Angeles)
    - ams: 241.2ms (Amsterdam)
    - nyc: 242.7ms (New York City)
    - par: 242.8ms (Paris)
    - waw: 245.2ms (Warsaw)
    - mia: 248ms (Miami)
    - tor: 252.2ms (Toronto)
    - mad: 264.8ms (Madrid)
    - dbi: 346.6ms (Dubai)
    - jnb: 352.5ms (Johannesburg)
    - sao: 391ms (São Paulo)
    - syd: 490.1ms (Sydney)
    Zerolouis
        34
    Zerolouis  
       2023-05-26 02:17:51 +08:00 via Android
    @bt7vip 多个局域网只要每个局域网的路由器加入 wireguard 的虚拟局域网,开启转发或者直接将 wireguard 的局域网划入 LAN 的防火墙规则就可以访问每个网段了
    如果每个局域网都有公网可以配置全互连,没有的话就让有公网的节点做转发
    我目前就是这么配置的,家和学校 OpenWrt ,配置一个虚拟局域网,三个网段所有设备可以互联
    dangyuluo
        35
    dangyuluo  
       2023-05-26 02:46:56 +08:00
    tailscale 居然有国内的服务器?震惊
    gearfox
        36
    gearfox  
    OP
       2023-05-26 08:58:44 +08:00
    @Sekai 是的是的,才发现写反了,大意了,改了后试了下。互相还是 ping 不通
    gearfox
        37
    gearfox  
    OP
       2023-05-26 08:59:49 +08:00
    @xhcnb 家里有 l2tp 可以连,就是折腾了一下这个玩呢
    gearfox
        38
    gearfox  
    OP
       2023-05-26 09:00:20 +08:00
    @gps949 是的是的。大意了
    Sekai
        39
    Sekai  
       2023-05-26 10:03:19 +08:00
    @gearfox 那就比较诡异了,可能运行命令写的有点问题,实在想弄可以闲鱼搜 tailscale 找到我,位置 sh 头像是柊镜
    aaronkk
        40
    aaronkk  
       2023-05-26 11:07:26 +08:00
    在 derper 节点也安装 tailscale 客户端,注册进去就可以了
    gearfox
        41
    gearfox  
    OP
       2023-05-26 11:26:59 +08:00
    @aaronkk 安装了,还是连不上,很奇怪
    gearfox
        42
    gearfox  
    OP
       2023-05-26 11:32:16 +08:00
    @Sekai 现在进度是阿里云上的 deper 和 windows 客户端可以互相 ping 通,均和家里的 openwrt 不通
    bt7vip
        43
    bt7vip  
       2023-05-26 12:11:26 +08:00 via Android
    @Zerolouis 你是直接用 openwrt 拨号吗,我三地公网,但都是硬路由,因为不能影响现网使用,可以开端口,每个局域网下配置一个虚拟机组网。
    今天刚配置好,局域网内设备需要把网关指向虚拟机,DNS 指向路由器,配置后才能访问异网网段并且不影响上网。直接加入组网不需要配置,比如移网直接加入,不需要设置。
    这个方法自用比较好,公用场所比如学校公司,可以保证局域网下只有设置定向的设备才能访问其他局域网,不然你组网了,办公室有人局域网一扫,好了大家一起连你家里看小电影🌚🌚🌚
    公用组网你那种比较好,可以做到无感访问。
    Sekai
        44
    Sekai  
       2023-05-26 12:38:22 +08:00
    那可能 openwrt 这边没起来,可以手动启动看看
    Sekai
        45
    Sekai  
       2023-05-26 12:39:42 +08:00
    另外 ExecStart 那串最后加个 -stun 试试
    gearfox
        46
    gearfox  
    OP
       2023-05-26 14:26:36 +08:00
    @Sekai 排查了好久,大概率是 openwrt 那的问题,现在是时通时不通。openwrt 如果主动 ping tailscale 分给阿里云和公司笔记本的私网地址,就通了,过一会就又不通了。算了,不搞了,谢谢你啦
    aaronkk
        47
    aaronkk  
       2023-05-26 14:44:37 +08:00
    @gearfox #46 那很可能是网关的问题,是不是有多个网关,ping 了才能找到对的
    gearfox
        48
    gearfox  
    OP
       2023-05-26 15:27:01 +08:00
    @aaronkk 应该是
    galaxyskyknight2
        49
    galaxyskyknight2  
       2023-05-26 15:43:02 +08:00
    @Lentin 完全同意,我就是用某良心云自建 planet, 打洞杠杠的,速度杠杠的。再配一个 ztncui webservice,爽死了。什么垃圾花生壳的蒲公英,卖那么贵,还比不上我这个自建。
    Zerolouis
        50
    Zerolouis  
       2023-05-27 00:31:32 +08:00 via Android
    @bt7vip 是的我两地都是 OpenWrt 直接拨号,所以直接用 op 配置了
    至于安全问题,我两地都是自用所以直接把 wireguard 划到 lan 区域了,图个方便,正常应该是 wireguard 配置单独防火墙,然后配置 lan 的转发,这样可以指定设备
    hsczy
        51
    hsczy  
       2023-07-27 23:09:05 +08:00 via Android
    @Jhma 您好,请问一下怎么实现的?我家的环境跟您的很像所以想配置一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3442 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:06 · PVG 19:06 · LAX 03:06 · JFK 06:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.