首页 > 其他分享 >Headscale + 自建DERP中继免域名配置(Debian)

Headscale + 自建DERP中继免域名配置(Debian)

时间:2024-11-19 18:43:30浏览次数:1  
标签:Headscale headscale derper derp etc go DERP com Debian

配置 Headscale

官方教程:https://headscale.net/setup/install/official/

  1. 下载 deb 包并安装
  2. 编辑配置文件
    • 首先下载官方最新的配置文件模板:https://headscale.net/ref/configuration/
    • 然后进行编辑:
      • server_url: 将ip更改为服务器的公网ip
      • listen_addr: 0.0.0.0:8080
      • grpc_listen_addr: 0.0.0.0:50443
      • dns.nameservers.global: 更改为国内的公共dns(如223.5.5.5)
      • (可选)randomize_client_port: true
    • 其余配置不变,复制到 /etc/headscale/config.yaml
  3. 创建相关目录及修改权限
    mkdir -p /var/lib/headscale
    touch /var/lib/headscale/db.sqlite
    chown -R headscale:headscale /var/lib/headscale
    
  4. 启动:systemctl enable --now headscale
  5. 检查运行状态:
    systemctl status headscale
    ss -tulnp|grep headscale
    
  6. 在云服务管理中开启tcp 50443和8080端口
  7. 创建用户,方便客户端接入
headscale user create default

客户端连接

参照官网 https://headscale.net/usage/connect/android/ ,在tailscale客户端配置服务器地址后,在服务器中运行提示的指令。

配置DERP中继

如果有域名,可以https签名后直接配置headscale内置的derp(参见config-example.yaml的注释),如果没有域名,则按以下方法配置:

安装Golang

  • 如果安装过旧版本,需要先卸载
  • 从 golang 官网 https://go.dev/dl/ 复制最新linux版go下载链接,使用wget等下载
    • 也可以在本地下载后用xftp等上传到云服务器
  • 运行 sudo tar -C /usr/local -xzf <文件路径>
  • sudo mkdir -p /usr/local/gopath/bin
  • 编辑文件,配置环境变量 sudo vim /etc/profile
    • 在最后一行插入:
    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
  • 完成安装,运行go version检查是否成功
  • 配置代理:go env -w GOPROXY=https://goproxy.cn,direct

安装derper

  • go install tailscale.com/cmd/derper@main
  • 进入 /usr/local/gopath/pkg/mod/tailscale.com@xxx/cmd/derper,其中xxx会根据版本变化,可以用tab补全
  • 编辑 cert.go,注释掉下面三行并保存:
    image
  • 同路径下执行go build -o /etc/derp/derper
  • cd /etc/derp,查看是否成功
  • 自签一个假的域名,用来启动derper服务(其中derp.myself.com为假域名,可以替换):
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /etc/derp/derp.myself.com.key -out /etc/derp/derp.myself.com.crt -subj "/CN=derp.myself.com" -addext "subjectAltName=DNS:derp.myself.com"
  • 创建derp服务:
cat > /etc/systemd/system/derper.service <<EOF
[Unit]
Description=TS Derper
After=network.target
Wants=network.target
[Service]
User=root
Restart=always
ExecStart=/etc/derp/derper -hostname derp.myself.com -a :33445 -http-port 33446 -certmode manual -certdir /etc/derp --verify-clients
RestartPreventExitStatus=1
[Install]
WantedBy=multi-user.target
EOF
  • 启动服务
systemctl start derper
systemctl enable derper
  • 在云服务管理中开启 udp 3478 端口,以及tcp 33445端口
  • 在本地浏览器打开 https://<ip地址>:33445/ ,查看是否成功
    image

在headscale 中配置derp节点

  • 从headscale官网下载derp-example.yaml并编辑,存在/etc/headscale/derp-example.yaml中:
regions:
  900:
    regionid: 900
    regioncode: custom #自定
    regionname: My Region #自定
    nodes:
      - name: 900a
        regionid: 900
        hostname: 123.123.123.123 #填公网ip
        ipv4: 123.123.123.123 #同上
        ipv6: "2604:a880:400:d1::828:b001" #公网ip,可不填
        stunport: 3478
        stunonly: false
        derpport: 33445
  • 编辑/etc/headscale/config.yaml,将derp.path改为上面yaml的路径:
    image

  • 重启headscale:systemctl restart headscale

  • 在客户端运行tailscale netcheck,查看derp信息中有刚才配的这个就成功了

