赞
踩
本人拥有一个国内云服务商的云主机和一个备案好的域名,通过caddy2来作为web服务器。我的云主机系统是Ubuntu。
我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com。后面的文章都以上述的ip和域名来进行讲解。
域名hotgirl.com已经通过云服务商的域名解析功能,解析到43.126.100.78。
我在云主机上安装了一个docker版本的headscale。
docker环境的部署我这里就不多赘述了,网上教程一大堆,我就直接贴命令了:
sudo apt-get remove docker docker-engine docker-ce docker.io # 删除旧的docker的安装包
sudo apt-get update # 更新安装包索引
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # 安装以下包以使apt可以通过HTTPS使用存储库(repository)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加Docker官方的GPG密钥:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 使用下面的命令来设置stable存储库
sudo apt-get update # 更新一下apt包索引
sudo apt-get install -y docker-ce # 安装最新版本的Docker CE:
sudo docker volume create portainer_data
sudo docker run -d -p 9000:9000 --name portainer --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
docker restart portainer
docker kill container_name# 强制关闭指定的容器
docker rm container_name# 从此机器中删除指定的容器
sudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/2.10.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo curl -sSL https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
说明
我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com。
添加A记录
我的域名是:hotgirl.com。现在准备把“head.hotgirl.com”这个二级域名给headscale来用。我需要在域名服务商的域名解析服务中,添加一个A记录,把“head.hotgirl.com”解析到云主机的公网ip43.126.100.78。同理,我把“mcs.hotgirl.com”也解析到云主机的公网ip43.126.100.78。这样通过“https://mcs.hotgirl.com/metrics”,就可以验证headscale是否安装成功。
解析完,准备工作完成,上述两个地址还暂时打不开,需要安装headscale。
#创建headscale根目录
mkdir -p /docker/headscale
#创建映射目录
mkdir -p /docker/headscale/config
mkdir -p /docker/headscale/run
mkdir -p /docker/headscale/data
--- # headscale will look for a configuration file named `config.yaml` (or `config.json`) in the following order: # # - `/etc/headscale` # - `~/.headscale` # - current working directory # The url clients will connect to. # Typically this will be a domain like: # # https://myheadscale.example.com:443 # server_url: https://head.hotgirl.com # Address to listen to / bind to on the server # # For production: # listen_addr: 0.0.0.0:8080 listen_addr: 0.0.0.0:8181 # Address to listen to /metrics, you may want # to keep this endpoint private to your internal # network # metrics_listen_addr: 0.0.0.0:9191
version: '3.1'
services:
headscale:
image: headscale/headscale
container_name: headscale
volumes:
- /docker/headscale/config:/etc/headscale
- /docker/headscale/data:/var/lib/headscale
- /docker/headscale/run:/var/run/headscale
ports:
- '0.0.0.0:8181:8181'
- '0.0.0.0:9191:9191'
command: headscale serve
restart: unless-stopped
cd /docker/headscale
docker-compose up -d
容器就创建成功了,但是现在head.hotgirl.com和“https://mcs.hotgirl.com/metrics”还暂时无法访问。你需要在你的云服务器的防火墙,放行8181和9191两个端口。
firewall-cmd --add-port=8181/tcp --permanent
firewall-cmd --add-port=9191/tcp --permanent
#重启防火墙
firewall-cmd --reload
在云主机的“配置安全组规则” 中,手动添加上述两个端口:
根据我前面的文章 Caddy2的安装、部署和编译小白教程 这篇文章中讲解的,修改Caddyfile这个文件:
vim /etc/caddy/Caddyfile
然后添加下面代码:
#Headscale
https://head.hotgirl.com {
tls 112244@qq.com
reverse_proxy 127.0.0.1:8181
}
#Headscale metrics
https://mcs.hotgirl.com {
tls 112244@qq.com
reverse_proxy 127.0.0.1:9191
}
然后重启下caddy
systemctl reload caddy
到此,caddy反向代理headscale的教程就结束了,你直接可以用tailscale客户端通过https://head.hotgirl.com 这个地址申请加入了。
如果https://mcs.hotgirl.com/metrics 打开后显示如上图,则说明headscale部署成功!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。