日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stun server、turn server、coturn server安装与使用

發布時間:2024/2/28 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stun server、turn server、coturn server安装与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前提:雙網卡服務器

stun

什么STUN

STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP簡單穿越)是一種網絡協議,它允許位于NAT(或多重NAT)后的客戶 端找出自己的公網地址,查出自己位于哪種類型的NAT之后以及NAT為某一個本地端口所綁定的Internet端端口。這些信息被用來在兩個同時處于 NAT路由器之后的主機之間建立UDP通信。該協議由RFC 3489定義。目前RFC 3489協議已被RFC 5389協議所取代,新的協議中,將STUN定義為一個協助穿越NAT的工具,并不獨立提供穿越的解決方案。它還有升級版本RFC 7350,目前正在完善中。

下載、安裝stun

上github下載源碼包
https://github.com/jselbie/stunserver
更新系統
yum update -y

解壓文件后進入目錄
安裝依賴
sudo yum groupinstall "Development Tools" # For g++, make, et. al.
sudo yum install boost-devel # For Boost
sudo yum install openssl-devel # For OpenSSL

編譯

make

make后會生成stunserver、stunclient、stuntestcdoe三個文件

stunserver是server文件
stunclient是客戶端文件

查看幫助信息
./stunserver --help

--mode 指定模式。有"basic"和"full"兩種模式
--primaryinterface指定第一個監聽的本機ip地址或網卡
--altinterface 指定第二個監聽的本機ip地址或網卡
--primaryport 指定第一個監聽的端口(默認3478)
--altport 指定第一個監聽的端口(默認3479)
--family 網絡類型,4表示IPV4,6表示IPV6
--protocol 指定網絡連接類型,udp或tcp,默認為udp
--maxconn 設置最大連接數
--verbosity 設置日志級別,0最少,1其次,2較多,3最多。默認0
--ddp 分布式拒絕訪問。開啟此選項時如果客戶端以過多的數據包沖擊服務器端將被短時間的拒絕訪問,該IP后續的數據庫將被刪除。
--primaryadvertised
--altadvertised --primaryadvertised和--altadvertised用于設置公網ip,必須使用full模式,僅當你的stunserver運行在NAT后面的私有環境時使用。如經過內外端口映射,經過服務轉發等。
--configfile 指定配置文件
--help 查看幫助信息

經過防火墻地址轉換后的用法:
nohup ./stunserver --mode full --primaryinterface IP1 --altinterface IP2 --primaryadvertised public IP --altadvertised public IP

turn server

官方網址:http://turnserver.sourceforge.net/index.php?n=Main.HomePage

什么是turn

百度百科
TURN協議允許NAT或者防火墻后面的對象可以通過TCP或者UDP接收到數據。這在使用了對稱式的NAT(或者防火墻)的網絡中尤其具有實用價值 。
TURN的全稱為Traversal Using Relay NAT,即通過Relay方式穿越NAT,TURN應用模型通過分配TURNServer的地址和端口作為客戶端對外的接受地址和端口,即私網用戶發出的報文都要經過TURNServer進行Relay轉發,這種方式應用模型除了具有STUN方式的優點外,還解決了STUN應用無法穿透對稱NAT(SymmetricNAT)以及類似的Firewall設備的缺陷,即無論企業網/駐地網出口為哪種類型的NAT/FW,都可以實現NAT的穿透,同時TURN支持基于TCP的應用,如H323協議。此外TURNServer控制分配地址和端口,能分配RTP/RTCP地址對(RTCP端口號為RTP端口號加1)作為本端客戶的接受地址,避免了STUN應用模型下出口NAT對RTP/RTCP地址端口號的任意分配,使得客戶端無法收到對端發過來的RTCP報文(對端發RTCP報文時,目的端口號缺省按RTP端口號加1發送)

使用環境:
內網openfire服務器提供視頻服務,用stunserver轉發外網。。。。。。反正就是stunserver不行,無法穿透,無法保證視頻通話的成功率,就用turnserver了

下載頁面
http://turnserver.sourceforge.net/index.php?n=Main.Download

安裝

安裝confuse依賴庫
wget?http://savannah.spinellicreations.com/confuse/confuse-2.7.tar.gz
tar axf confuse-2.7.tar.gz
cd confuse-2.7
./configure
make && make install && echo $?

安裝libconfuse-devel
yum install libconfuse-devel -y

將下載的turnserver-0.7.3.tar.bz2 傳上來,然后解壓
tar axf turnserver-0.7.3.tar.bz2
編譯安裝
cd turnserver-0.7.3
./configure
make && make install && echo $?
生成并修改配置文件
cp extra/turnserver.conf.template /etc/turnserver.conf
vim /etc/turnserver.conf

