支持DNS上游服务器的并行,最快,均衡查询模式

This commit is contained in:
Alex Yang
2025-12-17 19:15:17 +08:00
parent 307fbefee2
commit 5d0fb6d4fe
42 changed files with 714 additions and 584346 deletions

96
test_query_modes.sh Normal file
View File

@@ -0,0 +1,96 @@
#!/bin/bash
# 测试三种查询模式
echo "=== 测试三种查询模式 ==="
# 确保dig命令存在
if ! command -v dig &> /dev/null; then
echo "dig命令不存在使用nslookup替代"
USE_DIG=false
else
USE_DIG=true
fi
echo "1. 测试并行请求模式"
echo "修改配置文件为parallel模式"
sed -i 's/"queryMode": "[^"]*"/"queryMode": "parallel"/' config.json
cat config.json | grep queryMode
echo "重启DNS服务器..."
pkill -f "go run main.go"
sleep 2
go run main.go > server.log 2>&1 &
SERVER_PID=$!
echo "服务器进程ID: $SERVER_PID"
sleep 5
if [ -f server.log ]; then
tail -5 server.log
fi
echo "测试DNS查询..."
if $USE_DIG; then
dig @localhost example.com +short
else
nslookup example.com localhost | grep -A 2 "Name:"
fi
echo "2. 测试负载均衡模式"
echo "修改配置文件为loadbalance模式"
sed -i 's/"queryMode": "[^"]*"/"queryMode": "loadbalance"/' config.json
cat config.json | grep queryMode
echo "重启DNS服务器..."
pkill -f "go run main.go"
sleep 2
go run main.go > server.log 2>&1 &
SERVER_PID=$!
echo "服务器进程ID: $SERVER_PID"
sleep 5
if [ -f server.log ]; then
tail -5 server.log
fi
echo "测试DNS查询..."
if $USE_DIG; then
dig @localhost example.com +short
else
nslookup example.com localhost | grep -A 2 "Name:"
fi
echo "3. 测试最快的IP地址模式"
echo "修改配置文件为fastest-ip模式"
sed -i 's/"queryMode": "[^"]*"/"queryMode": "fastest-ip"/' config.json
cat config.json | grep queryMode
echo "重启DNS服务器..."
pkill -f "go run main.go"
sleep 2
go run main.go > server.log 2>&1 &
SERVER_PID=$!
echo "服务器进程ID: $SERVER_PID"
sleep 5
if [ -f server.log ]; then
tail -5 server.log
fi
echo "测试DNS查询..."
if $USE_DIG; then
dig @localhost example.com +short
else
nslookup example.com localhost | grep -A 2 "Name:"
fi
echo "=== 测试完成 ==="
echo "停止DNS服务器..."
pkill -f "go run main.go"
# 删除日志文件
rm -f server.log
echo "恢复默认配置..."
sed -i 's/"queryMode": "[^"]*"/"queryMode": "parallel"/' config.json
cat config.json | grep queryMode