Caddy2学习笔记——Caddy2反向代理docker版本的DERP中继服务器
创始人
2024-05-30 21:14:16
0

一、个人环境概述

  1. 本人拥有一个国内云服务商的云主机和一个备案好的域名,通过caddy2来作为web服务器。我的云主机系统是Ubuntu。

  2. 我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com。后面的文章都以上述的ip和域名来进行讲解。

  3. 域名 hotgirl.com 已经通过云服务商的域名解析功能,解析到43.126.100.78。

  4. 我在云主机上安装了一个docker版本的headscale。通过caddy反向代理后的地址是:https://head.hotgirl.com。具体参看教程:Caddy2反向代理docker版本的headscale 。

二、部署docker环境

具体参看教程:Caddy2反向代理docker版本的headscale 的第二部分内容。

三、指定DERP中继服务器的域名

  1. 已知
    我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com 。我在云主机上安装了一个docker版本的headscale。通过caddy反向代理后的地址是:https://head.hotgirl.com
  2. 解析
    添加一个A记录,把 “https://derper.hotgirl.com” 解析到云主机的公网ip43.126.100.78。 “https://derper.hotgirl.com” 这个地址作为中继服务器的服务地址。

四、开放云服务器端口

  1. 指定DERP端口
    DERP中继服务器需要一个tcp端口,这个端口可以自定义,我这里就定为:15489。然后,需要在你的云服务器的防火墙,放行 15489 这个端口。
firewall-cmd --add-port=15489/tcp --permanent#重启防火墙
firewall-cmd --reload
  1. 配置安全组规则
    在云主机的“配置安全组规则” 中,手动添加上 15489 端口:
    在这里插入图片描述

五、docker版本的DERP中继服务器安装

  1. 创建目录
#创建DERP中级服务器根目录
mkdir -p /docker/derp
  1. 创建docker-compose.yaml文件
    首先 cd /docker/derp 进入derp这个目录,创建docker-compose.yaml文件,并加入以下代码:
version: "3"
services:derper:container_name: derperimage: fredliang/derperrestart: alwaysports:- 3478:3478/udp- 15489:15489environment:DERP_DOMAIN: derper.hotgirl.comDERP_ADDR: ":15489"
  1. 创建容器
    cd到“/docker/derp”这个目录下,执行“docker-compose up -d” 命令。
cd /docker/derpdocker-compose up -d

六、Caddy2反向代理DERP中继服务器

根据我前面的文章 Caddy2的安装、部署和编译小白教程 这篇文章中讲解的,修改Caddyfile这个文件:

vim /etc/caddy/Caddyfile

然后添加下面代码:

#Headscale
#中继服务器
derper.hotgirl.com {tls {get_certificate tailscale}reverse_proxy  http://172.17.0.1:15489{}
}

然后重启下caddy

systemctl reload caddy

如果 https://derper.hotgirl.com 打开后显示如下图,则说明中继服务器部署成功!
在这里插入图片描述

七、将中继服务器加入到headscale中

  1. 创建derp.yaml文件
# /etc/headscale/derp.yaml
regions:902:regionid: 902regioncode: schregionname: Home Sichuan nodes:- name: 902aregionid: 902hostname: 'derper.hotgirl.com'ipv4: ''stunport: 3478stunonly: falsederpport: 443

上面的derp.yaml文件中,902 、902a 根据需要改成自己的regionid,总共四个地方,要改统一改掉。hostname就填写第六步中反代的中继服务器地址。

  1. 移动derp.yaml
    上一步骤的derp.yaml文件创建好后,放入到headscale的config文件夹,和config.yaml同级。如果你参照我的这篇 Caddy2反向代理docker版本的headscale 文章,就知道config.yaml和derp.yaml 都在 /docker/headscale/config 这个目录内。
  2. 修改headscale的配置文件
    进入headscale的配置文件目录( /docker/headscale/config ),打开config.yaml,修改如下:
# DERP is a relay system that Tailscale uses when a direct
# connection cannot be established.
# https://tailscale.com/blog/how-tailscale-works/#encrypted-tcp-relays-derp
#
# headscale needs a list of DERP servers that can be presented
# to the clients.
derp:# List of externally available DERP maps encoded in JSONurls:- https://controlplane.tailscale.com/derpmap/default# Locally available DERP map files encoded in YAML## This option is mostly interesting for people hosting# their own DERP servers:# https://tailscale.com/kb/1118/custom-derp-servers/#paths:- /etc/headscale/derp.yaml#paths: []# If enabled, a worker will be set up to periodically# refresh the given sources and update the derpmap# will be set up.auto_update_enabled: true# How often should we check for DERP updates?update_frequency: 24h

