Ssh

如何區分 OpenWRT(和其他系統)中 QoS 的 SSH 和 SCP?

  • June 26, 2015

我經常使用 SCP 通過我的 DSL 上游連接上傳大量數據,該連接限制為 1kbit/s。雖然我真的希望互動式 SSH 會話具有最高優先級,但簡單地將 SSH 設置為最高優先級會使連接在 SCP 上傳期間無法使用。

如何區分服務質量設置的 SSH 和 SCP,尤其是在 OpenWRT 中?

至少 OpenSSH 設置了不同的 TOS 位(0x16用於互動式會話,0x08用於批量傳輸),如quora 上所討論的

使用與這些位匹配的規則可以輕鬆利用這一點。似乎最高匹配的 QoS 生效,請確保不要對埠 22/SSH 有一個通用規則:OpenWRT 預設情況下將匹配 SSH 和 DNS 的規則一起發送。對於那裡的規則,我使用了 和 的重疊 DSCP 值,0x04正如0x02上面連結的 quora 文章中所建議的那樣。

config classify                                          
       option target           "Priority"                   
       option ports            "22"                     
       option dscp             0x04                     
       option comment          "ssh"      
config classify                                          
       option target           "Bulk"                   
       option ports            "22"                     
       option dscp             0x02                     
       option comment          "scp"                    

對於“裸”iptables 設置,這些是生成的規則(-m dscp --dscp 0x04-m dscp --dscp 0x02參數是最有趣的部分):

-A qos_Default_ct -p tcp -m mark --mark 0x0/0xf -m tcp -m multiport --ports 22 -m dscp --dscp 0x04 -m comment --comment ssh -j MARK --set-xmark 0x11/0xff
-A qos_Default_ct -p tcp -m mark --mark 0x0/0xf -m tcp -m multiport --ports 22 -m dscp --dscp 0x02 -m comment --comment scp -j MARK --set-xmark 0x44/0xff

請務必在使用 重新載入 QoS 設置後重新啟動 SCP 傳輸/etc/init.d/qos restart。QoS 設置僅適用於新流。

在應用這些規則之前(使用單個 SSH“優先級”規則),我在 SCP 上傳期間有大約 200 毫秒的 ping;應用規則後,它下降到 70-100 毫秒(與通過空閒線路的 30 毫秒相比)。

引用自:https://unix.stackexchange.com/questions/212503