mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-10-30 16:05:30 +00:00
28 lines
638 B
Go
28 lines
638 B
Go
package docker_guard
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
const ipv4ForwardingPath = "/proc/sys/net/ipv4/ip_forward"
|
|
|
|
var ErrIPv4ForwardingDisabled = errors.New("IPv4 forwarding is disabled; set net.ipv4.ip_forward=1 before using Docker's firewall backend")
|
|
|
|
func CheckIPv4Forwarding() error {
|
|
return checkIPv4Forwarding(os.ReadFile)
|
|
}
|
|
|
|
func checkIPv4Forwarding(readFile func(string) ([]byte, error)) error {
|
|
value, err := readFile(ipv4ForwardingPath)
|
|
if err != nil {
|
|
return fmt.Errorf("inspect IPv4 forwarding: %w", err)
|
|
}
|
|
if strings.TrimSpace(string(value)) != "1" {
|
|
return ErrIPv4ForwardingDisabled
|
|
}
|
|
return nil
|
|
}
|