我经常通过我的DSL上行连接上传大量数据,该连接限制在1kbit/s。虽然我真的希望交互式SSH会话具有最高的优先级,但简单地将SSH设置为最高优先级会使SCP上传过程中的连接无法使用。
如何区分SSH和SCP的服务质量设置,特别是在OpenWRT中?
发布于 2015-06-26 23:05:20
至少OpenSSH设置不同的TOS位(0x16
用于交互会话,0x08
用于批量传输),如浅谈quora。
使用匹配这些位的规则可以很容易地利用这一点。似乎最高匹配的QoS生效了,请确保在端口22/SSH周围没有一个通用规则: OpenWRT默认将匹配SSH和DNS的规则一起发布。对于这里的规则,我使用了上面链接的quora中提出的0x04
和0x02
的重叠DSCP值。
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 __重新加载/etc/init.d/qos restart
设置后重新启动SCP传输。QoS设置仅应用于新的流。
在应用这些规则之前(使用一个SSH“优先级”规则),在SCP上载期间,我的ping值约为200 an;在应用该规则时,它下降到了70-100 an(相比之下,通过空闲行的时间为30 an)。
https://unix.stackexchange.com/questions/212503
复制相似问题