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:
parent
7972de5f33
commit
a0e1c30e22
@ -485,20 +485,31 @@ func (u *FirewallService) updatePingStatus(enable string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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")
|
files := strings.Split(string(lineBytes), "\n")
|
||||||
var newFiles []string
|
var newFiles []string
|
||||||
hasLine := false
|
|
||||||
for _, line := range files {
|
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)
|
newFiles = append(newFiles, "net/ipv4/icmp_echo_ignore_all="+enable)
|
||||||
hasLine = true
|
hasV4Line = true
|
||||||
} else {
|
continue
|
||||||
newFiles = append(newFiles, line)
|
|
||||||
}
|
}
|
||||||
|
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)
|
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)
|
file, err := os.OpenFile(confPath, os.O_WRONLY|os.O_TRUNC, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user