mirror of
https://github.com/v2rayA/v2rayA.git
synced 2026-10-19 07:02:05 +08:00
32 lines
577 B
Go
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
|
|
}
|