docker部署coturn

前提:配置 hosts:127.0.0.1  x.com

1、coturn配置文件:
 

dh-file=/etc/turnserver/dhparam.pem
#relay-device=br-ec1e0521cea7
#“默认3478”
listening-port=3479
#"默认5349"
tls-listening-port=5350
#"监听地址", 在阿里云虚拟机上,listening和  relay-ip 需要注释调
#listening-ip=0.0.0.0
#"转发地址,可以和external地址一样"
#relay-ip=xxx
#“公网IP”
external-ip=xxx
#“连接使用最小端口”
min-port=65436
#"连接是使用最大端口"
max-port=65535
#“使用证书认证(证书认证和静态身份认证不能同时使用)”
lt-cred-mech
#“用户名1:密码1 ,/etc/turnuserdb.conf中的值”
user=root:{password}
#“指定加密算法”
#sha256
#“database文件名,自动上面生成的文件”
#userdb=/etc/turnuserdb.conf
userdb=/var/lib/turn/turndb
sqlite-userdb=/var/lib/turn/turndb
#"禁止CLI,默认运行"
#no-cli

cli-password=自定义密码
#“域,需要与turnadmin创建认证信息时指定的一样”
realm=x.com

#默认情况下,一个会话的唯一临界值,但它一般拥有无限的生命周期。这个选项,临界值 仅限于600秒,之后,客户端将得到438错误,将不得不重新认证
#stale-nonce
#"指定认证文件"
cert=/etc/turn_server_cert.pem
#"指定认证文件"
pkey=/etc/turn_server_pkey.pem
#"安全设置,禁止环回网卡"
#no-loopback-peers
#"安全设置,禁止知名广播地址"
#no-multicast-peers
#"支持mobility"
# 允许所有 IP(仅用于测试,生产环境需要更严格的设置)
allowed-peer-ip=0.0.0.0-255.255.255.255
#允许回环测试
#allow-loopback-peers


verbose
debugging
log-file=/var/log/turn.log
#syslog

2、dockerfile:

FROM   ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

# 设置时区
ENV TZ=Asia/Shanghai

RUN apt-get update && apt-get install -y \
  vim  \
  wget \
  openssl \
  libssl-dev \
  build-essential \
  sqlite3 \
  libsqlite3-dev \
  libevent-2.1-7 \
  libevent-dev \
  --no-install-recommends \
  coturn \
  curl


ENV OPENSSL_CONF=/dev/null
ENV RANDFILE=/dev/null

RUN openssl req -x509 -newkey rsa:2048 -keyout   /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes \
    -subj "/C=CN/ST=State/L=City/O=Organization/OU=Unit/CN=example.com" \
    >/dev/null 2>&1  # 屏蔽命令执行过程中的提示信息重定向所有输出到 /dev/null

RUN turnadmin -k -u root -r x.com -p pwd 2>/dev/null | head -n 1 > /etc/turnuserdb.conf

RUN mkdir /etc/turnserver
RUN mkdir /etc/coturn
RUN mkdir -p /var/lib/turn && \
    chown -R 777 /var/lib/turn
RUN openssl dhparam -out /etc/turnserver/dhparam.pem 2048
RUN chmod 777 /etc/turnserver/dhparam.pem

# 创建并初始化 SQLite 数据库
RUN sqlite3 /var/lib/turn/turndb "CREATE TABLE  if not exists turnusers_lt (realm varchar(127), name varchar(512), hmackey char(128));" && \
    sqlite3 /var/lib/turn/turndb "CREATE TABLE  if not exists turn_secret (value varchar(127));" && \
    sqlite3 /var/lib/turn/turndb "CREATE TABLE  if not exists allowed_peer_ip (ip_range varchar(256));"


RUN rm -rf /etc/coturn/turnserver.conf
# 复制配置文件
COPY turnserver.conf /etc/coturn/turnserver.conf
# 替换动态密码

# 生成密码并替换配置文件
RUN genPassWord=$(cat /etc/turnuserdb.conf | awk '{print $1}') && \
    sed -i "s/{password}/${genPassWord}/g" /etc/coturn/turnserver.conf && \
  
    grep "${genPassWord}" /etc/coturn/turnserver.conf


RUN chmod 777 /etc/turn_server_cert.pem
RUN chmod 777 /etc/turn_server_pkey.pem
RUN chmod 777 /var/log/turn*.log


# 暴露必要端口
EXPOSE 3479/tcp 3479/udp 5350/tcp 5350/udp
EXPOSE 49152-65535/udp

CMD ["turnserver", "-c", "/etc/coturn/turnserver.conf"]

3、启动,停止脚本:

#!/bin/bash
# 如果服务还在 ,需要先停止:

docker stop x_coturn
docker rm x_coturn
docker rmi x_coturn

#切换到 nginx的dockerfile目录
docker build -f dockerfile-coturn -t x_coturn  .
# 同时指定多个端口和卷
docker run -d \
--restart unless-stopped \
--name x_coturn   \
  -v /usr/share/nginx/html:/usr/share/nginx/html \
   --network=host x_coturn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值