Files
2026-07-02 13:10:12 +08:00

32 lines
577 B
Go

//go:build linux
// +build linux
package ipforward
import (
"fmt"
"os"
"strings"
)
func IsIpForwardOn() bool {
out, err := os.ReadFile("/proc/sys/net/ipv4/ip_forward")
return err == nil && strings.TrimSpace(string(out)) == "1"
}
func WriteIpForward(on bool) (err error) {
defer func() {
if err != nil {
err = fmt.Errorf("WriteIpForward: %w", err)
}
}()
val := "0"
if on {
val = "1"
}
err = os.WriteFile("/proc/sys/net/ipv4/ip_forward", []byte(val), 0644)
// ipv6
_ = os.WriteFile("/proc/sys/net/ipv6/conf/all/forwarding", []byte(val), 0644)
return
}