#"修改轉發地址,公網地址"listen_address ={ “8.8.8.8”,"114.114.114.114" } #“修改監聽端口,默認3478”udp_port = 3478tcp_port = 3478 #“使用后臺服務,默認為falsedaemon = true #"設置網絡限制,0表示無限制"restricted_bandwidth = 0 #“指定認證文件” account_file = "/etc/turnusers.txt"

生成并修改認證文件
cp extra/turnusers.txt.template /etc/turnusers.txt

toto:password:domain.org:authorized

toto是默認用戶,password是默認密碼,后面的是固定格式,修改用戶名和密碼即可

coturn (turn)(推薦使用)(建議使用centos7及以上版本安裝)

coturn是turn的升級版,同一作者,老的turn作者已經不再維護,下的coturn下載需要去githup,建議使用coturn

githup地址:https://github.com/coturn/coturn/tree/master

安裝coturn

下載好后進入安裝目錄
查看INSTALL文件,里面安裝過程講解的非常詳細(啰嗦)
安裝依賴

yum install gcc gcc-c++ openssl-devel libevent2 libevent2-devel

如果報錯 libevent2 和 libevent沖突就卸載 libevent裝libevent2,如果yum源沒有libevent2就去下rpm包或源碼包,如果還有其他報錯就按報錯處理
編譯安裝
使用c++代替c編譯

CC=g++ ./configure make && echo $?

安裝完成后會生成(centos7會在coturn的安裝目錄下的bin目錄生成執行文件)
/usr/local/bin/turnadmin
/usr/local/bin/turnserver?
/usr/local/bin/turnutils_natdiscovery
/usr/local/bin/turnutils_oauth
/usr/local/bin/turnutils_peer
/usr/local/bin/turnutils_stunclient
/usr/local/bin/turnutils_uclient

centos7修改環境變量
vim /etc/profile
#COTURN

export COTURN_HOME=/coturn-master export PATH=$PATH:${COTURN_HOME}/bin

source /etc/profile

配置

生成證書

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 USERNAME -r REALM -p PASSWORD >/etc/turnuserdb.conf

生成主配置文件

cp examples/etc/turnserver.conf /etc/turnserver.conf

修改配置文件(按照里面的說明逐個添加即可)(一下是我的配置)

listening-port=PORT #“默認3478” tls-listening-port=PORT #"默認5349"listening-ip=IP1 #"監聽地址" relay-ip=IP2 #"轉發地址,可以和監聽地址一樣" external-ip=public #“公網IP” min-port=48000 #“連接使用最小端口” max-port=49000 #"連接是使用最大端口"lt-cred-mech #“使用證書認證(證書認證和靜態身份認證不能同時使用)” # static-auth-secret=USERNAME #“使用靜態身份認證,后面指定的是用戶名” user=USERNAME:PASSWORD #”用戶名1:密碼1“ user=USERNAME:MD5 #“用戶名2:密碼2(密碼2為)/etc/turnuserdb.conf中的值” sha256 #“指定加密算法” userdb=/etc/turnuserdb.conf #“database文件名,自動上面生成的文件” realm=REALM #“域,需要與turnadmin創建認證信息時指定的一樣” stale-nonce #"nonce生命周期,如果像這里不指定具體的值則使用默認值600(秒)" cert=/etc/turn_server_cert.pem #"指定認證文件" pkey=/etc/turn_server_pkey.pem #"指定認證文件"no-loopback-peers #"安全設置,禁止環回網卡" no-multicast-peers #"安全設置,禁止知名廣播地址" mobility #"支持mobility" no-cli #"禁止CLI,默認運行"

啟動服務

/usr/local/bin/turnserver -L LISTEN-IP -o -a -b /etc/turnuserdb.conf -f -r REALM

連接測試

turnutils_uclient -u USERNAME -w PASSWORD -p PORT -v LISTEN-ADDRESS

-u 指定用戶 -w密碼-p端口 -v使用Verbose,最后指定監聽端口

單網卡配置方式

vim /etc/turnserver.conf

listening-port=3478 listening-ip=IP #"私網ip" external-ip=public/private #"公網ip" min-port=49152 #“連接使用最小端口” max-port=65535 #“連接使用最大端口”lt-cred-mech user=USERNAME1:PASSWORD1 user=USERNAME2:PASSWORD2 userdb=/etc/turnuserdb.conf realm=REALM stale-nonce=600 cert=/etc/turn_server_cert.pem pkey=/etc/turn_server_pkey.pemno-loopback-peers no-multicast-peers mobility no-cli

啟動服務
turnserver -o -a
連接測試
turnutils_uclient -v -t -T -y -u USERNAME -w PASSWORD IP
如下說明成功

參考文檔

COTURN服務器使用
:http://blog.csdn.net/day_day_up1991/article/details/52253892
STUN和TURN技術淺析請

總結

以上是生活随笔為你收集整理的stun server、turn server、coturn server安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。