WebRTC服務器Coturn服務器相關測試工具

1、概述

在安裝開源的webrtc服務器coturn服務器后,會附帶安裝coturn的相關工具,主要有以下幾種工具

2、turnadmin工具

說明:服務器命令行工具,提供添加用戶、添加管理員、生成TURN密鑰等功能,turnadmin -h查看詳細用法

命令參數用法:

2.1 直接短選項名用法,后面不加=

eg: turnadmin -u ccc

2.2 參數長選項名用法加=

eg: turnadmin --user=ccc

2.3 命令Commands

2.3.1 -P

作用: 生成并將密碼的加密形式輸出到標準輸出,可以生成密鑰,然后設置到/etc/turnserver.conf(web-admin/cli-password)中,防止明文保存在配置文件,增加安全性

eg: turnadmin -P -u ccc -p ccc

終端輸出:$5$c58bf5b9e61e5c4a$088e97128d5eacac61130713fe15269b17653410704a1b60fc8d1a076c9d6d2d

備注: 這個密鑰生成是針對管理賬號和telnet連接賬號,不是針對普通用戶,普通用戶長期憑證機制用用-k生成,普通用戶還支持臨時憑證

2.3.2 -k

作用: 生成長期憑證機制用戶密鑰的選項

eg: turnadmin -k -u ccc -p ccc -r nort.gov

終端輸出: 0xa00561524d93eb959c884a531cda1769

備注: 把這個配置到/etc/turnserver.conf即可,防止了明文的顯示,增加安全。

2.3.3 -a

作用: 添加或更新一個長期憑證用戶

eg: turnadmin -a -u ccc -p ccc -r nort.gov

數據庫保存:會把這個用戶保存到數據庫表turnusers_lt

備注: coturn數據庫支持sqlite、mysql、redis、postgrepsql、mogo-db, 命令選型根據

sqlite: -b /var/db/turndb

mysql: -M

pqsql: -e

redis: -N

mogo: -J

2.3.4 -A

作用:添加或更新管理員賬號

eg: turnadmin -A -u ccc -p ccc

數據庫: 會把這個用戶保存在數據庫表admin_user中

2.3.5 -d

作用: 刪除長期憑證機制用戶

eg: turnadmin -d -u ccc

2.3.6 -D

作用: 刪除管理員用戶

2.3.7 -l

作用: 列出當前長期憑證機制用戶

eg: turnadmin -l

2.3.8 -L

作用: 列出當前管理員用戶

eg: turnadmin -L

2.3.9 -s

作用: 為REST API設置共享密鑰

eg: turnadmin -s mytestpwd -r nort.gov

備注: 會保存在數據庫表turn_secret中

2.3.10 -S

作用: 顯示REST API的共享密鑰

eg: turnadmin -S

2.3.11 -X

作用: 刪除REST API 共享密鑰

eg: turnadmin -X mytestpwd -r

2.3.12 -O

作用: 添加源到域中

eg: turnadmin -O -o https://www.my.com -r myrealm

備注: 保存到turn_origin_to_realm 數據表

2.3.13 -R

作用:刪除源與域的對應關系

eg: turnadmin -R -o https://www.my.com -r myrealm

2.3.14 -I

作用: 列出源與域的關系

eg: turnadmin -I

2.3.15 -g

作用: 設置域相關參數選項,比如設置某個域的最大比特率,可控制某個域內所有用戶總帶寬(max-bps)上限制,總配額(total-quota)【網絡連接數,會話數等】,每個用戶的配額(user-quota)

eg: turnadmin -g -r nort2.gov --total-quota 300 -- max-bps 1020000

eg: turnadmin -g -r nort2.gov --user-quota 20

備注:數據保存在數據庫的turn_realm_option這個表中

2.3.16 -G

作用: 顯示域相關參數配置

eg: turnadmin -G

3、turnutils_stunclient

作用:檢測STUN服務器是否可用,查看客戶端公網ip和端口,理解當前環境下NAT類型

示例:turnutils_stunclient -p 3479 117.72.111.221

4、?turnutils_peer

