首先声明下我购买的是阿里云的服务器,阿里的服务器默认会有个安全组的配置,也就是只允许通过特定的端口访问该服务器。而webrtc会用到相当多的端口号,所以我直接开放了服务器所有的端口。
当启动Echo Test时,服务器会报错:ICE failed for component 1,这就是遇到net打洞失败的问题了。
要解决该问题需修改配置文件/opt/janus/etc/janus/janus.jcfg
1、修改stun服务器的地址和端口号
国内免费的stun服务器有:
stun1.l.google.com:19302
stun2.l.google.com:19302
stun3.l.google.com:19302
stun4.l.google.com:19302
stun.xten.com:3478
stun.voipbuster.com:3478
stun.sipgate.net:3478
stun.ekiga.net:3478
stun.ideasip.com:3478
stun.schlund.de:3478
stun.voiparound.com:3478
stun.voipbuster.com:3478
stun.voipstunt.com:3478
stun.counterpath.com:3478
stun.1und1.de:3478
stun.gmx.net:3478
stun.callwithus.com:3478
stun.counterpath.net:3478
stun.internetcalls.com:3478
numb.viagenie.ca:3478
随便挑一个放到配置文件:
stun_server = "stun3.l.google.com"
stun_port = 19302
2、配置服务器公网ip地址
nat_1_1_mapping = "xxx.xxx.xxx.xxx"
3、配置网卡名和本地ip地址,通过ifconfig查看
ice_enforce_list = "eth0,xxx.xxx.xxx.xxx"
4、不是虚拟机环境,所以注释掉这行
#ice_ignore_list = "vmnet"