标签:Headscale,headscale,derper,derp,etc,go,DERP,com,Debian
From: https://www.cnblogs.com/clesora/p/18551313

相关文章

  • debian11 使用python3 启动http文件服务器和ftp服务器脚本
    http文件服务器start_http_server.sh#!/bin/bashport=$1host=0.0.0.0functionUsage(){echo-e"Usage:${0}[port]"exit0}if[[${port}==""]];thenUsagefi#检查端口号是否被占用check_port=`netstat-ant|grepLISTEN|grep${port}......
  • apt-get——Debian Linux发行版中的APT软件包管理工具
    转自于:https://github.com/jaywcjlove/linux-command,https://blog.csdn.net/liudsl/article/details/79200134后不赘述apt-getDebianLinux发行版中的APT软件包管理工具,现在更推荐使用apt,相关命令附后。说明apt-get命令是DebianLinux发行版中的APT软件包管理工具。所有......
  • debian12.7的apt默认源
    查看源root@debian:~#cat/etc/apt/sources.list#debcdrom:[DebianGNU/Linux12.7.0_Bookworm_-Officialamd64NETINSTwithfirmware20240831-10:38]/bookwormcontribmainnon-free-firmwaredebhttp://deb.debian.org/debian/bookwormmainnon-free-firmware......
  • 如何在 Debian 8 上设置 OpenVPN 服务器
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介OpenVPN是一个开源的VPN应用程序,可以让您在公共互联网上安全地创建和加入私人网络。简而言之,这允许最终用户隐藏连接并更安全地浏览不受信任的网络。有了这个前提,......
  • 怎么判断debian系列的系统中有没有安装防火墙?
    要判断一个Debian系列系统中是否安装了防火墙以及安装了哪些防火墙,可以通过以下步骤进行检查:一、检查常见的防火墙工具1.1检查ufw运行以下命令查看ufw是否安装:sudoufwstatus如果ufw已安装并启用,将显示其状态。如果未安装,系统会提示commandnotfound或类似信息......
  • 在Debian12上安装mysql 8.0
    从deb安装默认是区分大小写的一、安装过程请参考:https://www.cnblogs.com/sunshine-sm/p/18030729设置为不区分大小写,请参考https://www.cnblogs.com/binli33/p/18531992二、常用命令mysql-uroot-papt-get--purgeautoremovemysql-serversystemctlstart......
  • 宝塔安装shell脚本-仅支持debian系
    #!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexportPATHLANG=en_US.UTF-8INSTALL_LOGFILE="/tmp/btpanel-install.log"#exec>>(tee-a"$INSTALL_LOGFILE")2>&1Btapi_Url='http......
  • Debian 基础镜像与容器构建最佳实践指南
    引言在容器化应用开发中,选择合适的基础镜像至关重要。Debian作为一个稳定、安全且广受欢迎的Linux发行版,其官方Docker镜像成为了许多开发者的首选。本文将深入探讨Debian基础镜像的类型、特点,以及如何在容器构建中有效地使用它们。1.Debian基础镜像概述Debian......
  • Debian系统显卡驱动从官方驱动回退到Nouveau
    系统环境:Debian12.5,有桌面环境NvidiaGTX650显卡驱动:nvidia-tesla-470-470.256.02本来照着网上的教程想要安装官方的驱动,结果发现虽然nvidia-smi可以正常显示,但是桌面环境却崩掉了,开机不是黑屏就是极低分辨率,显示SoftwareRendering(软件渲染)。尝试搜索教程无果,遂放弃,准......
  • Debian12 搭建LNMP环境,配置SSL证书,安装WordPress
    一、安装并配置PHPSSH连接上VPS之后,我们先更新一下系统组件,使用下面的命令。aptupdate-y&&aptupgrade-y接着输入下面的命令安装PHP和相关组件aptinstallphp-fpmphp-mysqlphp-gdphp-cliphp-curlphp-mbstringphp-zipphp-opcachephp-xmlphp-mysqli-y查看/et......