|
穿越NAT和防火墙的服务器
NAT主要负责维护内部ip地址和端口号与外部ip地址和端口号之间的映射表
STUN服务器:用来取外网地址的
TURN服务器:在P2P失败时进行转发的
ICE:即交互式连通建立方式。并非一种新的协议,它通过综合利用现有NAT穿透协议,以一种更有效的方式来组织会话建立过程,使之在不增加任何延迟同时比STUN等单一协议更具有健壮性、灵活性。
github 上开源的穿透服务器有很多 推荐使用coturn
安装前准备
在安装coturn前 需要安装必须的依赖库 我使用的是ubutnu16.04安装coutrn
apt-get install libssl-dev
apt-get install libevent-dev
apt-get install libpq-dev
apt-get install mysql-client
apt-get install libmysqlclient-dev
apt-get install libhiredis-dev
安装coturn
git clone https://github.com/coturn/coturn.git
cd coturn
./configure
make
make install
安装完成后可以在**/usr/local/bin**目录下出现如下几个文件 说明安装完成
turnadmin
turnserver
turnutils_oauth
turnutils_peer
turnutils_natdiscovery
turnutils_stunclient
turnutils_uclient
配置coturn
生成证书文件
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
生成MD5密码 (记得保存 后后面或使用到)
turnadmin -k -u test -r test -p test
#0xaeeebbfd75d1499d24388f5b9b10e0ef
创建配置文件
vi /etc/turnuserdb.conf
test:0xaeeebbfd75d1499d24388f5b9b10e0ef
修改配置文件
vi /usr/local/etc/turnserver.conf
relay-device=eth0
listening-ip=172.xx.xx.xx #内网ip
listening-port=3478
tls-listening-port=5349
relay-ip=172.xx.xx.xx
external-ip=120.xx.xx.xx #外网ip
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile=”/var/run/turnserver.pid”
min-port=49152
max-port=65535
user=test:0xaeeebbfd75d1499d24388f5b9b10e0ef
userdb=/etc/turnuserdb.conf
运行coturn
turnserver -o -a -f –user=test :test -r test
浏览器访问 http://外网ip:3478 就可以看见服务已经运行起来了

如果 服务没有启动起来,配置文件有没有问题的话 那就是端口的开放权限没有给全 3478 需要tcp/udp都开放出来 |