第一阶段:安装 coturn(不要用老版本)
本示例使用的是4.5.2
推荐方式:APT 安装官方仓库版本(稳定够用)
bash
sudo apt update
sudo apt install coturn -y
安装完成后确认版本:
bash
turnserver -V
第二阶段:开放服务器端口(重点)
进入宝塔 → 安全 → 放行端口:
必须放行:
bash
3478
3478/udp
49152-65535
49152-65535/udp
也可以命令开启
bash
sudo ufw allow 3478
sudo ufw allow 3478/udp
sudo ufw allow 49152:65535/udp
sudo ufw allow 49152:65535/tcp
第三阶段:配置 coturn
编辑配置文件:
bash
vi /etc/turnserver.conf
清空原内容,写入下面内容(根据你服务器公网 IP 修改):
bash
listening-port=443
#alt-listening-port=443
listening-ip=123.129.219.235
realm=im.com
server-name=im.com
external-ip=123.129.219.235
relay-ip=123.129.219.235
min-port=49152
max-port=65535
fingerprint
lt-cred-mech
user=lanz:QAZ123
no-multicast-peers
no-loopback-peers
no-ipv6
log-file=/var/log/turn.log
simple-log
第四阶段:启动 TURN 服务
bash
sudo systemctl enable coturn
sudo systemctl restart coturn
sudo systemctl status coturn
确认状态是:
bash
active (running)

第五阶段:验证 TURN 是否真正可用(关键)
方法 1:查看端口监听
bash
sudo netstat -nltup | grep turn
你应该看到:
3478 在监听
udp 监听正常

方法 2(最重要):浏览器测试 relay
打开这个页面:
👉 https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
填写
bash
turn:123.129.219.235:3478
username: lanz
credential: QAZ123
点击 Gather Candidates
正常结果:
你应该看到:
bash
candidate type: relay
如果出现 relay,说明:
✅ TURN 正常
✅ relay 端口开放
✅ external-ip 配置正确
这里非常重要,好多服务器商禁UDP的,比如亿速华东

这里有个小问题,就是/var/log/turn.log日志多半不会生成
1)先创建文件并给权限
coturn 默认可能以 turnserver 用户运行:
bash
id turnserver 2>/dev/null || true
创建并授权:
bash
touch /var/log/turn.log
chown turnserver:turnserver /var/log/turn.log
chmod 640 /var/log/turn.log