主题
本文主要描述webrtc开发过程中所需的环境搭建
环境:
运行环境:ubuntu20.04
Node.js环境搭建
安装编译 Node.js 所需的依赖包:
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev
下载 Node.js 源码:
curl -sL https://nodejs.org/dist/v14.19.0/node-v14.19.0.tar.gz -o node-v14.19.0.tar.gz
解压源码包:
tar -xzf node-v14.19.0.tar.gz
cd node-v14.19.0
配置、编译和安装 Node.js:
./configure
sudo make && sudo make install
验证 Node.js 和 npm 的安装
node -v && npm -v
测试
app.js
// 引入 http 模块
const http = require('http');
// 创建一个 HTTP 服务器
const server = http.createServer((req, res) => {
// 设置 HTTP 响应头
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
// 向客户端发送响应
res.end('Hello, World!
');
});
// 指定服务器监听的端口号
const port = 3000;
server.listen(port, () => {
console.log(`服务器正在监听端口 ${port}`);
});
node app.js
coturn搭建
ubuntu版本
安装 COTURN 软件包:
sudo apt-get install coturn
编辑 COTURN 配置文件:
sudo vim /etc/coturn/turnserver.conf
请根据实际情况修改以下配置项:
-
realm
: 设置 TURN 服务器的域名或 realm。 -
user
: 设置 TURN 服务器的用户名和密码。 -
static-auth-secret
: 设置身份验证的密钥。 -
server-name
: 设置 TURN 服务器的域名或 IP 地址。#中继服务器监听的IP地址,NAT环境下直接写私网IP地址,可以指定多个IP
listening-ip= 你自己的内网IP
#中继服务器转发地址(本地IP地址将用于传递数据包的给每个端),和监听地址一样
#一般不开
#relay-ip=你自己的公网ip
#外部IP,NAT环境下直接写:公网IP/私网IP
external-ip=公网ip/内网ip
#cli-password=123456
#打开fingerprint的注释,使用长期证书机制。
fingerprint
#打开密码验证,使用短期证书机制。
lt-cred-mech
#服务器名称,用于OAuth认证,默认和realm相同,直接填公网ip.部分浏览器本段不设可能会引发cors错误。
server-name=公网ip
TURN REST API的长期凭证机制范围,同样设为ip,同server-name.
realm=公网ip
#移动的ICE(MICE)的规范支持。
mobility
#快捷的添加用户是使用user=XXX:XXXX的方式。
user=jbj:123456
启动 COTURN 服务:
sudo systemctl start coturn
centos版本
# 更新系统包
sudo yum update -y
# 安装构建工具和 OpenSSL 开发库
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel
sudo yum install -y coturn
sudo vim /etc/turnserver.conf
#中继服务器监听的IP地址,NAT环境下直接写私网IP地址,可以指定多个IP
listening-ip=172.23.111.111
#中继服务器转发地址(本地IP地址将用于传递数据包的给每个端),和监听地址一样
#relay-ip=8.138.111.111
#外部IP,NAT环境下直接写:公网IP/私网IP
external-ip=8.138.111.111
cli-password=123456
#打开fingerprint的注释,使用长期证书机制。
fingerprint
#打开密码验证,使用短期证书机制。
lt-cred-mech
#服务器名称,用于OAuth认证,默认和realm相同,直接填公网ip.部分浏览器本段不设可能会引发cors错误。
server-name=8.138.111.111
# TURN REST API的长期凭证机制范围,同样设为ip,同server-name.
realm=8.138.111.111
#移动的ICE(MICE)的规范支持。
mobility
#快捷的添加用户是使用user=XXX:XXXX的方式。
user=jbj:123456
cert=/www/server/nginx/webrtc/cert.pem
pkey=/www/server/nginx/webrtc/key.pem
检查 COTURN 服务状态:
#开启
sudo systemctl restart coturn
sudo systemctl status coturn
之后,可以使用 COTURN 服务器提供的 STUN 和 TURN 功能,帮助 WebRTC 等实时通信应用程序解决 NAT 穿透问题。
也可以使用命令行启动
# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中;
# 命令后加 & ,后台执行起来后按
ctr+c,不会停止
sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u jbj:123456 ‐v ‐f ‐r nort.gov &
# 前台启动
sudo turnserver ‐L 0.0.0.0 ‐a ‐u jbj:123456 ‐v ‐f ‐r nort.gov
#然后查看相应的端口号3478是否存在进程
sudo lsof ‐i:3478
sar网络上传下载检测
sudo apt-get install sysstat
#每1s检测一次
sudo sar -n DEV 1
09:03:19 PM
: 这表示输出统计信息的时间是下午 9 点 3 分 19 秒。
网络接口信息:
-
lo
: 这是本地回环接口,用于本机之间的通信。 -
ens33
: 这是主网卡接口。 -
docker0
: 这是 Docker 容器网桥接口。 -
docker_gwbridge
: 这是 Docker 网关桥接口。
网络流量统计指标:
-
rxpck/s
: 每秒接收的数据包数量。 -
txpck/s
: 每秒发送的数据包数量。 -
rxkB/s
: 每秒接收的数据量,单位为 KB。 -
txkB/s
: 每秒发送的数据量,单位为 KB。 -
rxcmp/s
: 每秒接收的压缩数据包数量。 -
txcmp/s
: 每秒发送的压缩数据包数量。 -
rxmcst/s
: 每秒接收的多播数据包数量。 -
%ifutil
: 网卡利用率百分比。
nginx环境搭建
安装 Nginx 编译依赖
sudo apt-get update
sudo apt-get install build-essential libtool zlib1g-dev libpcre3 libpcre3-dev openssl
下载 Nginx 源码
wget http://nginx.org/download/nginx-1.15.8.tar.gz
tar xvzf nginx-1.15.8.tar.gz
cd nginx-1.15.8/
配置 Nginx 编译参数 (支持 HTTPS)
./configure --with-http_ssl_module
编译安装
# 编译 Nginx
make
# 安装 Nginx
sudo make install
查看 Nginx 的编译参数
nginx -V
--with-http_ssl_module 表示 Nginx 已经编译了对 SSL/TLS 协议的支持。
学习资料分享