AndroidでLAN内DNS(AdGuard Home)にIPv4アドレスでアクセスする

うちのプロバイダは楽天ひかりなのだが、楽天ひかりはIPv6必須となっている。で、LAN内DNSとしてAGHを利用しているのだが、最近のOSだとIPv6が優先されてLAN内ドメインの名前解決がうまくいかない。多分ルータとAGHでそれぞれIPv6の設定をきちんとやればうまくいくのだろうけれど1ミリもやる気が起きない。

なのでクライアント側でWi-fiネットワークの設定からIPv6を切っているのだが、PCはそれでよくてもスマホで詰まった。IPv6切れない。どうしてそういうことするの…。

目次

環境

  • ルータ: TP-Link AX5400
  • サーバ: Linux Mint Xfce 22.3
    • DNS: AdGuard Home(AGH)
    • リバースプロキシ: Caddy
  • Android 15 (Pixel 7)
    • RethinkDNS
    • MacroDroid

やりたいことは、Android側でDNSをIPv4でAGH入れたサーバに向ける。

標準のDNSサーバ指定じゃいかんのか?

Androidには一応静的IPでDNSサーバを指定する機能もある。一見これでおしまいに見えるが、実際にはIPv4のサーバアドレスしか指定できないうえに、IPv6は切れないし、IPv6で名前解決失敗したらIPv4で試すとかするわけでもない、中途半端な無能

なので標準の機能では無理。

RethinkDNSで強制する

RethinkDNSをダウンロード&インストールする。

  1. 最初の画面で「DNS」を選択
  2. 「その他のDNS」
  3. 「DNS 53」
  4. +ボタンで追加してチェックを入れる
    • IPアドレスとポート番号だけ記述。ポートは普通は53
  5. 最初の画面に戻って「開始」

これでLAN内ドメインの名前解決できるか試す。いけたらOK。

MacroDroidでネットワークを検知してOn/Off

これだけだとネットワークから離脱したり入ったりするたびにRethinkDNS起動してOn/Offしないといけないめんどくさい。

なのでマクロアプリを入れて自動化。ここではMacroDroidをインストール&ダウンロード

まず開始のトリガを作る。

  1. +でマクロの追加
  2. トリガー
    • +を長押し
    • 「Wi-fi状態の変化」
    • 「ネットワークに接続時」より指定
  3. アクション
    • 「アプリ」「アプリを起動」より「RethinkDNS」を選択
    • 「待機」で検索「1秒」
    • 「機器の操作や動作」「UI画面操作」より「クリック」で「テキスト」の「開始」

これでネットワークに参加したとき、自動で開始したらOK。

同様に停止のマクロも作成。

  1. +でマクロの追加
  2. トリガー
    • +を長押し
    • 「Wi-fi状態の変化」
    • 「ネットワークに切断時」より指定
  3. アクション
    • 「アプリ」「アプリを起動」より「RethinkDNS」を選択
    • 「待機」で検索「1秒」
    • 「機器の操作や動作」「UI画面操作」より「クリック」で「テキスト」の「停止」

ネットワークから離脱したときに自動で停止したらOK。

なにもかも違ってますか

なにか間違っているような気がして仕方ないが、とりあえずこれで運用している。起動しながら移動していれば問題ないのだが、画面OFFにしたまま移動すると動いてない感じ。まぁでも他にやりようもなく。自分は割と外に出るときはスマホいじりながら出るので…。

以上。

この記事をいいなと思っていただけた方、よければ高評価・チャンネル登録……はないので、コメント・SNSでシェア・ブックマーク、RSSフィード登録を、よろしくお願い致します。

コメント

コメントする

目次