添加重启endpoint
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
"223.6.6.6:53"
|
"223.6.6.6:53"
|
||||||
],
|
],
|
||||||
"timeout": 5000,
|
"timeout": 5000,
|
||||||
"statsFile": "./data/stats.json",
|
"statsFile": "data/stats.json",
|
||||||
"saveInterval": 300
|
"saveInterval": 300
|
||||||
},
|
},
|
||||||
"http": {
|
"http": {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"blockedDomainsCount": {},
|
|
||||||
"resolvedDomainsCount": {},
|
|
||||||
"lastSaved": "2025-11-27T18:23:48.562056138+08:00"
|
|
||||||
}
|
|
||||||
3129
data/stats.json
3129
data/stats.json
File diff suppressed because it is too large
Load Diff
BIN
dns-server
BIN
dns-server
Binary file not shown.
@@ -65,13 +65,13 @@ type Server struct {
|
|||||||
resolvedDomainsMutex sync.RWMutex
|
resolvedDomainsMutex sync.RWMutex
|
||||||
resolvedDomains map[string]*BlockedDomain // 用于记录解析的域名
|
resolvedDomains map[string]*BlockedDomain // 用于记录解析的域名
|
||||||
clientStatsMutex sync.RWMutex
|
clientStatsMutex sync.RWMutex
|
||||||
clientStats map[string]*ClientStats // 用于记录客户端统计
|
clientStats map[string]*ClientStats // 用于记录客户端统计
|
||||||
hourlyStatsMutex sync.RWMutex
|
hourlyStatsMutex sync.RWMutex
|
||||||
hourlyStats map[string]int64 // 按小时统计屏蔽数量
|
hourlyStats map[string]int64 // 按小时统计屏蔽数量
|
||||||
dailyStatsMutex sync.RWMutex
|
dailyStatsMutex sync.RWMutex
|
||||||
dailyStats map[string]int64 // 按天统计屏蔽数量
|
dailyStats map[string]int64 // 按天统计屏蔽数量
|
||||||
monthlyStatsMutex sync.RWMutex
|
monthlyStatsMutex sync.RWMutex
|
||||||
monthlyStats map[string]int64 // 按月统计屏蔽数量
|
monthlyStats map[string]int64 // 按月统计屏蔽数量
|
||||||
saveTicker *time.Ticker // 用于定时保存数据
|
saveTicker *time.Ticker // 用于定时保存数据
|
||||||
startTime time.Time // 服务器启动时间
|
startTime time.Time // 服务器启动时间
|
||||||
saveDone chan struct{} // 用于通知保存协程停止
|
saveDone chan struct{} // 用于通知保存协程停止
|
||||||
@@ -104,9 +104,9 @@ func NewServer(config *config.DNSConfig, shieldConfig *config.ShieldConfig, shie
|
|||||||
Net: "udp",
|
Net: "udp",
|
||||||
Timeout: time.Duration(config.Timeout) * time.Millisecond,
|
Timeout: time.Duration(config.Timeout) * time.Millisecond,
|
||||||
},
|
},
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
cancel: cancel,
|
cancel: cancel,
|
||||||
startTime: time.Now(), // 记录服务器启动时间
|
startTime: time.Now(), // 记录服务器启动时间
|
||||||
stats: &Stats{
|
stats: &Stats{
|
||||||
Queries: 0,
|
Queries: 0,
|
||||||
Blocked: 0,
|
Blocked: 0,
|
||||||
@@ -137,6 +137,22 @@ func NewServer(config *config.DNSConfig, shieldConfig *config.ShieldConfig, shie
|
|||||||
|
|
||||||
// Start 启动DNS服务器
|
// Start 启动DNS服务器
|
||||||
func (s *Server) Start() error {
|
func (s *Server) Start() error {
|
||||||
|
// 重新初始化上下文和取消函数
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
s.ctx = ctx
|
||||||
|
s.cancel = cancel
|
||||||
|
|
||||||
|
// 重新初始化saveDone通道
|
||||||
|
s.saveDone = make(chan struct{})
|
||||||
|
|
||||||
|
// 重置stopped标志
|
||||||
|
s.stoppedMutex.Lock()
|
||||||
|
s.stopped = false
|
||||||
|
s.stoppedMutex.Unlock()
|
||||||
|
|
||||||
|
// 更新服务器启动时间
|
||||||
|
s.startTime = time.Now()
|
||||||
|
|
||||||
s.server = &dns.Server{
|
s.server = &dns.Server{
|
||||||
Addr: fmt.Sprintf(":%d", s.config.Port),
|
Addr: fmt.Sprintf(":%d", s.config.Port),
|
||||||
Net: "udp",
|
Net: "udp",
|
||||||
@@ -178,6 +194,16 @@ func (s *Server) Start() error {
|
|||||||
|
|
||||||
// Stop 停止DNS服务器
|
// Stop 停止DNS服务器
|
||||||
func (s *Server) Stop() {
|
func (s *Server) Stop() {
|
||||||
|
// 检查服务器是否已经停止
|
||||||
|
s.stoppedMutex.Lock()
|
||||||
|
if s.stopped {
|
||||||
|
s.stoppedMutex.Unlock()
|
||||||
|
return // 服务器已经停止,直接返回
|
||||||
|
}
|
||||||
|
// 标记服务器为已停止状态
|
||||||
|
s.stopped = true
|
||||||
|
s.stoppedMutex.Unlock()
|
||||||
|
|
||||||
// 发送停止信号给保存协程
|
// 发送停止信号给保存协程
|
||||||
close(s.saveDone)
|
close(s.saveDone)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# DNS Server Hosts File
|
|
||||||
# Generated by DNS Server
|
|
||||||
|
|
||||||
::1 localhost
|
|
||||||
ad.qq.com 127.0.0.1
|
|
||||||
ad.qq.com 0.0.0.0
|
|
||||||
52202
logs/dns-server.log
52202
logs/dns-server.log
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user