mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-21 00:24:12 +08:00
52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package firewall
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/1Panel-dev/1Panel/core/utils/cmd"
|
|
)
|
|
|
|
func UpdatePort(oldPort, newPort string) error {
|
|
firewalld := cmd.Which("firewalld")
|
|
if firewalld {
|
|
status, _ := cmd.NewCommandMgr(cmd.WithEnv("LANGUAGE=en_US:en")).RunWithStdout("firewall-cmd", "--state")
|
|
isRunning := status == "running\n"
|
|
if isRunning {
|
|
return firewallUpdatePort(oldPort, newPort)
|
|
}
|
|
}
|
|
|
|
ufw := cmd.Which("ufw")
|
|
if !ufw {
|
|
return nil
|
|
}
|
|
status, _ := cmd.NewCommandMgr(cmd.WithEnv("LANGUAGE=en_US:en")).RunWithStdout("ufw", "status")
|
|
isRuning := strings.Contains(status, "Status: active")
|
|
if isRuning {
|
|
return ufwUpdatePort(oldPort, newPort)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func firewallUpdatePort(oldPort, newPort string) error {
|
|
stdout, err := cmd.NewCommandMgr().RunWithStdout("firewall-cmd", "--zone=public", "--add-port="+newPort+"/tcp", "--permanent")
|
|
if err != nil {
|
|
return fmt.Errorf("add (port: %s/tcp) failed, err: %s", newPort, stdout)
|
|
}
|
|
|
|
_, _ = cmd.NewCommandMgr().RunWithStdout("firewall-cmd", "--zone=public", "--remove-port="+oldPort+"/tcp", "--permanent")
|
|
_, _ = cmd.NewCommandMgr().RunWithStdout("firewall-cmd", "--reload")
|
|
return nil
|
|
}
|
|
|
|
func ufwUpdatePort(oldPort, newPort string) error {
|
|
stdout, err := cmd.NewCommandMgr().RunWithStdout("ufw", "allow", newPort)
|
|
if err != nil {
|
|
return fmt.Errorf("add (port: %s/tcp) failed, err: %s", newPort, stdout)
|
|
}
|
|
|
|
_, _ = cmd.NewCommandMgr().RunWithStdout("ufw", "delete", "allow", oldPort)
|
|
return nil
|
|
}
|