Linux

通過 UDP 或 TCP 建立隧道

  • August 22, 2015

有沒有辦法僅通過 UDP 或 TCP 創建類似於 IPIP 或 GRE 隧道的東西?

我在兩台伺服器之間有一個 GRE 隧道,我注意到有時它會開始丟棄數據包。同時,如果我通過網際網路在伺服器之間 ping,我沒有問題。

我相信這是來自我的提供商的流量整形問題(它沒有考慮 GRE 協議)。我也嘗試過 IPIP 隧道,結果相同。

試一試openvpn。您可以通過 UDP 或 TCP 創建隧道。

我不確定是什麼導致了您的特定問題,但您應該注意,通常隧道使用不可靠的傳輸流(即 UDP)比使用可靠的傳輸流更好。

這樣做的原因是,如果您確實發生封包遺失,則隧道TCP 層應該是管理重傳的層,而不是真正的傳輸層。

如果兩層都內置了重傳,它們可能會開始陷入重傳戰爭,最終會扼殺吞吐量。

另外,不要忘記任何隧道協議都會降低有效的 MTU(因此會降低 TCP MSS)。如果未適當調整 MTU 和 MSS,您將看到過多的碎片和/或丟棄的數據包。

引用自:https://serverfault.com/questions/7735