使用前提:要有域名并且已经备案
1.下载并配置golang环境

wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz 

export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin

source /etc/profile

屏幕截图 2022-12-30 150214.jpg
安装完成后使用

go version

确定安装完成

2.编译derper

go env -w GOPROXY=https://goproxy.cn,direct
go install tailscale.com/cmd/derper@main

屏幕截图 2022-12-30 150245.jpg
编译完成后可执行文件在以下目录
/usr/local/gopath/bin
屏幕截图 2022-12-30 150308.jpg
运行derper -h 如出现一下信息则已完成编译
屏幕截图 2022-12-30 150336.jpg
3.创建服务

vim /usr/lib/systemd/system/derper.service

[Unit]
Description=tailscale derper server
After=syslog.target
After=network.target

[Service]
Type=simple
#User=rooti
#Group=derper
ExecStart=/usr/local/gopath/bin/derper -hostname=你的域名 -c=/var/lib/derper/derper.conf -a :你的端口 -http-port -1 -certdir /usr/local/cert -certmode manual --verify-clients
Restart=always
RestartSec=5

# Optional security enhancements
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/derper /var/run/derper
AmbientCapabilities=CAP_NET_BIND_SERVICE
RuntimeDirectory=derper

[Install]
WantedBy=multi-user.target

运行服务:

注意:--verify-clients参数需要在derp节点运行tailscale客户端,否则节点可能无法使用
证书文件放在/usr/local/cert目录下,文件命名分别为“你的域名.crt”和“你的域名.key”,例如:baidu.com.crt,baidu.com.key
4.添加并测试节点
在tailscale管理页面总的access control添加一下配置

"derpMap": {
        "OmitDefaultRegions": true,
        "Regions": {
            "900": {
                "RegionID":   900,
                "RegionCode": "qcloud",
                "Nodes": [
                    {
                        "Name":     "1",
                        "RegionID": 900,
                        "HostName": "你的域名",
                        "DERPPort": 你的端口,
                    },
                ],
            },
        },
    }

屏幕截图 2022-12-30 151401.jpg
点击任意一台机器,查看是否有刚添加的节点,是否有【relay #900】字样

屏幕截图 2022-12-30 151420.jpg
此时不代表节点可用!此时不代表节点可用!此时不代表节点可用!此时不代表节点可用!

若要确认节点可用,则需要在客户端使用tailscale ping另外一台机器,若出现下面内容才算成功
屏幕截图 2022-12-30 151434.jpg