Skip to content
← 返回Linux列表
应用实践公司适用

公司适用 · 请结合本文的项目背景与团队约定使用。

openWrt uci ​

本页是约 2020 年 AccessHub/OpenWrt 的 qos-scripts 历史记录,终端标识和地址已替换为虚构示例,未在当前设备验证。下面的 @classify[3]、@default[2] 依赖原机已有节,不能直接用于另一台设备;classgroup=default 与 Default 大小写也不能混同。先核对固件、qos-scripts 版本和完整 uci show qos,再决定变更。

  • uci set
shell
root@Accesshub:/etc/config# uci set qos.cc=interface
root@Accesshub:/etc/config# uci set qos.cc.classgroup=default
root@Accesshub:/etc/config# uci set qos.cc.enabled=1
root@Accesshub:/etc/config# uci set qos.cc.upload=134
root@Accesshub:/etc/config# uci set qos.cc.download=1000
root@Accesshub:/etc/config# uci commit qos
shell
root@Accesshub:/etc/config# grep -A 6 cc qos
config interface 'cc'
        option classgroup 'default'
        option enabled '1'
        option upload '134'
        option download '1000'
  • uci add
shell
root@Accesshub:/etc/config# uci add qos classify
cfg118143
root@Accesshub:/etc/config# uci set qos.@classify[3].target="Priority"
root@Accesshub:/etc/config# uci set qos.@classify[3].ports="22,23,80,333"
root@Accesshub:/etc/config# uci set qos.@classify[3].comment="ssh,frp,ftp,http,http(s),imap"
root@Accesshub:/etc/config# uci commit qos
shell
root@Accesshub:/etc/config# grep -A 20 cc qos
config interface 'cc'
        option classgroup 'default'
        option enabled '1'
        option upload '134'
        option download '1000'

config classify
        option target 'Priority'
        option ports '22,23,80,333'
        option comment 'ssh,frp,ftp,http,http(s),imap'
shell
uci show qos
uci set qos.@default[2].proto="tcp"
uci set qos.@default[2].portrange="1024-65535"
uci commit qos
shell
config interface 'cc'
        option classgroup 'default'
        option enabled '1'
        option upload '134'
        option download '1000'

config classify
        option target 'Priority'
        option ports '22,23,80,333'
        option comment 'ssh,frp,ftp,http,http(s),imap'

config default
        option proto 'tcp'
        option portrange '1024-65535'

设置 classgroup ​

shell
root@Accesshub:/etc/config# uci set qos.CcClassGroup=classgroup
root@Accesshub:/etc/config# uci set qos.CcClassGroup.classes="Cc Priority Express Mormal Bulk"
root@Accesshub:/etc/config# uci set qos.CcClassGroup.default="Cc"
root@Accesshub:/etc/config# uci commit qos
shell
root@Accesshub:/etc/config# grep -A 30 cc qos
config interface 'cc'
        option classgroup 'default'
        option enabled '1'
        option upload '134'
        option download '1000'

config classify
        option target 'Priority'
        option ports '22,23,80,333'
        option comment 'ssh,frp,ftp,http,http(s),imap'

config default
        option proto 'tcp'
        option portrange '1024-65535'

config classgroup 'CcClassGroup'
        option classes 'Cc Priority Express Mormal Bulk'
        option default 'Cc'

原记录创建了 CcClassGroup,却没有把接口 cc 的 classgroup 从原组改到它,因此不能证明自定义组已生效。Mormal 是原拼写错误;使用已有 Normal 类时应写 Normal。完成下节 Cc 类定义并确认 Priority/Express/Normal/Bulk 都存在后,才可按下面的独立修正片段绑定(未执行):

sh
uci set qos.CcClassGroup.classes='Cc Priority Express Normal Bulk'
uci set qos.cc.classgroup='CcClassGroup'
uci changes qos
# 审阅变更后才保存;commit 仅保存配置,不证明运行规则已经重载。
uci commit qos
uci get qos.cc.classgroup

新增匿名节应使用本次 uci add 返回的 ID,不套用旧下标。例如下面只展示新节如何定位,不与原转录重复执行:

sh
section_id="$(uci add qos classify)"
uci set "qos.$section_id.target=Priority"
uci set "qos.$section_id.ports=22,23,80,333"
uci changes qos

是否需要以及怎样重载 QoS 服务,须按该固件的服务脚本核对;保存后还应观察实际接口和分类规则,不能把 grep 输出当成流量整形已生效。依据:UCI 节 ID、历史 qos-scripts 字段。

配置 class ​

shell
root@Accesshub:/etc/config# uci set qos.Cc=class
root@Accesshub:/etc/config# uci set qos.Cc.packetsize="1600"
root@Accesshub:/etc/config# uci set qos.Cc.packetdelay="160"
root@Accesshub:/etc/config# uci set qos.Cc.avgrate="16"
root@Accesshub:/etc/config# uci set qos.Cc.priority="6"
root@Accesshub:/etc/config# uci commit qos
root@Accesshub:/etc/config# grep -A 50 cc qos
config interface 'cc'
        option classgroup 'default'
        option enabled '1'
        option upload '134'
        option download '1000'

config classify
        option target 'Priority'
        option ports '22,23,80,333'
        option comment 'ssh,frp,ftp,http,http(s),imap'

config default
        option proto 'tcp'
        option portrange '1024-65535'

config classgroup 'CcClassGroup'
        option classes 'Cc Priority Express Mormal Bulk'
        option default 'Cc'

config class 'Cc'
        option packetsize '1600'
        option packetdelay '160'
        option avgrate '16'
        option priority '6'

继续阅读