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

fix: 防火墙禁 ping 增加判断条件,不存在文件则隐藏 (#643)

This commit is contained in:
ssongliu 2023-04-14 17:14:57 +08:00 committed by GitHub
parent 6595ad6228
commit 5ce1b1591a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 18 deletions

View File

@ -36,10 +36,14 @@ func NewIFirewallService() IFirewallService {
func (u *FirewallService) LoadBaseInfo() (dto.FirewallBaseInfo, error) {
var baseInfo dto.FirewallBaseInfo
baseInfo.PingStatus = u.pingStatus()
baseInfo.Status = "not running"
baseInfo.Version = "-"
baseInfo.Name = "-"
client, err := firewall.NewFirewallClient()
if err != nil {
if err.Error() == "no such type" {
return dto.FirewallBaseInfo{Name: "-", Version: "-", Status: "not running", PingStatus: "Disable"}, nil
return baseInfo, nil
}
return baseInfo, err
}
@ -48,12 +52,7 @@ func (u *FirewallService) LoadBaseInfo() (dto.FirewallBaseInfo, error) {
if err != nil {
return baseInfo, err
}
baseInfo.PingStatus, err = u.pingStatus()
if err != nil {
return baseInfo, err
}
if baseInfo.Status == "not running" {
baseInfo.Version = "-"
return baseInfo, err
}
baseInfo.Version, err = client.Version()
@ -365,12 +364,15 @@ func (u *FirewallService) loadPortByApp() []portOfApp {
return datas
}
func (u *FirewallService) pingStatus() (string, error) {
func (u *FirewallService) pingStatus() string {
if _, err := os.Stat("/etc/sysctl.conf"); err != nil {
return constant.StatusNone
}
stdout, _ := cmd.Exec("sudo cat /etc/sysctl.conf | grep net/ipv4/icmp_echo_ignore_all= ")
if stdout == "net/ipv4/icmp_echo_ignore_all=1\n" {
return constant.StatusEnable, nil
return constant.StatusEnable
}
return constant.StatusDisable, nil
return constant.StatusDisable
}
func (u *FirewallService) updatePingStatus(enabel string) error {

View File

@ -9,4 +9,5 @@ const (
StatusUploading = "Uploading"
StatusEnable = "Enable"
StatusDisable = "Disable"
StatusNone = "None"
)

View File

@ -22,6 +22,7 @@
{{ $t('commons.button.start') }}
</el-button>
</span>
<span v-if="onPing !== 'None'">
<el-divider direction="vertical" />
<el-button type="primary" link>{{ $t('firewall.noPing') }}</el-button>
<el-switch
@ -31,6 +32,7 @@
@change="onPingOperate"
v-model="onPing"
/>
</span>
</div>
</el-card>
</div>