772 字
4 分钟
通过docker compose部署teamspeak--家里云搭建
01. 环境检查与准备
在开始之前,请确保你的系统已安装 Docker 和 Docker Compose。
检查安装情况
docker -vdocker compose version一键安装 Docker (仅限未安装用户)
若提示命令不存在,可使用官方脚本快速安装:
curl -fsSL https://get.docker.com | bash -s docker02. 使用 Docker Compose 部署
通过容器化部署,可以极大简化环境配置和后续的迁移工作。
1. 创建工作目录
mkdir teamspeak && cd teamspeak2. 配置服务
创建 docker-compose.yml 文件:
nano docker-compose.yml将以下配置粘贴进去(注意:这里使用了 latest 标签或指定版本):
services: teamspeak: image: teamspeak:latest restart: always ports: - "9987:9987/udp" # 语音服务 (必须是 UDP) - "10011:10011" # ServerQuery 端口 - "30033:30033" # 文件传输端口 volumes: - ./teamspeak_data:/var/ts3server environment: TS3SERVER_LICENSE: accept # 同意许可协议可以自建数据库,但是使用数据库负载更重,建议几个朋友开黑还是用上面的sqlite
和MariaDB一起部署的配置文件
version: '3.1'services: teamspeak: image: teamspeak restart: always depends_on: - db ports: - 9987:9987/udp # 语音服务 - 30033:30033 # 文件传输端口 - 10011:10011 # ServerQuery 端口
volumes: - ./teamspeak_data:/var/ts3server environment: TS3SERVER_DB_PLUGIN: ts3db_mariadb TS3SERVER_DB_SQLCREATEPATH: create_mariadb TS3SERVER_DB_HOST: db TS3SERVER_DB_USER: root TS3SERVER_DB_PASSWORD: password # 数据库密码 TS3SERVER_DB_NAME: teamspeak TS3SERVER_DB_WAITUNTILREADY: 30 TS3SERVER_LICENSE: accept db: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: password # 数据库密码 MYSQL_DATABASE: teamspeak volumes: - ./teamspeak_data/mysql:/var/lib/mysql3. 启动容器
docker compose up -d4. 获取管理员凭据 (关键步骤)
容器启动后,你需要获取第一次运行生成的管理员 Token。
docker compose logsWARNING在日志中寻找
token和password。 当你第一次连接服务器时,客户端会要求输入该token以获取 Server Admin 权限。请务必保存,丢失后找回较麻烦,需要查询数据库找回。
03. 远程访问:防火墙与 DDNS
由于“家里云”通常位于内网且 IP 动态变化,需要进行以下两步操作:
端口转发 (Port Forwarding)
进入路由器后台,将以下端口映射至运行设备的内网 IP:
| 端口 | 协议 | 用途 |
|---|---|---|
| 9987 | UDP | 核心语音流(必开) |
| 10011 | TCP | 管理查询 |
| 30033 | TCP | 文件传输 |
动态域名解析 (DDNS)
由于家用宽带公网 IP 会变动,建议使用 DDNS 方案:
- 推荐方案:使用
ddns-go镜像配合 Cloudflare 或阿里云 API。 - 访问方式:配置完成后,你和队友只需通过
yourdomain.com:9987即可稳定连接。 - 域名注册: DDNS需要自备域名,可以到namecheap或者腾讯云买一个低价年抛域名,或者通过 https://dash.domain.digitalplat.org/signup?ref=EnelTVCGVW 免费白嫖一个qzz.io的二级域名
04. 常见问题 (FAQ)
- Q:镜像拉取失败怎么办?
- A:由于国内网络环境,建议配置国内 Docker 镜像加速源,或在宿主机全局挂载代理。
- Q:为什么队友听不到我说话?
- A:检查路由器是否放行了 UDP 协议的 9987 端口。TeamSpeak 的语音流走的是 UDP 而非 TCP。
- Q:数据会丢失吗?
- A:我们在
volumes中配置了挂载点,所有频道设置和用户权限都保存在./teamspeak_data文件夹下,即使容器销毁,数据依然保留。
- A:我们在
Happy Gaming! 📢
通过docker compose部署teamspeak--家里云搭建
https://fuwari.vercel.app/posts/20260401-ts-depoly/