赞
踩
服务器环境 Ubuntu 22.04.3 LTS
(没有服务器可以去试用一下,学生优惠普遍都很便宜)
用root用户可以直接按顺序复制
设备架构
root@***:~# uname -m
x86_64
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
网速慢可以直接下载到win主机用scp上传
https://github.com/docker/compose/releases/latest/download/docker-compose-(uname-s)-(uname -m)
scp -P 22 -i 密匙文件路径 "下载文件路径" root@<ip>:/usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
headscale仓库:
https://github.com/juanfont/headscale
headscale-webui仓库
https://github.com/iFargle/headscale-webui
cd
mkdir -p /dockermnt/headscale
mkdir -p /dockermnt/headscale/config
mkdir -p /dockermnt/headscale/data
mkdir -p /dockermnt/headscale/web-ui
其中/dockermnt可以修改为自己想要的路径,如果修改,后文相同字段也须修改
wget -O /docker/headscale/conf/config.yaml https://raw.githubusercontent.com/juanfont/headscale/main/config-example.yaml
用最新版可以使用连接
老版本建议去下载对应版本的source压缩包,用解压后的config-example.yaml文件
历史版本连接
本文用的版本为v0.22.3(Source code(zip))
cd
vim /dockermnt/headscale/config
配置文件中可以用 /配置名段进行搜索
修改以下配置:
# 改成自己的域名+路由器转发的外网端口 server_url: https://aaa.bbb.com:8080 # headscale服务地址 # aaa.bbb.com可以用公网IP设置,后面的aaa.bbb.com同样要修改 # 8080端口可以修改为自己想要的端口,后面的8080同样要修改为设置的端口 # 改成0.0.0.0:8080 listen_addr: 0.0.0.0:8080 # 改成0.0.0.0:9090 metrics_listen_addr: 0.0.0.0:9090 # 改成0.0.0.0:50443 grpc_listen_addr: 0.0.0.0:50443 ip_prefixes: - fd7a:115c:a1e0::/48 - 10.77.0.0/24 # 10.77.0.0可以修改为自己想要的端口 derp: server: # 改成true enabled: true region_id: 999 region_code: "headscale" region_name: "Headscale Embedded DERP" # 改成0.0.0.0:3478 stun_listen_addr: "0.0.0.0:3478" urls: - https://controlplane.tailscale.com/derpmap/default dns_config: # List of DNS servers to expose to clients. # 可以用自己想要的,这里给出阿里云的 nameservers: - 223.5.5.5 - 114.114.114.114 # Defines the base domain to create the hostnames for MagicDNS. # 改成自己的域名 base_domain: aaa.bbb.com disable_check_updates: true #不想显示最新的版本信息可以改为true # 改成true randomize_client_port: true
docker network create -d bridge --subnet 172.20.0.0/24 --gateway 172.20.0.254 --ip-range 172.20.0.0/25 headscale-net
其中
172.20.0.0可以修改为自己想用的地址段
headscale-net可以修改为自己想要的网络名称
如果修改,后文中的相同部分进行修改
openssl rand -base64 32
复制生成的字符
vim /dockermnt/headscale/docker-compose.yaml
version: "3" services: headscale: # image: headscale/headscale:<headscale版本号> image: headscale/headscale:0.22.3 container_name: headscale networks: headscale-net: ipv4_address: 172.20.0.1 volumes: - /dockermnt/headscale/config:/etc/headscale - /dockermnt/headscale/data:/var/lib/headscale ports: - '8080:8080' - '9090:9090' - '3478:3478/udp' command: 'headscale serve' restart: always cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 headscale-webui: # image: ifargle/headscale-webui:<headscale-webui版本号> image: ifargle/headscale-webui:latest container_name: headscale-webui networks: headscale-net: ipv4_address: 172.20.0.2 environment: - TZ=Asia/Shanghai - COLOR=blue-gray - 'HS_SERVER=http://172.20.0.1:8080' - 'DOMAIN_NAME=https://aaa.bbb.com:5050' # 端口号可以改,改了后文5050也需要修改 - SCRIPT_NAME=/admin - KEY= #通过openssl rand -base64 32生成的内容,直接复制就可 - AUTH_TYPE=Basic - LOG_LEVEL=info - BASIC_AUTH_USER=设定管理页面用户名 - BASIC_AUTH_PASS=设定管理页面用户密码 volumes: - /dockermnt/headscale/web-ui:/data:rw - /dockermnt/headscale/config/:/etc/headscale/:ro ports: - '5050:5000' restart: always networks: headscale-net: external: true
直接复制有问题可以用
nano /dockermnt/headscale/docker-compose.yaml
cd /dockermnt/headscale && docker-compose up -d
查看镜像状态
docker ps -a
如果全部是up则可以,不是则可以查看日志
docker logs headscale
修改错误后重启
cd /dockermnt/headscale && docker-compose down
cd /dockermnt/headscale && docker-compose up -d
进入管理页面
https://aaa.bbb.com:5050/admin
输入刚刚的docker-compose用户民和密码
生成密匙
docker exec -it headscale headscale apikeys create
复制密匙输入到 api中
点保存便可以,不用test
docker exec -it headscale headscale ns create test-net # test-net可以修改为自己想要的
查看创建结果
docker exec -it headscale headscale ns list
在管理页面的User中看到的和输出的一致,配置便成功了
一些命令:
查看namespace列表:docker exec -it headscale headscale ns list
创建namespace:docker exec -it headscale headscale ns create test-net
删除namespace:docker exec -it headscale headscale namespace destroy default
重命名namespace:docker exec -it headscale headscale namespace rename default
所有添加指令前加上docker exec -it headscale
https://icloudnative.io/posts/how-to-set-up-or-migrate-headscale/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。