一個簡單的無狀態UDP echo”服務器,用作中繼模式中的最終服務器(“對等”)。對于每一個到來UDP數據包,它只是將其回傳

(此程序僅用于測試目的!),就是簡單監聽UDP端口,然后發什么它就返回什么的一個簡單udp程序。

5、turnutils_uclient

用于測試TURN服務器的功能,驗證TURN服務器的配置,確保TURN服務器正確配置,能正常工作

5.1 測試coturn服務器基礎功能是否正常

5.1.1 先運行turnutils_peer(部署在公網上,有公網IP端口,方便測試)

作為模擬的端側客戶端,只打開UDP端口,接受了什么數據,就源路返回什么。

5.1.2 執行turnutils_uclient -e 117.72.111.221 -r 3480 -n 3 -l 1024 -p 3478 117.72.111.221

-e代表 對端的地址(比如A跟B通信,turnutils_client代表A端,B就是對端116.205.233.111)

-r 3480代表對端的端口為3480

-n 3 代表發送的數據包為3個

-l 1024 代表發送的數據包的內容長度為1024

-p 代表coturn的端口3478

117.72.111.221 代表要測試的coturn服務器的地址

5.1.3 結果分析

turnutils_client會與coturn進行通信,發送3個數據包到對端,然后分析發包、和收包,判斷丟包率,RTT等數據分析以此驗證coturn是否正常

其中會經歷Allocate Request、Channel Binding Request 、Create Peermission Request等TURN協議的發送與接收處理,具體協議的結構格式,類型值看下面的協議篇。

5.2 測試coturn服務器dtls加密功能是否正常

turnutils_uclient -S -i /home/webrtc/webrtc_server.crt -k /home/webrtc/webrtc_server.key -e 117.72.111.221 -r 3480 -n 3 -l 1024 -p 5349 117.72.111.221 -v -u test?-w test

6、turnutils_natdiscovery

是一個用于 ?NAT 類型檢測和網絡診斷? 的命令行工具,其核心作用是通過模擬不同場景的通信請求,幫助開發者或運維人員快速識別設備的 NAT 類型及網絡限制條件?,(NAT映射規則和防火墻過濾行為)

turnutils_natdiscovery -m -f Example Domain

1)-m 參數

開啟映射行為發現

映射行為分為:

端點獨立映射: 無論請求的外部服務器地址和端口是什么,NAT設備總是將內部主機同一IP地址和端口映射到相同的外部IP地址和端口

地址依賴映射: NAT設備根據請求的外部服務器IP地址創建映射,如果請求不同的外部服務器IP地址,NAT設備會創建不同的映射

地址和端口依賴映射:NAT設備根據請求的外部服務器IP地址和端口創建映射,只有當請求的外部服務器IP地址和端口相同時才會使用相同的映射

2)-f 參數

開啟過濾行為發現

過濾行為分為:

端點獨立過濾: 主機可以接收來自任何外部主機的響應,只要該響應是對其之前發出的請求的響應

地址依賴過濾: 主機只能接收來自之前請求的IP地址的響應,無論響應的端口是什么

地址和端口依賴過濾: 主機只能接收來自剛才請求的ip和端口的端口的響應

3)-t 參數

開啟映射生命周期行為發現,它會測試NAT設備中映射的生命周期,即映射在多長時間保持有效

turnutils_natdiscovery -t -T 60 -p 3478 stun.example.com

-t 啟用映射生命周期行為發現

-T 60 指定定時器值為60秒,即等待60秒后再次請求以測試映射是否有效

4) -c參數

用于碰撞行為發現,它會測試當兩個不同的內部地址使用相同的端口向外部服務器發送請求時,NAT設備的處理方式

turnutils_natdiscovery -c -L 192.168.1.100 -A 192.168.1.101 -p 3478 stun.example.com

-c 啟用碰撞行為發現

-L 192.168.1.100: 指定第一個本地地址為192.168.1.100

-A 192.168.1.101: 指定第二個本地地址為192.168.1.101,該選項在使用-c時是必須的

-p : 指定STUN服務器的端口為3478

stun.example.com: 指定STUN服務器的地址

5)-H選項

