MeshRay Docker 部署指南
快速部署
1. 准备配置文件
复制示例配置文件并根据需要修改:
cp ../../configs/config.example.yaml ./config.yaml
2. 修改配置(可选)
编辑 config.yaml 文件,特别是 STUN/TURN 服务器配置:
# STUN 服务器配置
stun:
# 默认 STUN 服务器列表(国内和国外)
default_servers:
# 国内 STUN 服务器
- stun:stun.qq.com:3478
- stun:stun.miwifi.com:3478
- stun:stun.bige0.com:3478
# 国外 STUN 服务器(Google)
- stun:stun.l.google.com:19302
- stun:stun1.l.google.com:19302
- stun:stun2.l.google.com:19302
- stun:stun3.l.google.com:19302
- stun:stun4.l.google.com:19302
# 国外 STUN 服务器(其他)
- stun:stun.cloudflare.com:3478
- stun:stun.nextcloud.com:443
- stun:stun.sipgate.net:3478
- stun:stun.antisip.com:3478
- stun:stun.sonetel.com:3478
- stun:stun.voipgate.com:3478
# STUN 服务器选择策略
# auto: 自动选择(优先国内,延迟低的优先)
# domestic: 仅使用国内服务器
# international: 仅使用国外服务器
# custom: 仅使用自定义服务器
selection_strategy: auto
# 是否启用 STUN 服务器自动测试
auto_test: true
# STUN 测试间隔(秒)
test_interval: 300
# STUN 超时时间(秒)
timeout: 5
# TURN 服务器配置(可选)
turn:
# 默认 TURN 服务器
# 如果配置了 TURN 服务器,将作为 STUN 穿透失败时的回退方案
default_servers: []
# 示例配置:
# - url: turn:turn.example.com:3478
# username: user
# credential: pass
# auth_type: credential
3. 启动服务
# 创建必要目录
mkdir -p data logs
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
4. 访问服务
打开浏览器访问:http://your-server-ip:9531
配置说明
STUN 服务器配置
国内 STUN 服务器(推荐)
stun:stun.qq.com:3478- 腾讯 STUN 服务器stun:stun.miwifi.com:3478- 小米 STUN 服务器stun:stun.bige0.com:3478- 国内公共 STUN 服务器
国外 STUN 服务器
stun:stun.l.google.com:19302- Google STUN 服务器stun:stun.cloudflare.com:3478- Cloudflare STUN 服务器stun:stun.nextcloud.com:443- Nextcloud STUN 服务器
选择策略
auto: 自动选择(优先国内,延迟低的优先)domestic: 仅使用国内服务器(适合国内用户)international: 仅使用国外服务器(适合海外用户)custom: 仅使用自定义服务器
TURN 服务器配置
TURN 服务器用于 STUN 穿透失败时的中继方案,支持以下鉴权方式:
credential: 用户名密码(自建 coturn)token: Token(商业服务如 Twilio、Xirsys)secret: Shared Secret(信令签发)
常用命令
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 查看日志
docker-compose logs -f
# 查看服务状态
docker-compose ps
# 更新镜像
docker-compose pull
docker-compose up -d
故障排查
1. 服务无法启动
# 查看日志
docker-compose logs
# 检查配置文件
cat config.yaml
2. STUN 穿透失败
# 检查 STUN 服务器配置
grep -A 20 "stun:" config.yaml
# 修改选择策略
# 将 selection_strategy 改为 domestic 或 international
3. 端口冲突
# 修改 docker-compose.yml 中的端口映射
ports:
- "9532:9531" # 改为其他端口
高级配置
使用 host 网络模式(推荐)
对于需要更好网络性能的场景,可以使用 host 网络模式:
- 编辑
docker-compose.yml - 取消注释
network_mode: host - 注释掉
ports配置 - 重启服务
services:
meshray:
# ...
network_mode: host
# ports:
# - "9531:9531"
自定义 STUN 服务器
如果需要使用自己的 STUN 服务器:
stun:
default_servers:
- stun:your-stun-server.com:3478
selection_strategy: custom
配置 TURN 服务器
turn:
default_servers:
- url: turn:your-turn-server.com:3478
username: your-username
credential: your-password
auth_type: credential
注意事项
- 首次启动:首次启动会自动生成管理员密码,请查看日志获取
- 数据持久化:配置文件、数据和日志都通过 volume 挂载,确保数据安全
- 网络性能:建议使用 host 网络模式以获得最佳性能
- STUN 选择:国内用户建议使用
domestic策略,海外用户建议使用international策略