绿联UGOS Pro借助Docker Compose轻松安装Tailscale并支持头scale

访客 3C数码 5.3K+
绿联UGOS Pro借助Docker Compose安装了Tailscale,并可实现对头 scale的访问。

一、环境描述

理论上,本教程的核心思想适用于所有可以使用docker的场景。但是我只有一台绿联NAS设备,只能作为实验环境。

UGOS Pro版本:1.0.0.0980

Docker Compose版本:UGOS Pro默认安装了Docker Compose。

UGOS Pro附带docker compose II。申请Tailscale认证密钥。

为了方便以后的tailscale认证登录,采用Auth key认证方式。

登录tailscale官网,点击设置-密钥-生成授权密钥...

Tailscale官网申请Auth key_1。在弹出的界面中,Description填入你喜欢的名字,然后点击Generate key。AuthKey只会显示一次,复制保存后可以关闭。Tailscale官网申请了Auth key_2 III。正在提取docker图像。

在镜像仓库输入tailscale,选择tailscale/tailscale下载,默认最新镜像。

拉动尾秤图像4。创建tailscale文件夹并获取docker真实目录。

当UGOS Pro开启docker功能时,会自动创建一个docker文件夹。在共享文件夹中找到docker文件夹,并在其中创建一个tailscale文件夹。

然后在我们创建的tailscale中创建一个状态文件夹,用于以后存储tailscale的状态,保证之前配置的状态在Tailscale容器重启时保持不变。

创建与tailscale容器相关的文件夹,以获取docker目录的真实路径。右键单击我们创建的tailscale文件夹以查看属性。在Properties-General-Location末尾获取docker directory _1的真实路径,点击复制按钮,然后粘贴到任意位置。可以看到tailscale的真实路径类似于/volume[x]/docker/tailscale。

如图,所以我的docker真实路径是/volume1/docker。

获取docker directory _2 V的真实路径,用root用户登录SSH。

在UGOS Pro的控制面板中打开SSH登录后,用自己的用户名和密码登录SSH,输入sudo -i,然后输入自己的用户密码切换root权限。

更多信息请参考矿神教程:https://imnks.com/10101.html.

用root用户VI登录SSH。通过Docker合成创建容器。

以下是docker-compose.yaml的描述,先阅读以下几点,然后复制到ssh中执行。

第1行:在真实路径中将volume1改为volume[x]。注意,实际上没有符号[]。

第9行:用AUTHKEY登录,替换成自己的AUTHKEY;如果您正在使用headscale,请填写由headscale生成的auth key。

第10行:如果我们想用我们自己的头标,删除符号# before - login并用我们自己的服务器地址替换http://headscaleserver.com。

第12行:如果需要开启内网转发,访问内网其他设备,删除TS_ROUTES前的符号#,将192.168.10.0/24改为自己的内网网段。

cat & gt/volume 1/docker/docker-compose . YAML <

服务:

尾秤:

图片:tailscale/tailscale:最新

容器名称:尾秤

network _ mode:“host”#使用本地网络,方便连接各个子网的客户端。

Privileged: true #打开特权模式。

环境:

TS _ AUTHKEY:TS key-auth-kgr 12345 ym 11 ntrl-x 67890 qpnlslxgpnfh 4 amstyaxixihaha

TS _ EXTRA _ ARGS:-netfilter-mode = off #-log in-server = http://headscaleserver . com

ts _ state _ dir:/var/lib/tailscale #存储tailscale状态的目录,然后映射到主机,以确保容器重启时配置保持不变。

#TS_ROUTES: 192.168.10.0/24

TS_HOSTNAME: ugospro #节点名,可以定制。

体积:

-./tailscale/state:/var/lib/tail scale #将tail scale状态目录映射到我们创建的tailscale/state。

- /dev/net/tun:/dev/net/tun

-/usr/share/zoneinfo/Asia/Shanghai:/etc/local time:ro

cap_add:

-网络管理

- sys_module