用于開啟自環行為發現,自環是指當一個內部主機通過NAT設備訪問自己外部映射地址時,NAT設備能否正確處理這種情況

turnutils_natdiscovery -H -p 3478 stun.example.com

-H 啟用自環行為發現

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77727.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77727.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77727.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何創建Vue3工程

1.首先下載環境 (默認下好了VS code) Node.js: Node.js 中文網 — 下載 Node.js 選擇要下載的版本 檢查環境: 在命令行中輸入 node ,檢查版本號 2.創建工程 1.找到自己要創建工程的文件目錄,右鍵打開打開終端 在終端輸入創…

基于大模型的肛裂手術全流程預測與治療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目標與創新點 1.3 研究方法與技術路線 二、肛裂概述與大模型技術原理 2.1 肛裂的醫學定義與分類 2.2 肛裂的發病機制與臨床癥狀 2.3 大模型技術簡介 三、大模型在肛裂術前預測的應用 3.1 術前風險因素分析與數據收集 3.2 …

【趣味小游戲】--掃雷游戲

目錄 一.test.c部分 二.game.h部分 三.game.c部分 前言:前面學習了數組和函數等c語言相關知識,這篇文章我們將通過這些知識分為三個文件來完成掃雷游戲; 1.test.c //文件中寫游戲的測試邏輯 2.game.c //文件中寫游戲中函數的實現等 3.game.h. //文件中寫…

【微服務】SpringBoot制作Docker鏡像接入SkyWalking詳解

目錄 一、前言 二、SkyWalking介紹 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整體架構 2.4 SkyWalking主要工作流程 三、前置準備 3.1 搭建SkyWalking服務 3.1.1 下載安裝包 3.1.2 上傳服務器目錄 2.1.3 數據庫持久化配置說明 3.1.4 啟動skywalk…

從零開始構建微博爬蟲與數據分析系統

從零開始構建微博爬蟲與數據分析系統 引言 社交媒體平臺蘊含著海量的信息和數據,通過對這些數據的收集和分析,我們可以挖掘出有價值的見解。本文將詳細介紹如何構建一個完整的微博爬蟲和數據分析系統,從數據爬取、清洗、到多維度分析與可視…

深入探索RAG:用LlamaIndex為大語言模型擴展知識,實現智能檢索增強生成

大型語言模型(LLM),如ChatGPT和Llama,在回答問題方面表現出色,但它們的知識僅限于訓練時所獲取的信息。它們無法訪問私有數據,也無法在訓練截止日期之后學習新知識。那么,核心問題就是……我們如…

【延遲雙刪】簡單解析

使用場景:【高并發】情況下的做【更新操作】 什么是延遲雙刪 首次刪除:當需要更新某個數據項時,首先刪除緩存中的該項。 更新數據庫:接著,更新數據庫中的該項。 短暫延遲:然后等待一段很短的時間&#xff…

解決Windows安全中心顯示空白頁面

1、電腦重裝系統后,發現原本一些軟件打不開了,電腦莫名認為有病毒,自動刪除插件。附圖。 2、第一反應是電腦防火墻的原因,默認威脅防護識別到了病毒軟件,自動刪除。在開始屏幕搜Windows安全中心,打開之后發…

【回眸】error: failed to compile `xxxxxx`重裝rust環境

在ubuntu上安裝軟件報錯 error: failed to compile cxx2flow v0.6.2 Caused by: package cargo-platform v0.1.9 cannot be built because it requires rustc 1.78 or newer, while the currently active rustc version is 1.75.0 Try re-running cargo install with --lo…

算法—冒泡排序—js(教學示例、小數據)

冒泡排序原理 冒泡排序是一種簡單的排序算法,通過重復遍歷數組,比較相鄰元素并交換位置,使較大的元素逐漸“浮”到數組末尾。 特點 時間復雜度:平均 O(n),最優(已有序時)O(n) 空間復雜度&#…

linux sysfs的使用

在Linux內核驅動開發中&#xff0c;device_create_file 和 device_remove_file 用于動態創建/刪除設備的 sysfs 屬性文件&#xff0c;常用于暴露設備信息或控制參數。以下是完整示例及詳細說明&#xff1a; 1. 頭文件引入 #include <linux/module.h> #include <linux/…

