增加更多匹配的域名信息
This commit is contained in:
21
.trae/documents/修复添加自定义规则后需要重启服务器的问题.md
Normal file
21
.trae/documents/修复添加自定义规则后需要重启服务器的问题.md
Normal file
@@ -0,0 +1,21 @@
|
||||
1. **问题分析**:
|
||||
- 当添加自定义规则时,规则被添加到内存中并保存到文件
|
||||
- 但由于DNS缓存的存在,如果该域名的DNS响应已经被缓存,那么在缓存过期之前,DNS服务器会直接返回缓存的响应,而不会重新检查规则
|
||||
- 这就导致了添加规则后需要重启服务器才能生效的问题
|
||||
|
||||
2. **修复方案**:
|
||||
- 当添加或删除自定义规则时,清空DNS缓存,这样新的规则会立即生效
|
||||
- 这样,当客户端再次请求该域名时,DNS服务器会重新检查规则,而不是直接返回缓存的响应
|
||||
|
||||
3. **修复步骤**:
|
||||
- 修改HTTP API处理函数,在添加或删除规则后,清空DNS缓存
|
||||
- 或者,修改ShieldManager的AddRule和RemoveRule方法,添加清空DNS缓存的逻辑
|
||||
- 测试修复后的功能,确保添加规则后无需重启服务器即可生效
|
||||
|
||||
4. **预期结果**:
|
||||
- 添加自定义规则后,规则会立即生效,无需重启服务器
|
||||
- 重启服务器后,之前添加的自定义规则仍然存在
|
||||
|
||||
5. **具体实现**:
|
||||
- 在`/root/dns/http/server.go`中,在添加或删除规则的API处理函数后,调用DNS缓存的Clear方法
|
||||
- 这样,当添加或删除规则时,DNS缓存会被清空,新的规则会立即生效
|
||||
Reference in New Issue
Block a user