全球灰产交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

全球云38元起免备案V2EX搬瓦工灰产
SEO查询超级PING网站测速
Virmach特价鸡乌云漏洞吾爱破解
查看: 118|回复: 5

Tailscale DERP Docker版教程(国内 无需域名 IP+Port)

[复制链接]

2

主题

47

回帖

160

积分

注册会员

Rank: 2

积分
160
发表于 2024-8-14 16:38:05 | 显示全部楼层 |阅读模式
20230417
网上教程太复杂,又是域名 又是装golang,而且还没有Docker版本
国内机器没有北岸无法解析域名,也就没办法使用官方直接搭建,需要下载源码去除证书验证重新编译才可以

偷懒
用我直接打包好的镜像即可,支持Amd64和Arm64,甲骨文Arm灰产也可直接使用

  1. docker run -d --name tailscale-derp -p 36666:36666 -p 3478:3478/udp --restart=always javaow/tailscale-derp
复制代码



教程
多阶段dockerfile构建,编译打包一体
1.打开一个dockerfile文件

  1. vi dockerfile
复制代码


2.把如下内容复制到dockerfile
注意1:最好使用国外灰产,国内github和docker连通性不是很好
注意2:此版本是Amd架构,如果要在Arm架构打包需要把 RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 这一行注释或者删除(此行为了解决Amd架构下alpine镜像无法执行二进制问题)
注意3:随着版本更新,cert.go文件中的代码行数可能发生变化,当前版本是注释91~93行这3行即可,编译前最好去官方仓库看下,否则编译不通过

  1. # 编译
  2. FROM golang:alpine AS builder

  3. # 切换模块源为中国Go模块代理灰产
  4. # RUN go env -w GOPROXY=https://goproxy.cn,direct

  5. # 拉取代码
  6. RUN go install tailscale.com/cmd/derper@latest

  7. # 去除域名验证(删除cmd/derper/cert.go文件的91~93行)
  8. RUN find /go/pkg/mod/tailscale.com@*/cmd/derper/cert.go -type f -exec sed -i '91,93d' {} +

  9. # 编译
  10. RUN derper_dir=$(find /go/pkg/mod/tailscale.com@*/cmd/derper -type d) && \
  11.         cd $derper_dir && \
  12.     go build -o /etc/derp/derper

  13. # 生成最终镜像
  14. FROM alpine:latest

  15. WORKDIR /apps

  16. COPY --from=builder /etc/derp/derper .

  17. RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  18.     && echo 'Asia/Shanghai' > /etc/timezone

  19. ENV LANG C.UTF-8

  20. # 创建软链接 解决二进制无法执行问题 Amd架构必须执行,Arm不需要执行
  21. RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

  22. # 添加源
  23. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

  24. # 安装openssl
  25. RUN apk add openssl && mkdir /ssl

  26. # 生成自签10年证书
  27. RUN openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /ssl/derp.javaow.com.key -out /ssl/derp.javaow.com.crt -subj "/CN=derp.javaow.com" -addext "subjectAltName=DNS:derp.javaow.com"


  28. CMD ./derper -hostname derp.javaow.com -a :36666 -certmode manual -certdir /ssl
复制代码


3.编译镜像

  1. docker build -f dockerfile -t tailscale-derp
复制代码



编译完成后即可查看本地生成的镜像
  1. docker images
复制代码


启动
  1. docker run -d --name tailscale-derp -p 36666:36666 -p 3478:3478/udp --restart=always tailscale-derp
复制代码


4.添加节点
进入官方后台,替换如下,HostName填写IP,DERPPort填写端口
  1. "derpMap": {
  2.                 "OmitDefaultRegions": false,
  3.                 "Regions": {
  4.                         "910": {
  5.                                 "RegionID":   910,
  6.                                 "RegionCode": "自建节点",
  7.                                 "Nodes": [
  8.                                         {
  9.                                                 "Name":             "910",
  10.                                                 "RegionID":         910,
  11.                                                 "HostName":         "xx.xx.xx.xx",
  12.                                                 "InsecureForTests":         true,
  13.                                                 "DERPPort":         36666,
  14.                                         },
  15.                                 ],
  16.                                 "RegionName": "自建节点",
  17.                         },
  18.                 },
  19.         },
复制代码


5.后话
自己打包镜像后可以上传到DockerHub上,让其他机器直接拉取使用,不用再重新编译了

主要注意点就是,随着版本更新cert.go文件中的代码行数可能发生变化,这时就需要修改dockerfile中的91,93d删除行数,只要保证把下面红框里的3行代码删除即可,这三行就是证书验证代码

https://github.com/tailscale/tailscale/blob/v1.70.0/cmd/derper/cert.go

hostloc邀请码购买+tg:@Sendtoae86bot
回复

使用道具 举报

30

主题

2613

回帖

5948

积分

论坛元老

Rank: 8Rank: 8

积分
5948
发表于 2024-8-14 16:39:34 | 显示全部楼层
支持技术贴!
hostloc邀请码购买+tg:@Sendtoae86bot
回复 支持 反对

使用道具 举报

52

主题

258

回帖

886

积分

高级会员

Rank: 4

积分
886
发表于 2024-8-14 16:47:21 | 显示全部楼层
问个问题,这样运行起来的DERP会被其他人滥用吗?好像也没什么认证,万一别人知道了IP+PORT,好像也可以偷偷用
hostloc邀请码购买+tg:@Sendtoae86bot
回复 支持 反对

使用道具 举报

0

主题

2

回帖

8

积分

新手上路

Rank: 1

积分
8
发表于 2024-8-14 16:52:34 | 显示全部楼层
技术贴,支持
hostloc邀请码购买+tg:@Sendtoae86bot
回复 支持 反对

使用道具 举报

2

主题

331

回帖

1148

积分

金牌会员

Rank: 6Rank: 6

积分
1148
发表于 2024-8-14 17:30:16 | 显示全部楼层
注释的servername 其实是最后一步校验了,至少知道域名才可以连接
hostloc邀请码购买+tg:@Sendtoae86bot
回复 支持 反对

使用道具 举报

12

主题

128

回帖

466

积分

中级会员

Rank: 3Rank: 3

积分
466
发表于 2024-8-14 22:29:19 | 显示全部楼层
有没有公益节点
hostloc邀请码购买+tg:@Sendtoae86bot
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

展开

QQ|Archiver|手机版|小黑屋|全球灰产交流论坛

GMT+8, 2024-10-28 22:29 , Processed in 0.045680 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表