在 Golang 中如何操作 Linux iptables 链表?

在 golang 中如何操作 linux iptables 链表?

golang 中操作 linux iptables

问题:如何使用 golang 操作 linux iptables 链表?

答案:

golang 中有两个可用于操作 linux iptables 链表的库:

  • go-iptables:提供基本操作方法,如插入、删除和查询规则。
  • iptables-go:提供更高级的操作方法,包括对表、链表和规则的操作。

示例:

使用 go-iptables 插入 iptables 规则:

import "github.com/coreos/go-iptables/iptables"

func main() {
    ipt, err := iptables.new()
    if err != nil {
        panic(err)
    }
    err = ipt.insert("filter", "input", 1, "-p", "tcp", "-m", "tcp", "--dport", "80", "-j", "accept")
    if err != nil {
        panic(err)
    }
}

使用 iptables-go 插入 iptables 规则:

import "github.com/corestone/iptables-go"

func main() {
    ipt := iptables.New()
    ipt.Append("filter", "INPUT", []string{"-p", "tcp", "-m", "tcp", "--dport", "80", "-j", "ACCEPT"})
}

以上就是在 Golang 中如何操作 Linux iptables 链表?的详细内容,更多请关注其它相关文章!