如何使用scp模擬ssh連線丟包

如何使用scp模擬ssh連線丟包

我想觀察一種名為wireGuard 的新VPN 隧道協定在macOS 和Linux 平台不穩定的網路環境中將大量資料從一個節點傳輸到另一個節點時的耐用性。

請注意,wireGuard 在 UDP 下工作,我想了解它在某種程度上如何處理資料包遺失。

是否有任何方法可以將網路介面設定為在此遠端複製會話期間丟棄一定百分比的封包?

答案1

對於有 的 Linux iptables,大致如下:

iptables -A OUTPUT -m statistic --mode random --probability 0.02 -j DROP

或者

iptables -A INPUT -m statistic --mode random --probability 0.02 -j DROP

筆記:

  • 上述命令影響表的OUTPUT(或INPUT對應的)鏈處理的所有資料包filter。您可能只想使用-p(協定)和例如--dport(目標連接埠)來僅定位特定連線:

    iptables -A OUTPUT -p udp --dport 1234 -m …
    
  • 在測試不同的變體時,請記住刪除不需要的規則而不是堆疊它們。若要刪除規則,請呼叫相同的iptables …命令,但使用-D代替-A


我還不夠了解nftables。我發現了這個:如何根據機率丟棄資料包nftables


我不知道macOS根本不。在我的研究中我遇到pfctldnctl。我在 OSX 上找到了這個:如何隨機丟包。我完全不知道dnctl現在的答案是否可以在 macOS 中使用。對不起。

將“macOS 部分”移至單獨的問題(我相信可能會在apple.stackexchange.com),而這裡只保留「Linux 部分」可能是個不錯的策略。

相關內容