LoginSignup
2
4

More than 5 years have passed since last update.

dnsmasq を使った Android 実機向けローカルDNSサーバの構築

Last updated at Posted at 2018-05-18

何でやろうと思ったか?

  • Android実機でhostsを書き換えるのはすごく面倒
  • ソースコードに手を入れることなく、APIサーバの通信を切り替えたい

概要

  • dnsmasqを使い、Android実機向けにローカルDNSを立てる
  • 対象となるドメインのみ、別途hostsに設定したサーバに向ける

注意事項

「ローカルドメインおよび自分の所有しているドメイン」以外で、この方法を使用してはいけません。

動作検証環境

  • MacBook Pro (15-inch, 2017)
  • macOS 10.13.4
  • homebrew
  • Android Studio 3.2 Preview
  • Nexus 5X(Android 8.1)

手順

1. dnsmasq をインストール

$ brew install dnsmasq

2. dnsmasq.conf を書き換える

$ sudo vi /user/local/etc/dnsmasq.conf
addn-hosts=/etc/dnsmasq.hosts  #専用hostsファイルを設定する
log-queries                    #クエリログを出力する

3. 専用の hosts ファイルに設定を書き込む

$ sudo vi /etc/dnsmasq.hosts
# test-api01.example.co.jp(192.168.10.100) を api01.example.co.jp として名前解決する
192.168.10.100 api01.example.co.jp 

4. dnsmasq を起動する

$ sudo brew services start dnsmasq

5. Android 端末のDNS設定に自分のMacのIPアドレスを設定する

※Nexus 5X(Android 8.1) での操作例です。

  1. [設定]を選択する
  2. [ネットワークとインターネット]を選択する
  3. [Wi-Fi]を選択する
  4. 使用中のWi-Fiを選択する
  5. [ネットワークを変更]を選択する
  6. [詳細設定]を選択する
  7. [IP設定]を[DHCP]から[静的]に変更する
  8. [DNS1]に自分のMacのIPを設定する
  9. [DNS2]に既存のDNSを設定する(8.8.8.8等)
2
4
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
2
4