文档说明:只记录关键地方;
试验环境: linux debian 11
目标:构建能启动的 coturn
coturn 服务器完整的实现了 STUN/TURN/ICE 协议
免安装版 coturn
| |
| curl -fSL https://github.com/jingjingxyk/build-static-coturn/blob/main/setup-coturn-runtime.sh?raw=true | bash |
| |
基础环境: docker
构建脚本 build-docker.sh
| #!/bin/bash |
| |
| set -e |
| export DOCKER_BUILDKIT=1 |
| |
| TIME=`date "+%Y%m%d"` |
| VERSION="dev-"${TIME} |
| IMAGE="registry.cn-beijing.aliyuncs.com/jingjingxyk-public/app:coturn-dev-${VERSION}" |
| |
| PROXY_URL=${2:+'http://192.168.3.26:8015'} |
| |
| |
| |
| |
| docker build -t "$IMAGE" -f Dockerfile . --progress=plain |
| docker push "$IMAGE" |
| |
Dockerfile
| FROM debian:buster |
| |
| ENV DEBIAN_FRONTEND=noninteractive |
| |
| |
| |
| RUN test ! -f /etc/apt/source.list.save && cp /etc/apt/sources.list /etc/apt/sources.list.save |
| RUN sed -i "s@deb.debian.org@mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list |
| RUN sed -i "s@security.debian.org@mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list |
| |
| |
| RUN apt update -y |
| RUN apt install -y sudo |
| RUN sudo apt install -y \ |
| ca-certificates \ |
| git wget curl \ |
| gcc \ |
| openssl libssl-dev \ |
| sqlite \ |
| libsqlite-dev \ |
| libevent-dev \ |
| libpq-dev \ |
| libmariadbd-dev libmariadb-dev \ |
| libevent-dev |
| |
| |
| RUN sudo apt install -y \ |
| libbson-dev libmongoc-dev \ |
| libhiredis-dev |
| RUN sudo apt install -y -y make cmake g++ gdebi-core |
| RUN sudo apt install -y initscripts net-tools pkg-config sqlite3 libsqlite3-dev |
| |
| ENV BUILD_PREFIX /usr/local/src |
| ENV INSTALL_PREFIX /usr/local |
| WORKDIR $BUILD_PREFIX |
| |
| ARG PROXY_URL |
| ENV http_proxy=$PROXY_URL |
| ENV https_proxy=$PROXY_URL |
| |
| RUN git clone https://github.com/coturn/coturn.git |
| |
| ENV http_proxy='' |
| ENV https_proxy='' |
| |
| |
| |
| WORKDIR ${BUILD_PREFIX}/coturn |
| RUN ./configure -h |
| RUN make |
| RUN make install |
| |
| |
| |
| |
| EXPOSE 3478 3479 3478/udp 3479/udp 80 80/udp |
| EXPOSE 5349 5350 5349/udp 5350/udp 443 443/udp |
| |
| EXPOSE 5766 |
| |
| EXPOSE 49152-65535 49152-65535/udp |
| |
| |
| |
| RUN cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf |
| WORKDIR ${INSTALL_PREFIX} |
| |
| |
| |
| CMD ${INSTALL_PREFIX}/bin/turnserver |
| |
| |
| |
| |
| |
| |
使用
| version: "3" |
| services: |
| coturn: |
| image: wenba100xie/coturn:dev-20220901 |
| restart: always |
| volumes: |
| - ${PWD}/coturn/turnserver.conf:/usr/local/etc/turnserver.conf |
| - ${PWD}/turndb/:/usr/local/var/db/ |
| - /data/tls/:/tls/ |
| sysctls: |
| net.ipv6.conf.all.disable_ipv6: 1 |
| hostname: coturn |
| container_name: coturn |
| command: /usr/local/bin/turnserver |
| ports: |
| |
| - "3478:3478" |
| - "3478:3478/udp" |
| networks: |
| - default |
| |
获得coturn 容器默认配置 get-cotrun-conf.sh
| #!/bin/bash |
| set -uex |
| |
| __CURRENT__=`pwd` |
| __DIR__=$(cd "$(dirname "$0")";pwd) |
| cd ${__DIR__} |
| |
| mkdir -p conf |
| container_id=$(docker create coturn/coturn) |
| docker cp $container_id:/usr/local/src/coturn/examples/etc/turnserver.conf conf/turnserver.conf |
| docker cp $container_id:/usr/local/etc/turnserver.conf.default conf/turnserver.conf.default |
| docker rm $container_id |
| |
静态编译 coturn linux 版 (免安装版 可以直接启动 )
coturn-vlatest-static-linux-x64.tar.xz
参考文档
- coturn INSTALL
- coturn Dockerfile
- WebRTC samples
- WebRTC source code
- github coturn
- available stun servers
- shell之变量默认值
- Dockerfile
- 自建拉取registry.k8s.io、k8s.gcr.io、gcr.io、quay.io、ghcr.io 容器镜像的服务
- 静态编译 coturn
- NAT介绍以及穿透各种类型nat的技术实现包括对称型nat
- [译] NAT 穿透是如何工作的:技术原理及企业级实践](https://www.cnblogs.com/colin-vio/p/13323228.html)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术