給自己做個紀錄。
確認指令和參數能不能使用:
curl -s -o /dev/null -w "%{time_namelookup}\n" http://google.com
0.030606
確認系統的DNS設定檔能不能被手動更動:
# cat /etc/resolv.conf
nameserver 192.168.0.1
# ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 16 May 7 13:05 /etc/resolv.conf -> /var/resolv.conf
#
# ls -l /var/resolv.conf
-rw-r--r-- 1 root root 50 May 27 09:53 /var/resolv.conf
# cat /var/resolv.conf
nameserver 192.168.0.1
#
測試程式碼:
RESOLV=/var/resolv.conf
echo "backuping original resolv.conf"
cp $RESOLV /tmp/resolv.bak
cat /tmp/resolv.bak
echo "testing DNS server response"
for dns in 1.1.1.1 8.8.8.8 9.9.9.9 168.95.1.1 168.95.192.1 101.101.101.101 \
1.0.0.1 8.8.4.4 180.76.76.76; do
echo "nameserver $dns" > $RESOLV
avg=$(i=0; while [ $i -lt 10 ]; do
curl -s -o /dev/null -w "%{time_namelookup}\n" http://google.com 2>/dev/null
i=$((i+1))
done | awk '{sum+=$1; n++} END {if(n>0) printf "%.3f", sum/n; else print "timeout"}')
echo "$dns -> avg ${avg}s"
done
echo "restoring resolv.conf"
cp /tmp/resolv.bak $RESOLV
echo "checking resolv.conf contain"
cat $RESOLV
echo "--- DONE ---"
執行後會類似這樣顯示做參考:
1.1.1.1 -> avg 0.077s
8.8.8.8 -> avg 0.031s
9.9.9.9 -> avg 0.065s
168.95.1.1 -> avg 0.032s
168.95.192.1 -> avg 0.031s
101.101.101.101 -> avg 0.031s
1.0.0.1 -> avg 0.073s
8.8.4.4 -> avg 0.036s
180.76.76.76 -> avg 0.203s
# cp /tmp/resolv.bak $RESOLV
# echo "--- DNS restored ---"
--- DNS restored ---
# cat $RESOLV
nameserver 192.168.0.1
#