docker_tailscale

在VPS上通过Docker安装Tailscale,推荐使用docker run命令行 或docker-compose两种方式。以下是完整步骤:

一、准备工作

1. 获取Tailscale认证密钥(Auth Key)

访问Tailscale管理后台(https://login.tailscale.com/admin/settings/authkeys),登录后点击"Generate auth key",勾选"Reusable"(建议勾选,避免90天过期),复制生成的密钥(格式如tskey-auth-xxxxx)。

2. 创建持久化目录(可选但推荐)

bash 复制代码
mkdir -p /opt/tailscale/data

此目录用于保存Tailscale状态,防止容器重启后需要重新认证。


二、安装方式一:docker run命令行部署(推荐)

执行以下命令启动容器(将tskey-auth-xxxxx替换为你的实际密钥):

bash 复制代码
docker run -d \
  --name=tailscaled \
  --network=host \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  --restart=unless-stopped \
  -v /opt/tailscale/data:/var/lib/tailscale \
  -v /dev/net/tun:/dev/net/tun \
  -e TS_AUTHKEY=tskey-auth-xxxxx \
  -e TS_STATE_DIR=/var/lib/tailscale \
  tailscale/tailscale:latest

关键参数说明:

  • --network=host:使用主机网络模式,避免NAT问题
  • --cap-add=NET_ADMIN/RAW:授予网络管理权限
  • -v /opt/tailscale/data:/var/lib/tailscale:状态持久化挂载
  • -v /dev/net/tun:/dev/net/tun:挂载TUN设备(必需)
  • -e TS_AUTHKEY:认证密钥(必需)
  • -e TS_STATE_DIR:状态目录(需与挂载路径一致)

三、安装方式二:docker-compose部署(便于管理)

创建docker-compose.yml文件:

yaml 复制代码
version: '3.8'
services:
  tailscale:
    container_name: tailscaled
    image: tailscale/tailscale:latest
    network_mode: host
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - NET_RAW
    volumes:
      - ./data:/var/lib/tailscale  # 相对路径,与yml同目录
      - /dev/net/tun:/dev/net/tun
    environment:
      - TS_AUTHKEY=tskey-auth-xxxxx  # 替换为你的密钥
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_HOSTNAME=omv    #填写主机名 例如 FnOS
      - TS_EXTRA_ARGS=--advertise-exit-node #对外节点,需要设置ip转发

启动服务:

bash 复制代码
docker-compose up -d

四、验证安装

1. 查看容器状态

bash 复制代码
docker ps | grep tailscale

2. 检查Tailscale连接状态

bash 复制代码
docker exec tailscaled tailscale status

如果输出显示"Connected"或设备列表,说明已成功加入网络。

3. 查看管理后台

访问 https://login.tailscale.com/admin/machines,确认VPS设备已出现在设备列表中。


五、高级配置(可选)

1. 配置子网路由(访问VPS所在局域网)

如果VPS需要作为网关访问其所在局域网的其他设备,在启动命令中添加:

bash 复制代码
-e TS_EXTRA_ARGS="--advertise-routes=192.168.1.0/24"  # 替换为实际网段

然后在Tailscale管理后台的对应设备中"Approve routes"。

2. 自定义主机名

添加环境变量:

bash 复制代码
-e TS_HOSTNAME=my-vps

3. 启用Exit Node(出口节点)

添加参数:

bash 复制代码
-e TS_EXTRA_ARGS="--advertise-exit-node"

注意:启用后其他Tailscale节点可通过此VPS上网,请谨慎使用。


六、常见问题

Q1:容器启动失败,权限不足?

  • 确认已添加NET_ADMIN和NET_RAW权限
  • 检查/dev/net/tun设备是否存在(ls /dev/net/tun)

Q2:状态丢失,每次重启需重新认证?

  • 确认持久化目录挂载正确,且TS_STATE_DIR指向挂载路径

Q3:无法访问Tailscale网络?

  • 检查防火墙是否开放必要端口(UDP 41641)
  • 确认Auth Key有效且未过期

七、重要提醒

  1. Auth Key有效期:默认90天,建议生成时勾选"Reusable"或定期更新
  2. 网络模式 :必须使用host模式,否则无法正常工作
  3. 持久化存储:强烈建议配置,否则容器重启后需重新认证
  4. 安全考虑:VPS作为Tailscale节点后,确保系统防火墙和云服务商安全组配置正确

完成以上步骤后,你的VPS已成功加入Tailscale网络,可通过Tailscale分配的100.x.x.x地址访问,或通过Magic DNS(设备名.tailscale.ts.net)访问。

如需进一步配置(如自建DERP服务器、ACL策略等),可参考Tailscale官方文档。

相关推荐
知已难寻18 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb1 天前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
方便面不加香菜1 天前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘1 天前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚1 天前
mall 电商项目完整部署---实战
linux·运维·docker·容器
我不会起名字3222 天前
K8s Pod 反复重启 CrashLoopBackOff:从 exit code 到根因的 5 步排查
云原生·容器·kubernetes·k8s
瑞克-桑切斯2 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
瑞克-桑切斯2 天前
docker mail商城
运维·docker·容器
java_logo2 天前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
不庸.2 天前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan