增加查看iptales规则功能参数 -s l 或者 -s list,规范变量命名。

This commit is contained in:
2025-01-07 17:43:16 +08:00
parent 0bc3ad8d4f
commit e28e66ffb3
5 changed files with 99 additions and 57 deletions

View File

@@ -80,6 +80,7 @@ func IsIpset(setName string) int {
return 0
}
// 添加 Iptables 规则
func iptables_add(setName string) error {
cmd := exec.Command("sh", "-c", fmt.Sprintf("iptables -A INPUT -p tcp -m set --match-set %s src -j DROP", setName))
@@ -97,6 +98,7 @@ func iptables_add(setName string) error {
return err
}
// 删除 Iptables 规则
func iptables_del(setName string) error {
cmd := exec.Command("sh", "-c", fmt.Sprintf("iptables -D INPUT -p tcp -m set --match-set %s src -j DROP", setName))
@@ -114,6 +116,24 @@ func iptables_del(setName string) error {
return err
}
// 打印 Iptables 规则
func iptables_list() error {
cmd := exec.Command("sh", "-c", "iptables -L -v -n --line-numbers")
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
log.Printf("cmd.Run() failed with %v, stderr: %s\n", err, stderr.String())
err = fmt.Errorf("failed to execute command: %w, stderr: %s", err, stderr.String())
}
fmt.Print(stdout.String())
return err
}
/*
func main() {
// 创建 IPSet但即使出错也继续执行