上面的代码路径 /etc/headscale/derp.yaml ,是容器内的路径,根据我的这篇 Caddy2反向代理docker版本的headscale 文章,回顾下headscale的docker-compose.yaml文件

version: '3.1'
services:headscale:image: headscale/headscalecontainer_name: headscalevolumes:- /docker/headscale/config:/etc/headscale- /docker/headscale/data:/var/lib/headscale- /docker/headscale/run:/var/run/headscaleports:- '0.0.0.0:8181:8181'- '0.0.0.0:9191:9191'command: headscale serverestart: unless-stopped

可以看出来,容器内路径“/etc/headscale” 是映射到了服务器路径 “/docker/headscale/config” ,所以我们只需把derp.yaml放入“/docker/headscale/config” 路径内,并文件名对应即可。

相关内容

热门资讯

成语猜猜看图猜树头发 成语猜猜看图猜树头发玉树临风yù shù lín fēng【解释】形容人风度潇洒,秀美多姿。亦作“临...
求修仙文,男女主都是神仙的古文 求修仙文,男女主都是神仙的古文三生三世十里桃花、三生三世枕上书、花千骨、囧囧女神
起点都市签约是怎么回事,多少字... 起点都市签约是怎么回事,多少字才会签签约和质量有关一般来说,一本书发到1万字的时候,就会按照流程进入...
李白静夜思创作 李白静夜思创作提壶酒过去,你俩一见如故,边喝边谈,谈国家兴亡,谈李白的政治生涯,假设他正迷茫,你一定...
逆战苍穹之心怎么变弓 逆战苍穹之心怎么变弓逆战苍穹之心怎么变弓流程:(1)攒满V,按V断网召唤坐骑恢复网络下坐骑(切记23...
这篇作文怎么样啊... 这篇作文怎么样啊...不错,很有哲理,情节也很好,有铺垫。有蓄势,有引用,有原创,有修辞手法。VER...
养猫很诡异么 养猫很诡异么我说我想养猫 我男朋友说 养猫养时间长的人的性格就变的不好了 很诡异?你男朋友怕你把感情...
席慕容都有什麽经典的散文诗集呀 席慕容都有什麽经典的散文诗集呀例如她的那首《一棵开花的树》我这里有席慕容的文集电子版。散文集:《透明...
那位公公你别走是什么小说 那位公公你别走是什么小说《桃花有主,温缱入骨》作家一江烟雨“所著的一部其他类型小说。 简介: 明楚国...
爱情公寓4胡一菲的裤子跟衣服是... 爱情公寓4胡一菲的裤子跟衣服是什么牌的!!!第四集!!衣服裤子!!1唉好 看是好看可是找不到啊lal...
从今以后再见依旧是故人这话什么... 从今以后再见依旧是故人这话什么意思依旧是朋友,却也只能是朋友,一般都是付出喜欢的人受伤之后说的,就是...
请问有没有关于燕子的诗句? 请问有没有关于燕子的诗句?归燕 【唐】杜牧 画堂歌舞喧喧地,社去社来人不看。 长是江楼使君伴,黄昏犹...
<庄子的草帽>此文... <庄子的草帽>此文有什么内涵?如题! 急啊!!文章赞美了庄子的善于思考,创立了庄子哲学思想。
09年最新电影 09年最新电影我要看2009最新的电影谁有。推荐下去迅雷.那很多的.有排行榜...
有没有人因为十分坚持错误的道路... 有没有人因为十分坚持错误的道路而失败,例子安徒生算不算,不过他最后写回童话了
电池修复有用吗? 电池修复有用吗?电池经过长期使用后,当电量彻底耗尽不能再用时,当然是可以修复的。修复电池的方法也是多...
怎样才能长个子 怎样才能长个子本人150cm,男人17建议青少年要做一些多跑跳的活动。比如引体向上,跑步,游泳,骑自...
杭州的断桥残雪的传说 杭州的断桥残雪的传说宋代叫它宝佑桥。元代因桥头居住着一对以卖酒为生的段姓夫妇,又称为段家桥。传说,很...
玉不琢下一句成语 玉不琢下一句成语玉不琢下一句成语玉不琢;不成器yù bù zhuó;bù chéng qì[释义] ...
1967年属羊生于农历二月的命... 1967年属羊生于农历二月的命运?1967年出生的人命运好得很,我身边有几个,他们财运好,他们每家条...