UDP连接也检查IP名单

This commit is contained in:
GoEdgeLab
2024-05-03 15:11:54 +08:00
parent f8f17881aa
commit 6db792a7c9

View File

@@ -3,7 +3,9 @@ package nodes
import (
"errors"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/TeaOSLab/EdgeNode/internal/firewalls"
"github.com/TeaOSLab/EdgeNode/internal/goman"
"github.com/TeaOSLab/EdgeNode/internal/iplibrary"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/stats"
"github.com/TeaOSLab/EdgeNode/internal/utils"
@@ -164,7 +166,7 @@ func (this *UDPListener) servePacketListener(listener UDPPacketListener) error {
}
})
var buffer = make([]byte, 4*1024)
var buffer = make([]byte, 4<<10)
for {
if this.isClosed {
return nil
@@ -183,6 +185,16 @@ func (this *UDPListener) servePacketListener(listener UDPPacketListener) error {
return err
}
// 检查IP名单
clientIP, _, parseHostErr := net.SplitHostPort(clientAddr.String())
if parseHostErr == nil {
ok, _, expiresAt := iplibrary.AllowIP(clientIP, firstServer.Id)
if !ok {
firewalls.DropTemporaryTo(clientIP, expiresAt)
continue
}
}
if n > 0 {
this.connLocker.Lock()
conn, ok := this.connMap[clientAddr.String()]