V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
clikes
V2EX  ›  程序员

headscale 组网工具快速部署,以及部署过程中遇到的一些坑

  •  
  •   clikes · 2023-03-06 19:20:40 +08:00 · 3375 次点击
    这是一个创建于 657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先如果要快速部署的话,还得是用 docker ,本人也不是特别熟悉 docker 的使用,这里算是抛砖引玉了。过程中搜了很多资料,这个资料是看的最多的 https://icloudnative.io/posts/how-to-set-up-or-migrate-headscale/ ,里面讲了挺多基础的部署,不过其实已经稍微有点过时,headscale 最近也有蛮多更新的。 然后大家部署 headscale 我觉得大部分情况还是会需要一个 derper ,这个时候大家就会自己部署 derper ,网上教程有挺多教你如何部署自己的 derper 服务,但是实际上 headscale 其实已经有内置 derper ,只要配置中启动即可不需要再额外部署。以下是部署流程: 0. 此流程是建立在大家已经有域名以及 https 的证书的情况下,因为有了域名和证书这个流程才能跑通也相对容易些。

    1. 创建配置文件夹mkdir -p /data/headscale/config
    2. 进入配置文件夹创建 sqllite 文件cd /data/headscale/config&&touch db.sqlite
    3. 修改 headscale 配置,例子文件可以在这里找到 https://github.com/juanfont/headscale/blob/main/config-example.yaml , 首先修改 server_url 为你自己的域名 server_url: https://wode.yuming:8080 ,接着 derp: server: eneabled:改为 true , 接下来修改 tls 的验证 key 和 crt 路径,tls_cert_path:"/certs/wode.yuming.crt" tls_key_path: "/certs/wode.yuming.key"
    4. 接下来就可以直接用 docker 命令部署了docker run --name headscale --detach -v /data/headscale/config:/etc/headscale/-v /root/certs:/certs -p 8080:8080 -p 9090:9090 -p 3478:3478/udp -p 3478:3478 headscale/headscale:0.20.0 headscale serve 这个地方记得要吧 3478 端口打开(很多搜出来的资料里面都不会帮你打开这个端口,我一开始以为配置没用),因为 derper 服务是走这个端口的,配置里面也可以修改,不过这个地方我没做详尽的测试如果 3478 的 udp 或者 tcp 单独打开是不是可以,印象中是不行,另外记得把你的证书提前复制到服务器的 /root/certs 文件夹或者你自己喜欢的文件夹,同时记得打开 vps 的防火墙里面的这几个端口
    5. 如果 docker 部署好了,那么后面的步骤就相对容易了,可以参考之前的连接里面的部分。可以进入 docker 创建你自己的网络名docker exec headscale headscale user create wodewangluo。然后就可以下载客户端连接啦。
    6. linux 客户端的坑,我部署好之后发现 linux 的 tailscale 客户端连接会卡死,但是连接官方的却可以,查了日志、看了代码之后发现原因是我的证书不在服务器信任列表里面,只需要吧证书拷贝到 /etc/pki/ca-trust/source/anchors/ 下,然后 sudo update-ca-trust 更新证书,然后重启 linux 客户端就可以啦 sudo systemctl restart tailscaled 。这个事情困扰了我一晚上,查了挺久,还问了 chatgpt ,才找到解决办法。 大家可以试试,这个应该是最快速简单的 headscale 部署方法了。
    第 1 条附言  ·  2023-04-13 12:01:55 +08:00
    最近搬家之后,发现有部分网站打不开或者网速极慢,后来发现可能是 tailscale 的虚拟网卡优先级比较高。ipconfig/all 之后发现 tailscale 的优先级在前,可以手动进以太网的设置中,把网络跃点设置为 1 调高优先级,这样会优先采用路由器\你自己设置的 dns 服务器。
    设置路径为:以太网->属性->ipv4 属性->高级->自动跃点取消,设置跃点数为 1 ,可以更改优先级解决该问题。(对网络这块不是特别专业,查找问题的方式可能也不太对,有问题可以帮我指出)
    3 条回复    2023-03-07 10:05:17 +08:00
    dengshen
        1
    dengshen  
       2023-03-06 21:34:28 +08:00
    最简单的应该是弄一份 docker-compose 出来吧 改改配置就能启动的那种 哈哈
    clikes
        2
    clikes  
    OP
       2023-03-06 21:39:28 +08:00
    @dengshen 不太熟这个,都搞不太清 docker-compose 和 docker 有啥区别
    GoRoad
        3
    GoRoad  
       2023-03-07 10:05:17 +08:00
    headscale 直接部署也没太麻烦,按照教程走就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 13:36 · PVG 21:36 · LAX 05:36 · JFK 08:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.