什麼是 TURN 伺服器?

使用 Traversal Using Relays around NAT (TURN) 伺服器,可以在高度限制的網路中建立可靠的 WebRTC 連線。

學習目標

閱讀本文後,您將能夠:

  • 描述 TURN 伺服器的作用
  • 瞭解使用 TURN 伺服器的優勢
  • 對比 TURN 與 STUN 伺服器

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 TURN 伺服器?

Traversal Using Relays around NAT (TURN) 伺服器是一種 Web 伺服器,當防火牆或私人 IP 位址的使用中斷即時通訊連線(例如視訊或音訊通話)時,它可以在運算裝置之間實現 WebRTC 連線。顧名思義,TURN 服務可以繞過網路位址轉譯 (NAT),以確保用戶端之間的連線不會在工作階段中途中斷。

簡而言之,即使網路未設定為支援視訊和音訊通話,TURN 伺服器也能協助確保視訊和音訊通話正常進行。

當 WebRTC 連線中的某個裝置使用私人 IP 位址時,TURN 伺服器就變得必不可少。具有私人 IP 位址的裝置使用 NAT 連接到其他裝置。NAT 重新封裝封包並將其傳送到私人 IP 位址,但它不能很好地與許多通訊協定配合使用,包括 WebRTC。

假設 Alice 想開車去 Bob 家,但他們之間的高速公路上設定了路障。Alice 沒有走高速公路撞上路障,而是繞道而行,透過另一條路線到達 Bob 家。當 NAT 可能成為無法逾越的障礙時,TURN 伺服器可以為 WebRTC 連線提供替代路由。

TURN 與 STUN 伺服器

STUN(NAT 對談穿越應用程式)伺服器是另一種支援 WebRTC 連線的伺服器。它讓兩個裝置能夠發現彼此的公用 IP 位址並發起直接連線。但 STUN 伺服器往往無法繞過嚴格的安全措施,在這種情況下,可以改為使用 TURN 伺服器。

什麼是 WebRTC?

Web 即時通訊 (WebRTC) 是一種開放原始碼技術,允許透過 API 建立直接的點對點 (P2P) 即時通訊。它允許用戶端裝置彼此之間串流檔案,而不必依賴中央伺服器(與 HLSHDS 等假定用戶端-伺服器模型的通訊協定相反)。WebRTC 也已用於多種通訊協定,例如支援網際網路電話和視訊通話的 VoIP

什麼是網路位址轉譯 (NAT)?

NAT(網路位址轉譯)是一種將私人 IP 位址對應到公用 IP 位址的技術,或者說最常見的是將多個私人 IP 位址對應到一個公用 IP 位址。(IP 位址對於在裝置之間建立連線至關重要。)

NAT 就像在郵政系統中使用轉寄地址。通訊員可以在不知道收件人真實郵寄地址的情況下寄送郵件,因為轉寄地址會將郵件寄送到真實地址。類似地,NAT 將公用 IP 位址與私人 IP 位址進行匹配,並將封包轉寄到正確的位置。

NAT 最流行的應用之一是在區域網路 (LAN) 內指派 IP 位址,例如家庭 WiFi 網路。由於 IPv4 位址不夠用,因此路由器會為網路連線裝置指派動態的私人 IP 位址。這些 IP 位址很可能也被網際網路上的其他裝置使用,因此為了避免混淆,路由器使用 NAT 將它們變更為一個不會在其他任何地方重複的面向公眾的 IP 位址。(ISP 也可能動態指派這些面向公眾的 IP 位址。)

NAT 還可用作一種安全措施,以保持 IP 位址的私密性。裝置可以避免在網路外部(甚至在網路內部)洩露其真實 IP 位址,並使用 NAT 廣播公用 IP 位址並連接到其他裝置。

問題在於,某些應用程式層通訊協定不能很好地與 NAT 配合使用,就像人們的轉寄地址可能無法轉寄所有類型的郵件(例如大包裹)。

使用 TURN 伺服器有什麼優勢?

即使在使用 NAT 和防火牆隱藏 IP 位址的高度受限的網路環境中,TURN 伺服器也有助於確保連線性。在無法正常連線且 STUN 伺服器無法支援即時通訊的情況下,TURN 伺服器能夠實現即時通訊。TURN 伺服器可提高網際網路電話服務或聊天服務的可靠性。

Cloudflare Realtime 是否包含 TURN 服務?

開發人員可以利用 Cloudflare Realtime 服務建置即時音訊、視訊和資料應用程式。Cloudflare Realtime 確實包含一個全球 TURN 伺服器,從而讓開發人員能夠更輕鬆地建置快速可靠的即時應用程式。要深入瞭解 Cloudflare 的 TURN 服務,請參閱開發人員文件