重新启动:除非-停止

文件结束

运行这个命令后,docker目录中会创建一个docker-compose.yaml文件,这个文件的内容就是上面第2到21行的内容。

创建docker-compose.yaml文件SSH,通过cd命令进入docker目录。以下命令的volume1被更改为实际路径中的卷[x]。注意,实际上没有[]符号。

cd /volume1/docker

cd命令进入docker目录。在docker目录中,输入docker compose up -d来启动容器。启动tailscale容器,返回UGOS Pro中的Web界面,打开docker应用,可以看到tailscale已经启动并正在运行。Tailscale容器运行成功。7.允许tailscale登录。

回到tailscale官网,可以看到在Machines一栏中已经连接了ugospro。点击Connected右边的三个点,然后先点击Disable key expiry,这样UGOS Pro上的tailscale登录就永远不会超时。然后单击编辑路线设置...,在弹出的界面中勾选自己的内网段,然后点击保存,这样就允许内网转发了。

允许 tailscale 登录_1允许 tailscale 登录_2

八、测试允许tailscale登录_1 VIII。试验

测试网络描述:工作室电脑使用电信宽带;绿联NAS放在家里,用的是移动宽带。

使用官方尾秤的首次测试。

Windows打开终端,进入tailscale状态,可以看到ugospro在线,其中relay表示取了官方的derp节点,没有钻成功洞。

然后进入平100.86.190.34,在这里100.86.190.34被tailscale分配到IP。你看延迟还是很大的,但也不是没用吧?

最后输入ping 192.168.10.1,其中192.168.10.1是我的路由器的IP。延迟稍微好一点,说明网络链接稳定。

尾秤测试,然后用自建头秤测试。

在Windows终端进入tailscale状态,红框显示direct,表示自建headscale成功。两者之间为什么会有区别,还没有研究透彻。

输入ping 192.168.10.1,发现延迟只有10+ms,应该是直连。

头标测试九,终于

最后,我想分享一些小技巧。

1.如果要从官方尾秤切换到自建头秤,或者从自建头秤切换到尾秤。我做的是,

先停止当前的tailscale,然后在UGOS Pro的docker管理界面中删除tailscale容器。删除时注意不要检查任何目录数据,直接点击确认删除即可。

转到之前创建的/docker/tailscale/state,选择里面的所有内容,右键删除。用tailscale或headscale的键替换docker目录中创建的docker-compose.yaml中的TS_AUTHKEY。有各种替换方法。可以在UGOS Pro的应用中心安装一个文本编辑器,然后双击docker-compose.yaml,用文本编辑器打开,找到TS_AUTHKEY,替换即可。当然高手可以通过命令行通过SSH修改。docker-compose.yaml文件修改完成后,SSH连接到NAS。参考步骤6,cd命令进入docker目录,执行docker compose up -d命令重新创建并运行tailscale容器。之后再去tailscale官方后台或者自建headscale后台允许登录和子网转发。

2.2 .环境下的TS_EXTRA_ARGS。docker-compose.yaml可以填充很多关键字,比如你想用NAS作为exit-node,可以在TS_EXTRA_ARGS中添加关键字-advertisement-exit-node。

有关TS_EXTRA_ARGS的更多信息,请参考官方指南:使用Docker尾秤文档的尾秤。

关于在docker下使用tailscale的更多信息,还可以参见官方手册:使用Docker Tail Scale与Docker Tail Scale Docs。

3.关于headscale的构建,可以参考这个教程,已经很详细了:https://zhuanlan.zhihu.com/p/689675885.

有一点需要注意,就是在下载headscale的配置文件模板config.yaml时,要下载你拉的docker镜像对应的config.yaml版本,否则headscale无法正常启动。所以在拉headscale的时候建议拉指定的版本,然后去代码仓库找版本对应的Tags下的config.yaml文件。

作者声明本文无利益关系,欢迎价值朋友理性交流和谐讨论~

标签: 容器

抱歉,评论功能暂时关闭!