诗筝彩绮
诗筝彩绮
发布于 2026-07-10 / 5 阅读
0
0

Coturn 安装与配置

安装 Coturn

直接安装

apt install coturn

源码安装

1. 安装依赖

  • 在安装Coturn之前,需要安装一些依赖库。以下是Ubuntu系统下的依赖安装命令:
sudo apt-get update
sudo apt-get install libssl-dev libevent-dev

2. 下载Coturn

  • 从Coturn的官方网站下载最新版本的源代码:
git clone https://github.com/coturn/coturn
cd coturn

3. 编译与安装

  • 编译Coturn
./configure
make

4. 安装Coturn

sudo make install

修改配置文件

  • 打开配置文件
vim /etc/turnserver.conf
  • 修改以下内容
listening-port=3478                         # 取消注释此行
listening-device=eth0                       # 取消注释此行
tls-listening-port=5349                     # 取消注释此行
listening-ip=内网IP                          # 取消注释并修改此行
relay-ip=内网IP                              # 取消注释并修改此行
external-ip=公网IP                           # 取消注释并修改此行
lt-cred-mech                                # 取消注释此行
user=your_turn_username:your_turn_password  # 取消注释并修改此行
realm=公网IP或域名                            # 取消注释并修改此行
cert=/usr/local/etc/turn_server_cert.pem    # 取消注释并修改此行
pkey=/usr/local/etc/turn_server_pkey.pem    # 取消注释并修改此行
no-cli                                      # 取消注释此行

配置要点

  • listening-ip:监听IP地址和端口,用于客户端连接。
  • listening-device:如果机器上有多块网卡,注意listening-ip与listening-device要匹配
  • log-file:日志文件路径,用于记录Coturn的运行状态。
  • realm:域名,用于用户认证。
  • user:用户名和密码,用于认证。
  • cert和key:SSL证书和私钥,用于TLS加密通信。

开放防火墙

  • tcp/3478
  • udp/3478
  • tcp/49152-65535
  • udp/49152-65535

配置开机自启

systemctl 系统托管对 coturn 的代码有问题,需要进行修改

1. 打开自启动配置文件

vim /usr/lib/systemd/system/coturn.service

2. 将文本内容替换为以下内容

[Unit]
Description=coTURN STUN/TURN Server
Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)
After=network.target

[Service]
# User=turnserver
# Group=turnserver
Type=notify
ExecStart=/usr/bin/turnserver -c /etc/turnserver.conf --pidfile=
# ExecStart=/bin/bash -c /usr/bin/coturn 
Restart=on-failure
InaccessibleDirectories=/home
PrivateTmp=yes

[Install]
WantedBy=multi-user.target

3. 保存修改并重启

注意:不要 sudo

systemctl daemon-reload
systemctl restart coturn.service

开机自启

注意:不要 sudo

systemctl enable start coturn.service

可用性检测

使用 MySQL 管理用户

使 Coturn 支持 MySQL

打开配置文件

vim /etc/turnserver.conf

编辑 MySQL 相关配置

mysql-userdb="host=内网IP dbname=your_db_name user=your_db_user password=your_db_password port=3306 connect_timeout=30 read_timeout=30"

重启 coturn

systemctl restart coturn.service

增删用户

添加用户(如果是 -A,则是添加admin)

turnadmin -a -M "host=127.0.0.1 dbname=test_db user=test_user password=test_password" -u new_user -r new.realm.com -p new_password

删除用户(如果是 -D,则是删除admin)

turnadmin -d -M "host=127.0.0.1 dbname=test_db user=test_user password=test_password" -u old_user -r old.realm.com
  • 其中 -M 是指 MySQL,-u 用户名,-r 域名或IP地址,-p 密码

在weblink中调用turn服务器

turn:new.realm.com|new_user|new_password|longterm

附加,coturn 需要的 MySQL 建表代码

CREATE TABLE turnusers_lt (
    realm varchar(127) default '',
    name varchar(512),
    hmackey char(128),
    PRIMARY KEY (realm,name)
);

CREATE TABLE turn_secret (
	realm varchar(127) default '',
	value varchar(256),
	primary key (realm,value)
);

CREATE TABLE allowed_peer_ip (
	realm varchar(127) default '',
	ip_range varchar(256),
	primary key (realm,ip_range)
);

CREATE TABLE denied_peer_ip (
	realm varchar(127) default '',
	ip_range varchar(256),
	primary key (realm,ip_range)
);

CREATE TABLE turn_origin_to_realm (
	origin varchar(127),
	realm varchar(127),
	primary key (origin)
);

CREATE TABLE turn_realm_option (
	realm varchar(127) default '',
	opt varchar(32),
	value varchar(128),
	primary key (realm,opt)
);

CREATE TABLE oauth_key (
	kid varchar(128),
	ikm_key varchar(256),
	timestamp bigint default 0,
	lifetime integer default 0,
	as_rs_alg varchar(64) default '',
	realm varchar(127),
	primary key (kid)
);

CREATE TABLE admin_user (
	name varchar(32),
	realm varchar(127),
	password varchar(127),
	primary key (name)
);

评论