10 款最佳 Ping 掃描工具,協助您尋找網路上的設備
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
最重要的一點:應配置外部 TURN 伺服器作為備用方案,以應對因 NAT 或防火牆限製而無法建立可用 WebRTC 路徑的用戶端。它不能取代 Jitsi Videobridge (JVB) 用於常規多方會議。如果您的 Jitsi 伺服器本身位於 NAT 之後,您仍然必須使 JVB 可從 Internet 存取(通常使用 UDP 10000 連接埠),或正確設定橋接器的公網位址。
對於目前的 Jitsi 部署,最簡潔的設計通常是:一個可公開存取的 coturn 主機,其 DNS 名稱類似於 `<Jitsi_TORN_NAME>`;turn.example.com由 Prosody 透過 XEP-0215 提供有時效性的憑證;以及基於 UDP/TCP 的 TURN 協議,對於受限網路則使用受限的網路協議。 Jitsi 目前的 TURN 文件明確建議使用動態憑證,而不是在瀏覽器設定中嵌入永久的使用者名稱和密碼。請參閱Jitsi 官方 TURN 設定文件。

當部分參與者可以開啟 Jitsi 網頁但無法建立可靠的媒體連線時,尤其是在企業網路、飯店 Wi-Fi、校園網路、行動電信商網路、VPN 或其他會封鎖或嚴格過濾 UDP 的環境中,可以使用 TURN 功能。此外,當無法直接建立點對點連線時,TURN 也適用於一對一的 Jitsi 通話。
請勿將 TURN 作為解決 Jitsi Videobridge 配置錯誤的首選方案。 Jitsi 官方 Debian/Ubuntu 指南指出,當伺服器位於 NAT 之後時,路由器必須轉發所需的端口,並且橋接器可能需要明確配置本地地址到公網地址的映射。預設情況下,Jitsi 需要使用的重要連接埠是 TCP 443 和 UDP 10000。在新增 TURN 之前,請先查閱最新的Jitsi Debian/Ubuntu 自託管指南。
| 症狀或需求 | 首先要檢查什麼 |
|---|---|
| 兩名用戶無法在受限網路上直接連線。 | TURN 是一個強而有力的候選者。 |
| 三名或三名以上參與者沒有音頻/視頻 | 在指責 TURN 之前,請先驗證 JVB UDP 10000 及其公網位址。 |
| 普通家庭網路使用者可以正常運作,但企業用戶卻無法正常運作。 | 新增 TURN/TLS,如果您的網路設計允許,最好透過 TCP 443 連接埠存取。 |
| 您需要的憑證不會永久暴露在 JavaScript 中。 | 使用共用金鑰和短期憑證來使用 Prosody 外部服務。 |
最簡單的拓樸結構是使用一台獨立的虛擬機器或伺服器,並分配一個公網 IP 位址。建立一個 A 記錄或 AAAA 記錄,指向turn.example.com該主機。如果您之後提供基於 TLS 的 TURN 服務,那麼使用專用主機名稱尤其有用,因為憑證必須與用戶端使用的主機名稱相符。
如果 TURN 主機本身位於 NAT 之後,Coturn 需要知道它應該通告的公有網路位址。 Coturn 支援external-ip映射,包括公網/私網位址對,例如 `<public_address>` 和 `<private_address> external-ip=203.0.113.10/192.168.1.10`。其文件還指出,中繼埠必須透過 NAT 保持一致的對應。請參閱官方的Coturn 範例配置。

在受支援的 Debian 或 Ubuntu 系統上,從發行版儲存庫安裝 coturn:
sudo apt update
sudo apt install coturn
軟體包版本因作業系統版本而異,因此請勿從螢幕截圖或其他伺服器複製版本號。安裝完成後,請確認服務單元存在且軟體套件已安裝turnserver。

對於 Jitsi,實際生產環境中的配置方案使用 coturn 的共享金鑰機制,以便 Prosody 可以產生臨時 TURN 憑證。兩端使用相同的密鑰。一個最基本的配置方案如下:
listening-port=3478
tls-listening-port=5349
realm=turn.example.com
fingerprint
use-auth-secret
static-auth-secret=REPLACE_WITH_A_LONG_RANDOM_SECRET
min-port=49160
max-port=49200
no-multicast-peers
no-cli
如果 TURN 主機位於 NAT 之後,請新增對應的external-ip對應。如果啟用 TURN over TLS,請設定cert並pkey使用受信任的憑證。官方 coturn 容器文件解釋說,TURN 使用中繼埠範圍來傳輸媒體,並且turn.example.com可以使用 `--relayport` 和 `--relayport` 來縮小範圍。有關中繼埠行為的更多詳細信息,請參閱官方 coturn Docker 文件。min-portmax-port

常見的錯誤是只開放了 3478 或 5349 端口,而忽略了中繼端口範圍。 Coturn 的監聽器會接受初始的 TURN 連接,但中繼媒體會使用已指派的中繼埠。如果您選擇了該連接埠範圍49160-49200,請確保主機防火牆、雲端安全群組以及任何上游 NAT 都允許相同的連接埠範圍通過。
sudo ufw allow 3478/udp
sudo ufw allow 3478/tcp
sudo ufw allow 5349/tcp
sudo ufw allow 49160:49200/udp
如果您需要與安全受限的企業網路實現最廣泛的相容性,Jitsi 的 TURN 指南介紹如何在 TCP 443 連接埠上透過 TLS 提供 TURN 服務。這可能需要一個專用的 TURN 主機名,並且當 Web HTTPS 服務與 TURN 服務共用同一個公網位址時,也需要進行 TLS SNI 多重化。除非您了解該連接埠已被哪些服務佔用,否則請勿盲目地將 TURN 服務移轉到 443 連接埠。