利用 Deepseek 和 Mermaid 畫流程圖

提示詞 你是一個產品經理&#xff0c;請繪制一個報名比賽的流程圖&#xff0c;要求生成符合Mermaid語法的代碼&#xff0c;具體要求如下&#xff1a; 1.注冊賬號 2.填寫報名信息 3.參加比賽 4.查看比賽結果 生成的結果 flowchart TDA([開始]) --> B[注冊賬號]B --> C{賬…

【圖像標注技巧】目標檢測圖像標注技巧

介紹一些圖像標注技巧。之前引用過別人的文章 yolo目標檢測 技巧 trick 提升模型性能&#xff0c;deep research檢測調研報告也可以進行參考。 拉框類的標注&#xff0c;如果你不確定哪種方法好&#xff0c;你可以把所標注區域的都剪切出來&#xff0c;然后站在屏幕一米之外瞇…

數字信號處理技術架構與功能演進

數字信號處理&#xff08;DSP&#xff09;是通過數字運算實現信號分析、變換、濾波及調制解調的技術領域&#xff0c;其發展過程與技術應用如下&#xff1a; 一、定義與核心功能 技術定義&#xff1a;通過算法將模擬信號轉換為數字形式進行處理&#xff0c;具有高精度、可編程…

瀏覽器上下文通信

文章目錄 瀏覽器上下文通信同源通信同源通信流程同一瀏覽器上下文通信不同瀏覽器上下文通信 跨域通信前端和前端跨域前端和后端跨域 瀏覽器上下文通信 瀏覽器上下文通信分為兩種&#xff1a;同源和跨源。同樣的同源通信也分為同一瀏覽器上下文和不同的瀏覽器上下文。 同源通信…

Linux 離線部署 Docker 18.06.3 終極指南(附一鍵安裝卸載腳本)

Linux 離線部署 Docker 18.06.3 終極指南&#xff08;附一鍵安裝/卸載腳本&#xff09; 摘要&#xff1a;本文針對無外網環境的 Linux 服務器&#xff0c;提供基于二進制包的 Docker 18.06.3 離線安裝全流程指南。包含自動化腳本設計、服務配置優化及安全卸載方案&#xff0c;…

【前端】跟著maxkb學習logicflow流程圖畫法

文章目錄 背景1. 選定學習對象-maxkb應用邏輯編排2. 確定實現框架3. 關鍵邏輯&#xff1a;查看app-node.js4. 學習開始節點繪制流程數據形式 5. 給節點增加表單輸入框遇到過的問題 背景 看看前端如何繪制流程圖&#xff0c;界面好看點。 "logicflow/core": "1.…

Android 12系統靜態壁紙深度定制指南

1. 需求背景與實現原理 在Android 12系統ROM定制開發中&#xff0c;擴展靜態壁紙功能需要深入理解WallpaperManagerService的架構體系。系統壁紙管理通過雙端協作實現&#xff1a; WallpaperManagerService&#xff08;frameworks層&#xff09;&#xff1a;負責壁紙狀態管理、…

相得益彰 — 基于 GraphRAG 事理圖譜驅動的實時金融行情新聞資訊洞察

*本文為亞馬遜云科技博客文章&#xff0c;僅用于技術分享&#xff0c;不構成投資建議或金融決策支持。文中涉及的公司名稱僅用于技術示例&#xff0c;不代表亞馬遜云科技觀點或與這些公司的商業合作關系。 背景介紹 在當今這個信息爆炸的時代&#xff0c;金融市場每天都在產生…

OpenCV---圖像預處理(四)

OpenCV—圖像預處理&#xff08;四&#xff09; 文章目錄 OpenCV---圖像預處理&#xff08;四&#xff09;九&#xff0c;圖像掩膜9.1 制作掩膜9.2 與運算9.3 顏色替換9.3.19.3.2 顏色替換 十&#xff0c;ROI切割十 一&#xff0c;圖像添加水印11.1模板輸入11.2 與運算11.3 圖像…