LoginSignup
0
3

More than 5 years have passed since last update.

AdGuard DNS を簡単設定する

Posted at

概要

AdGuard DNS https://adguard.com/ja/adguard-dns/overview.html

広告のIPを名前解決しないDNSサービス。無料。
DNSサーバーの設定を変えるだけで使えて簡単。
スマホはWiFi接続時のみ設定可能

GUIで変更するのは面倒なので、shellを書いた

使い方

DNS設定なし → AdGuard DNS設定追加 をする場合

$ sh setAdGuardDns.sh

Please select target service. # 対象を選択
1) Ethernet
2) Wi-Fi
3) Bluetooth
4) PAN
5) Thunderbolt
6) Bridge
7) exit
#? 1
Display DNS setting of Ethernet # 実行前のDNS設定

There arent any DNS Servers set on Ethernet.
-----

Please select an action. # 処理を選択 追加 or 初期化
1) setAdGuardDns
2) unSetDns
3) exit
#? 1
setAdGuardDns done!
Display DNS setting of Ethernet # 実行後のDNS設定

176.103.130.130
176.103.130.131
176.103.130.132
176.103.130.134
-----

2) unsetDns を選ぶとDNS設定がクリアされる

code

setAdGuardDns.sh

#!/bin/sh
COLUMNS=1

# note: https://adguard.com/en/adguard-dns/overview.html#instruction
readonly DNS_IP="176.103.130.130 176.103.130.131 176.103.130.132 176.103.130.134"

function dispDnsSetting () {
    TARGET=$1
    echo "Display DNS setting of ${TARGET}"
    echo ""

    networksetup -getdnsservers $TARGET
    echo "-----"
    echo ""
}

# networkServece一覧取得
SERVICES=$(networksetup -listallnetworkservices | grep -v 'An asterisk')" exit"

# 対象選択
echo "Please select target service."
select TARGET in $SERVICES
do
    if [ "$TARGET" = "exit" ]; then
        exit
    fi

    dispDnsSetting $TARGET
    break
done

# DNS set or unSet
echo "Please select an action."
select COMMAND in setAdGuardDns unSetDns exit
do
    case $COMMAND in
    "setAdGuardDns" ) networksetup -setdnsservers $TARGET $DNS_IP ;;
    "unSetDns" ) networksetup -setdnsservers $TARGET Empty ;;
    "exit" ) exit ;;
    esac

    break
done

echo "${COMMAND} done!"
dispDnsSetting $TARGET
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3