mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	nftables:自动升级以前的drop规则为reject规则
This commit is contained in:
		@@ -13,6 +13,7 @@ import (
 | 
				
			|||||||
	"github.com/TeaOSLab/EdgeNode/internal/goman"
 | 
						"github.com/TeaOSLab/EdgeNode/internal/goman"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
 | 
						"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
 | 
				
			||||||
	executils "github.com/TeaOSLab/EdgeNode/internal/utils/exec"
 | 
						executils "github.com/TeaOSLab/EdgeNode/internal/utils/exec"
 | 
				
			||||||
 | 
						"github.com/google/nftables/expr"
 | 
				
			||||||
	"github.com/iwind/TeaGo/types"
 | 
						"github.com/iwind/TeaGo/types"
 | 
				
			||||||
	"net"
 | 
						"net"
 | 
				
			||||||
	"os/exec"
 | 
						"os/exec"
 | 
				
			||||||
@@ -229,6 +230,16 @@ func (this *NFTablesFirewall) init() error {
 | 
				
			|||||||
			// rule
 | 
								// rule
 | 
				
			||||||
			var ruleName = []byte(setAction)
 | 
								var ruleName = []byte(setAction)
 | 
				
			||||||
			rule, err := chain.GetRuleWithUserData(ruleName)
 | 
								rule, err := chain.GetRuleWithUserData(ruleName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// 将以前的drop规则删掉,替换成后面的reject
 | 
				
			||||||
 | 
								if err == nil && setAction != "allow" && rule != nil && rule.VerDict() == expr.VerdictDrop {
 | 
				
			||||||
 | 
									deleteErr := chain.DeleteRule(rule)
 | 
				
			||||||
 | 
									if deleteErr == nil {
 | 
				
			||||||
 | 
										err = nftables.ErrRuleNotFound
 | 
				
			||||||
 | 
										rule = nil
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				if nftables.IsNotFound(err) {
 | 
									if nftables.IsNotFound(err) {
 | 
				
			||||||
					if tableDef.IsIPv4 {
 | 
										if tableDef.IsIPv4 {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user