ufw-docker在非英文的服务器上的启动检测bug及修复
问题
ufw-docker 在启动时会调用ufw status检查当前启动状态。
但是,如果你设置了语言不为英文,该返回值会本地化,而不是Status: active,就会报错UFW is disabled or you are not root user, or mismatched iptables legacy/nf_tables, current $(iptables --version)。
解决
手动调用ufw status,记录第一行的值(这里为状态: 激活)。
修改/usr/local/bin/ufw-docker,将以下部分的Status: active改为刚才的值即可。
# before
if ! ufw status 2>/dev/null | grep -Fq "Status: active" ; then
die "UFW is disabled or you are not root user, or mismatched iptables legacy/nf_tables, current $(iptables --version)"
fi
# after
if ! ufw status 2>/dev/null | grep -Fq "状态: 激活" ; then
die "UFW is disabled or you are not root user, or mismatched iptables legacy/nf_tables, current $(iptables --version)"
fi