在Amazon Web Services(AWS)云服务中使用EC2实例。对于那些不想为正确配置服务器和所有软件包而烦恼的用户,建议使用AWS,因为提供的安装程序会自动完成所有这一切。
使用Kurento团队提供的Docker图像。Docker images允许在任何主机上运行Kurento,例如可以在Fedora或CentOS系统上运行KMS。从理论上讲,在Windows下运行也是可能的,但到目前为止,这种可能性还没有被探索出来,所以您将承担自己的风险。
在任何Ubuntu机器上使用apt-get-install进行本地安装。此方法允许对安装过程进行完全控制。除了安装KMS外,通常还需要安装STUN或TURN服务器,特别是当KMS或其任何客户端位于NAT防火墙后面时。
如果您想尝试夜间构建KMS,那么请转到安装夜间构建的部分。
Kurento项目提供了一个AWS云信息模板文件。它可以用来创建一个EC2实例,该实例提供了运行KMS所需的一切,并且完全预先配置,包括一个Coturn服务器。
请注意,此模板是专门为部署在默认Amazon虚拟私有云(Amazon VPC)网络上而定制的。你需要一个Amazon VPC来部署这个模板。
按照以下步骤使用:
1.访问AWS CloudFormation控制台。
2.单击创建堆栈。
3.查找部分选择模板,然后选择指定Amazon S3模板URL选项。然后,在启用的文本字段中,粘贴以下URL:
https://s3-eu-west-1.amazonaws.com/aws.kurento.org/KMS-Coturn-cfn-6.13.0.yaml
4.执行配置向导的步骤:
4.1条。堆栈名称:堆栈的描述性名称。
4.2条。InstanceType:为实例选择适当的大小。检查不同的。
4.3条。KeyName:您需要事先创建一个RSA密钥才能访问该实例。查看AWS文档了解如何创建一个。
4.4条。SSHLocation:出于安全原因,您可能需要限制SSH通信量,以便只允许来自特定位置的连接。例如,从你的家或办公室。
4.5条。TURN User:TURN服务器的用户名。
4.6条。TURN Password:使用TURN服务器所需的密码。
注释
模板文件包含Coturn作为TURN服务器。此服务器的默认用户/密码为kurento/kurento。您可以选择更改用户名,但请确保更改默认密码。
5.完成堆栈创建过程。等待新创建的堆栈的状态读取CREATE COMPLETE。
6.选择堆栈,然后打开Outputs选项卡,在其中可以找到实例的公共IP地址和应用程序服务器必须使用的Kurento媒体服务器终结点URL。
Kurento的Docker Hub包含从每个KMS版本构建的镜像。只需进入kurento媒体服务器Docker Hub页面,然后按照您在那里找到的说明进行操作。
使用此方法,您将从Kurento项目提供的本地Ubuntu包存储库安装Kurento媒体服务器。KMS明确支持Ubuntu 16.04(Xenial)和Ubuntu 18.04(Bionic)(仅64位)两个长期支持(LTS)版本。
要安装KMS,请从干净的计算机启动(尚未安装KMS)。
注释
要卸载Kurento,可以发出以下命令:
sudo aptitude remove kurento-media-server
我们建议使用aptitude卸载软件包,因为它有更好的删除算法,而且它确实删除了与Kurento一起安装的所有依赖项。apt get没有。
打开终端,跟着执行下面的步骤:
1.Make sure that GnuPG is installed.
sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
gnupg
2.Define what version of Ubuntu is installed in your system.
Run only one of these lines:
# Run ONLY ONE of these lines:
DISTRO="xenial" # KMS for Ubuntu 16.04 (Xenial)
DISTRO="bionic" # KMS for Ubuntu 18.04 (Bionic)
3.Add the Kurento repository to your system configuration.
Run these two commands in the same terminal you used in the previous step:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <
4.Install KMS
sudo apt-get update && sudo apt-get install --yes kurento-media-server
这将安装KMS版本。
服务器包含与Ubuntu init系统集成的服务文件,因此您可以使用以下命令来启动和停止它:
sudo service kurento-media-server start
sudo service kurento-media-server stop
如果Kurento媒体服务器,其应用服务器,或任何客户机被定位在NAT的后面,您需要使用一个Stun或一个Turn服务器来实现NAT Throssaul。在最多的案例中,Stun有效地解决了NAT Issue with most consumer network devices(“Routers”)。然而,它并不是为许多公司网络工作,因此转换服务器是必要的。
从这个角度看,您需要在您的系统配置中打开所有UDP端口,因为Stun会使用任何随机端口,从整个[0-65535]范围。
注释
TURN提供的特性是STUN提供的特性的超集。这意味着如果您已经在使用TURN服务器,则不需要配置STUN服务器
要在KMS中配置STUN服务器,请在打开WebRtcEndpoint 配置文件以下几行的注释, 文件在 /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini:;
stunServerAddress=
stunServerPort=
注释
Be careful since comments inline (with are not allowed for parameters in the configuration files. Thus, the following line is not correct:
stunServerAddress= ; Only IP addresses are supported
… and must be changed to something like this:
; Only IP addresses are supported
stunServerAddress=
The parameter serverIp should be the public IP address of the STUN server. It must be an IP address, not a domain name.
It should be easy to find some public STUN servers that are made available for free. For example:
173.194.66.127:19302
173.194.71.127:19302
74.125.200.127:19302
74.125.204.127:19302
173.194.72.127:19302
74.125.23.127:3478
77.72.174.163:3478
77.72.174.165:3478
77.72.174.167:3478
77.72.174.161:3478
208.97.25.20:3478
62.71.2.168:3478
212.227.67.194:3478
212.227.67.195:3478
107.23.150.92:3478
77.72.169.155:3478
77.72.169.156:3478
77.72.169.164:3478
77.72.169.166:3478
77.72.174.162:3478
77.72.174.164:3478
77.72.174.166:3478
77.72.174.160:3478
54.172.47.69:3478
为了配置一个TRUN 服务在KMS中,请将WebRtcEndpoint 配置文件中的以下几行注释打开,文件路径 /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini:
turnURL=:@:
参数server IP应该是TURN服务器的公共IP地址。它必须是IP地址,而不是域名。
参见下面的Turn配置示例:
turnURL=kurento:[email protected]:3478
…或使用免费访问Numb TURN/STUN服务器:
turnURL=user:[email protected]:3478
请注意,在网络上找到免费的STUN服务器有点容易,因为它们的功能非常有限,让它们免费工作并不昂贵。然而,TURN服务器不会发生这种情况,TURN服务器充当对等端之间的媒体代理,因此维护一个服务器的成本要高得多。
很少能找到一个提供良好性能而免费工作的TURN服务器。通常,每个用户都选择维护自己的私有TURN服务器实例。
Coturn是TURN/STUN服务器的开源实现。在FAQ部分,有一个关于如何安装和配置它的描述。
要验证Kurento进程是否已启动并正在运行,请使用此命令并查找Kurento媒体服务器kurento-media-server进程:
$ ps -fC kurento-media-server
UID PID PPID C STIME TTY TIME CMD
kurento 7688 1 0 13:36 ? 00:00:00 /usr/bin/kurento-media-server
除非另行配置,否则KMS将侦听IPv6端口8888,以通过Kurento协议接收RPC请求并发送RPC响应。使用此命令验证此端口是否打开并侦听传入的数据包:
$ sudo netstat -tupln | grep -e kurento -e 8888
tcp6 0 0 :::8888 :::* LISTEN 7688/kurento-media-
您可以在/etc/kurento/kurento.conf.json文件中更改这些参数。
最后,您可以检查Kurento的RPC WebSocket是否正常,是否能够接收和处理消息。为此,发送一个伪请求并检查响应是否与预期一致:
$ curl -i -N \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Host: 127.0.0.1:8888" \
-H "Origin: 127.0.0.1" \
http://127.0.0.1:8888/kurento
您应该得到与此类似的响应:
HTTP/1.1 500 Internal Server Error
Server: WebSocket++/0.7.0
忽略错误行:这是一个预期的错误,因为curl不谈论Kurento协议。我们刚刚检查了WebSocket++服务器是否已经启动,并在监听连接。如果需要,可以使用类似于healthchecker.sh的脚本(我们在Kurento Docker images中使用的脚本)自动执行此检查。