1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-31 14:08:06 +08:00

fix: 禁 Ping 兼容 ipv6 (#3024)

This commit is contained in:
ssongliu 2023-11-22 14:00:09 +08:00 committed by GitHub
parent 7972de5f33
commit a0e1c30e22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -485,20 +485,31 @@ func (u *FirewallService) updatePingStatus(enable string) error {
if err != nil {
return err
}
hasV4Line, hasV6Line := false, false
if _, err := os.Stat("/proc/sys/net/ipv6/icmp_echo_ignore_all"); err != nil {
hasV6Line = true
}
files := strings.Split(string(lineBytes), "\n")
var newFiles []string
hasLine := false
for _, line := range files {
if strings.Contains(line, "net/ipv4/icmp_echo_ignore_all") || strings.HasPrefix(line, "net/ipv4/icmp_echo_ignore_all") {
if strings.HasPrefix(strings.ReplaceAll(line, " ", ""), "net/ipv4/icmp_echo_ignore_all") && !hasV4Line {
newFiles = append(newFiles, "net/ipv4/icmp_echo_ignore_all="+enable)
hasLine = true
} else {
hasV4Line = true
continue
}
if strings.HasPrefix(strings.ReplaceAll(line, " ", ""), "net/ipv6/icmp_echo_ignore_all") && !hasV6Line {
newFiles = append(newFiles, "net/ipv6/icmp_echo_ignore_all="+enable)
hasV6Line = true
continue
}
newFiles = append(newFiles, line)
}
}
if !hasLine {
if !hasV4Line {
newFiles = append(newFiles, "net/ipv4/icmp_echo_ignore_all="+enable)
}
if !hasV6Line {
newFiles = append(newFiles, "net/ipv6/icmp_echo_ignore_all="+enable)
}
file, err := os.OpenFile(confPath, os.O_WRONLY|os.O_TRUNC, 0666)
if err != nil {
return err