一、概述

  • Tailscale是目前比较流行的异地组网工具,和很多其它工具一样,需要依赖客户端,并且还需要使用指定平台账户进行注册和登录,目前官方支持使用谷歌账号、微软账号、GitHub账号、Apple账号、OpenID Connect (OIDC)的方式。
  • 官方提供下载链接Download · Tsilscale和安装方法,支持的客户端包含macOS、IOS、Windows、Linux、Android。
  • 本教程重点讲解使用Docker容器化的方式部署tailscale客户端

二、使用容器搭建tailscale

这里我指定了v1.66.4的稳定版本,可根据自己的需求修改版本号

docker run -d \
--name=ts \
--restart=always \
--network=host \
-v /var/lib:/var/lib \
-v /dev/net/tun:/dev/net/tun \
-v /var/run/tailscale/:/var/run/tailscale/ \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--env TS_STATE_DIR=/etc/ts \
--env TS_SOCKET=/var/run/tailscale/tailscaled.sock \
--env TS_USERSPACE=false \
--env TS_ROUTES={网段} \
--env TS_AUTHKEY=1fb8f4f9d4b0c39eba4588d0717c61ec686b1a80c3db3a2c \
--env TS_EXTRA_ARGS="--login-server={登录地址}  --accept-routes --accept-dns=true  " \
tailscale/tailscale:v1.66.4
  • 参数说明

    • --network=host 容器网络设置为共享主机网络
    • -v /var/lib:/var/lib 提供持久性存储
    • -v /dev/net/tun:/dev/net/tun 容器必须配备TUN设备
    • --cap-add 用于在容器运行时为容器添加特权
    • -v /var/run/tailscale/:/var/run/tailscale/ 自建derp服务必要参数
    • --env TS_STATE_DIR 存储tailscaled状态的目录
    • --env TS_SOCKET Unix 套接字路径
    • --env TS_USERSPACE 启用用户空间网络
    • --env TS_ROUTES 通告子网路由,等同于tailscale set --advertise-routes
    • --env TS_AUTHKEY 预认证密钥
    • --env TS_EXTRA_ARGS 其它任何CLI参数,比如--login-server={登录地址,headscale协调控制器使用} --accept-dns=false--accept-routes
  • 查看tailscale状态

    • docker exec -it ts tailscale status
    • docker exec -it ts tailscale netcheck

三、参考链接

最后修改:2024 年 06 月 26 日
如果觉得我的文章对你有用,请随意赞赏