我有这样的结构:
Web服务器:Apache。它在一个LAN中。它是在一个电脑(Windows 7),它具有公共静态IP。 PC在网络中。
信号服务器:在同一台电脑上的虚拟机(VirtualBox Centos 6)中。
STUN / TURN服务器:Coturn“4.5.0.4”。在同一台电脑上的虚拟机(VirtualBox Centos 6)中。
客户端A:笔记本电脑,Vista。我使用三星移动和USB共享(外部)互联网。移动使用“移动数据”连接到互联网。
客户端B:笔记本电脑,Windows 8(或Windows 10)。我使用三星平板电脑和USB共享(外部)互联网。平板电脑使用“移动数据”连接到互联网。
我运行一个coturn / turnserver像这样:
sudo turnserver -X xxx.xx.xxx.xx (this is my static external ip)我已经创建了端口:
3479 -> 3478 for TCP
3479 -> 3478 for UTP
5348 -> 5349 for TCP
5348 -> 5349 for UTP我使用coturn的默认配置文件进行以下更改:
verbose
fingerprint
lt-cred-mech
realm=mycompany.org
cert=server.crt
pkey=server.key
pkey-pwd=.... (it has been omitted)
log-file=/var/tmp/turnserver.log
simple-log我创建了文件server.crt和server.key,我知道他们是正确的,因为我可以使用Web管理工具,需要他们使用https运行
我创建了管理员用户。我使用以下方法为用户“test4”创建了一个密钥:
sudo turnadmin -k -u test4 -r mycompany.org -p test我用它来创造他:
sudo turnadmin -a -b "/var/db/turndb" -u test4 -r mycompamy.org -p ......在客户端:
var STUN = {
urls: "stun:xxx.xx.xxx.xx:3479" //port forward
};
var TURN = {
urls: [
"turn:xxx.xx.xxx.xx:3479?transport=udp",
"turn:xxx.xx.xxx.xx:3479?transport=tcp",
"turn:xxx.xx.xxx.xx:3479"
],
username : "test4",
credential : "......................", (it's the key. it has been omitted)
};我从coturn / turnserver获得的消息如下所示:
242: handle_udp_packet: New UDP endpoint: local addr 10.0.2.15:3478, remote addr 10.0.2.2:60113
242: session 000000000000000002: realm user <>: incoming packet BINDING processed, success
242: handle_udp_packet: New UDP endpoint: local addr 10.0.2.15:3478, remote addr 10.0.2.2:60075
242: session 000000000000000003: realm user <>: incoming packet BINDING processed, success
242: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000002: realm user <>: incoming packet BINDING processed, success
242: session 000000000000000003: realm user <>: incoming packet BINDING processed, success
242: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
242: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
243: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
243: session 000000000000000003: realm user <>: incoming packet message processed, error 401: Unauthorized
243: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
243: session 000000000000000002: realm user <>: incoming packet message processed, error 401: Unauthorized
243: IPv4. Local relay addr: 10.0.2.15:55037
243: session 000000000000000003: new, realm=, username=, lifetime=600
243: session 000000000000000003: realm user : incoming packet ALLOCATE processed, success
243: IPv4. Local relay addr