本教程适用于云应用的 Tailscale DERP Plus 服务器应用,您可以研究我的应用镜像并且在普通服务器上部署,普通服务器部署的教程已经烂大街了,我短期内没有攥写计划
自建 DERP 可以保证官方服务器拥堵时依旧可以获得很好的组网体验,但是自建的 DERP 服务是对所有人开放的,这就意味着任何人只要进行一些搜索就能找到你自建的 DERP 服务器并且白嫖你的服务器
不适用于普通服务器部署
*云应用无法提供 TS 所需的权限,所以无法运行防盗功能,只能使用带 -uf 后缀的版本
术语
- k8s :全称 kubernetes ,是一个多机容器编排工具,雨云云应用基于此技术栈构建
- Tailscale :异地组网软件
- DERP :Tailscale 的中继服务器,由此服务器负责处理客户端间网络握手等
- ACL :Tailscale 中的访问控制规则,用户规则大于默认规则
准备
首先请登录您的 Tailscale 控制台,选择“Add device”-“Linux server”
在新的页面中按图示勾选“Ephemeral”,可考虑是否勾选“Reusable”
由于 k8s 的特性,不要也不能勾选“Use as exit node”,即使这可以给内网带来很强的灵活性,如果您依然坚持使用,请学习如何通过 ACL 规则配置
各选项的解释(以下各项均为 k8s 环境下特需的设置,普通服务器部署时无任何参考意义):
- Ephemeral 将加入的设备作为临时设备使用,因为 k8s 在调度 Pods 时的操作是创建新 Pod 后删除旧 Pod ,此时保留旧设备信息没有任何意义
- Reusable 会将密钥允许重复使用,因为要使用防盗功能,同因上条 k8s 的调度规则,此时不勾选将会导致无法创建新的具有防盗功能的 Pod
- Auth key expiration 为密钥过期时间,过期时间内都可使用旧的密钥,同因第一条 k8s 的调度规则,在过期时间内都能正常创建具有防盗功能的 Pod
点击最下方的生成脚本按钮后,将 && sudo 符号后面的内容复制下来(此内容包含机密信息,请勿泄露。后续补充:不应该复制 sudo,而是从sudo后进行复制)
回到雨云,填入部署脚本即可
最后复制下外部服务(DERP)的地址访问测试
我们需要在导航栏前手动加入 https://
出现此页面点击高级-继续访问xxx(不安全)
出现此页面代表搭建完成
之后我们前往 ACL 页面并且选择 JSON editor
查看我们复制访问地址时的 IP 和端口信息,记下来
参考这个模板,替换你的 IP 和端口后添加到 ACL 规则的 derpMap.Regions 下
			"903": {
				"RegionID":   903, // 自定义一个不重复的 ID ,建议 901-999之间
				"RegionCode": "wp-admin", // 这些名字建议一致,雨云优惠码 wp-admin
				"RegionName": "wp-admin", // 这些名字建议一致,使用优惠码新用户五折优惠+永久折扣+消费返利
				"Nodes": [
					{
						"Name":             "wp-admin", // 这些名字建议一致
						"RegionID":         903, // 和上面的 RegionID 保持一致
						"IPv4":             "xxx", // 上面记下的 IP 地址
						"DERPPort":         12345, // 上面记下的端口
						"InsecureForTests": true,
					},
				],
			},
您可以额外添加以下规则禁用官方 DERP 服务器,如果官方后续添加了新的服务器,依照数字递增进行添加即可
			"1":  null,
			"2":  null,
			"3":  null,
			"4":  null,
			"5":  null,
			"6":  null,
			"7":  null,
			"8":  null,
			"9":  null,
			"10": null,
			"11": null,
			"12": null,
			"13": null,
			"14": null,
			"15": null,
			"16": null,
			"17": null,
			"18": null,
			"19": null,
			"20": null,
			"21": null,
			"22": null,
			"23": null,
			"24": null,
			"25": null,
			"26": null,
			"27": null,
			"28": null,
类似这样:
禁用官方服务器的规则可以加在下面:
保存后就能使用了
打开任意一个加入了组网的 Tailscale 客户端控制台,输入命令检查网络
tailscale netcheck












