Tailscale自建(Headscale,derp)记录

  1. 下载依赖
    直接下载headscale的deb安装包即可。
    https://github.com/juanfont/headscale/releases/download/v0.26.1/headscale_0.26.1_linux_amd64.deb

  2. 配置
    通过deb可以一键安装,省去很多麻烦,安装后提示的内容如下

 headscale package has been successfully installed.

 Please follow the next steps to start the software:

    sudo systemctl enable headscale
    sudo systemctl start headscale

 Configuration settings can be adjusted here:
    /etc/headscale/config.yaml

修改配置文件 /etc/headscale/config.yaml中你需要修改的部分,一般就是监听地址和dns

修改以下的节点信息
server_url: http://XXX.XXX.XXX.XXX:8080  # 这里填写你的实际外网地址,域名或ip都可以
listen_addr: 0.0.0.0:8080
metrics_listen_addr: 0.0.0.0:9090
ip_prefixes:
  - fd7a:115c:a1e0::/48
  - 10.1.0.0/16
randomize_client_port: true
# 修改对自己来说方便的DNS,可以保持默认
dns_config:
	nameservers:
		- 223.5.5.5
# 建议关闭Magic DNS,否则有可能造成客户端无法正常上网
magic_dns: false
# 修改Socket存储位置
unix_socket: /var/run/headscale/headscale.sock

根据提示,复制命令到server执行即可。在这之前需要新建一个用户

headscale users create thinkpad

各终端加入节点方法

Windows

tailscale login --login-server http://你的域名或ip:8080

获取返回的命令

headscale -n 命名空间 nodes register --key nodekey:上面这行命令返回结果的key

到Headscale服务器上执行返回的命令

Linux

我的系统是linux,在客户端只需要执行

sudo tailscale up --login-server=http://xxxx:58080 --accept-routes=true --accept-dns=false
[sudo]  的密码: 

To authenticate, visit:

	http://0.0.0.0:58080/register/-4S61FkilWFRm1Z1iH6es4Tn

自建derp服务器

直接使用前人配置好的docker镜像即可

https://hub.docker.com/r/javaow/tailscale-derp

Headscale 的本地 YAML 文件目前还不支持InsecureForTests这个配置项,所以没办法,目前只能使用在线 URL 了。

{
  "Regions": {
    "901": {
      "RegionID": 901,
      "RegionCode": "ali-sh",
      "RegionName": "Aliyun Shanghai",
      "Nodes": [
        {
          "Name": "901a",
          "RegionID": 901,
          "DERPPort": 443,
          "HostName": "xxxx",
          "IPv4": "xxxx",
          "InsecureForTests": true
        }
      ]
    }
  }
}

配置说明:

HostName 直接填 derper 的公网 IP,即和 IPv4 的值相同。

InsecureForTests 一定要设置为 true,以跳过域名验证。

需要把这个 JSON 文件变成 Headscale 服务器可以访问的 URL,比如在 Headscale 主机上搭个 Nginx,或者上传到对象存储(比如阿里云 OSS)。

一样的修改Headscale 的配置文件

# /etc/headscale/config.yaml
derp:
  server:
    # 不启用官网自带的derp
    enabled: false
  urls:
    - https://xxxxx/derp.json
  paths:
    # - /etc/headscale/derp.yaml
  # paths: []

检查

成功后的样子

tailscale netcheck

Report:
	* Time: 2025-06-07T06:44:23.298840441Z
	* UDP: true
	* IPv4: yes, xxxxx:49849
	* IPv6: no, but OS has support
	* MappingVariesByDestIP: 
	* PortMapping: UPnP
	* CaptivePortal: false
	* Nearest DERP: Aliyun ChengDu
	* DERP latency:
		-  cd: 10.4ms  (Aliyun ChengDu)
posted @ 2025-06-06 21:27  potatso  阅读(520)  评论(0)    收藏  举报