在目前 Debian/Ubuntu Jitsi 軟體包部署中,Prosody 使用 .mod_external_services向客戶端發布 STUN/TURN 資訊。 Jitsi 自身的 Prosody 範例使用 . 以及一個external_service_secret包含 . 的external_services表格secret = true。共享密鑰必須與 coturn 的 . 匹配static-auth-secret。
external_service_secret = "REPLACE_WITH_THE_SAME_LONG_RANDOM_SECRET";
external_services = {
{ type = "stun", host = "turn.example.com", port = 3478 },
{ type = "turn", host = "turn.example.com", port = 3478,
transport = "udp", secret = true, ttl = 86400, algorithm = "turn" },
{ type = "turns", host = "turn.example.com", port = 5349,
transport = "tcp", secret = true, ttl = 86400, algorithm = "turn" }
};
請保留 Jitsi 產生的 Prosody 檔案中現有的模組和網站特定設定;不要用上面的程式碼片段取代整個檔案。通常,檔案名稱應位於部署網域之後。上游 Jitsi 設定範例可在官方 Jitsi 程式碼庫/etc/prosody/conf.d/中查看。
如果您使用的是官方 Docker 部署,建議使用其文件中提供的環境變量,而不是手動編輯生成的 Prosody 檔案。目前的 Docker 文件公開了`--enable -enable` TURN_CREDENTIALS、 ` --enable- enable`、`--enable - enable`、`--enable- enable` 和 `--enable-enable` 。請查閱最新的Jitsi Docker 自託管指南,因為不同版本之間的變數預設值可能會有所變更。TURN_HOSTTURN_PORTTURN_TRANSPORTTURNS_HOSTTURNS_PORT

更改 coturn 後,重新啟動 coturn 並檢查其狀態:
sudo systemctl restart coturn
sudo systemctl status coturn
sudo ss -lntup | grep -E '3478|5349'
更改 Prosody 配置後,如果您的 Prosody 軟體包提供了語法檢查器,請驗證其語法,然後重新啟動 Prosody。根據您在 Jitsi 中所做的更改,可能還需要重新啟動相關的 Jitsi 服務:
sudo prosodyctl check config
sudo systemctl restart prosody
乾淨的 coturn 服務狀態僅證明守護程式正在執行。它並不能證明憑證匹配、中繼範圍可達,或瀏覽器可以取得中繼候選位址。


僅在同一區域網路內進行測試是不夠的。至少需要使用位於不同網路上的用戶端,理想情況下應使用行動網路連線或已知限制 UDP 的網路。在瀏覽器 WebRTC 診斷中,尋找類型為 `<relay-concept>` 的 ICE 候選位址relay。中繼候選位址表示瀏覽器已成功取得 TURN 憑證並建立了 TURN 分配。
同時,在測試使用者加入時,請觀察 coturn 日誌。選擇 TURN 模式後,您應該會看到已驗證的分配和中繼流量。如果出現驗證失敗,請將 coturn 日誌static-auth-secret與 Prosody 或 Docker 的 TURN 憑證金鑰進行比較。如果分配成功但媒體仍傳輸失敗,請檢查中繼埠防火牆和 NAT 對應。
除非有受控的測試理由,否則不要僅為了驗證伺服器是否存在而強制執行 TURN 操作。正常情況下,ICE 會選擇最佳工作路徑。因此,一次成功的部署可能需要多次會議,而無需執行 TURN 操作。
這一點可以避免浪費最多的故障排除時間。位於 NAT 後方的 Jitsi 伺服器仍需要正確配置網橋的公網可及性。目前的 Jitsi 快速入門指南指出,橋接器通常會自動配置,但如果大型呼叫失敗,您可以在下列ice4j.harvest.mapping位置新增靜態映射/etc/jitsi/videobridge/jvb.conf:
ice4j {
harvest {
mapping {
static-mappings = [
{
local-address = "192.168.1.20"
public-address = "203.0.113.20"
}
]
}
}
}
將公網邊緣的 UDP 10000 封包轉送至 JVB 主機,並確保公網位址是遠端用戶端實際可存取的位址。 TURN 協定可能有助於受限網路上的用戶端,但不應用於掩蓋損壞的 JVB NAT 映射。

.env變量,而不是編輯容器內產生的檔案。一個健康的配置應具備三個可觀察的行為。首先,一般使用者在網路允許的情況下無需 TURN 即可直接存取 Jitsi Videobridge。其次,在網路受限的情況下,使用者可以取得臨時 TURN 憑證並取得relayICE 候選連線。第三,coturn 僅在需要時才顯示已認證的分配,而不是預設承載所有會議。
這種組合提供了一個有效的備用方案,同時又不會讓 TURN 伺服器成為不必要的頻寬瓶頸。它還能簡化故障排除:JVB NAT 問題仍然是 JVB 問題,而 TURN 則解決了直接路由被阻塞時 WebRTC 連線的具體問題。
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。
比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。
比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。
了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。
比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。
比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。
建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。
比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。
使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。