diff --git a/web/utils/firewall.py b/web/utils/firewall.py index 655a58743..a0a0b5231 100644 --- a/web/utils/firewall.py +++ b/web/utils/firewall.py @@ -132,6 +132,17 @@ class Firewall(object): else: pass + def reloadSshd(self): + if self.__isUfw: + mw.execShell("service ssh restart") + elif self.__isIptables: + mw.execShell("/etc/init.d/sshd restart") + elif self.__isFirewalld: + mw.execShell("systemctl restart sshd.service") + else: + return False + return True + def getFwStatus(self): if self.__isUfw: cmd = "/usr/sbin/ufw status| grep Status | awk -F ':' '{print $2}'" @@ -251,6 +262,9 @@ class Firewall(object): conf = re.sub(rep, "Port " + port + "\n", conf) mw.writeFile(file, conf) + if not self.reloadSshd(): + return mw.returnData(False, '重启sshd失败,尝试手动重启:service ssh restart!') + self.addAcceptPort(port, 'SSH端口修改', 'port') self.reload() return mw.returnData(True, '修改成功!')