AndroidでテザリングしているときにMacのDNSがうまく固定できず、毎回設定し直してしまって疲れていませんか。
この記事を読むと、Mac側とAndroid側それぞれで使える実際的な手順と、コマンドとGUIの両方を交えたやさしい操作ガイドでDNSを確実に固定できるようになります。
| 項目 | 内容 |
|---|---|
| わかりやすい手順 | 初心者でも迷わないように画面操作とコマンド操作を段階的に説明します。 |
| プログラマー視点の小ワザ | scutilやnetworksetupの使い方や、テザリング特有の落とし穴を避ける実例を紹介します。 |
| 実用的なトラブル対応 | DNSが反映されないときの確認ポイントや、恒久的な回避策までカバーします。 |
まずは手順通りに設定して、繰り返しの手間を減らしましょう。困ったときにすぐ戻れるように段階を踏んだ説明になっているので安心してください。
Android博士落ち着いて進めれば必ず設定できますから、焦らず一歩ずつ試していきましょう。うまくいかないときは原因を一緒に追いかける感覚で対応していけば大丈夫です。
MacでAndroidテザリング時にDNSを固定する基本手順


AndroidをテザリングしてMacを使うとき、DNSがスマホ側の設定に引きずられてしまい速度が変わったり広告フィルタが効かなくなったりします。ここではWi-FiテザリングとUSBテザリングの両方で、Mac側からDNSを固定する手順をわかりやすくまとめます。
やり方は大きく分けてGUIでの設定とTerminalでの設定です。GUIは直感的で迷いにくく、Terminalは一度覚えるとスクリプトで再現できます。最後にdigコマンドで確認する方法も紹介します。
- Wi-Fiテザリング:システム設定でDNSを追加するかnetworksetupコマンドで指定する方法です。
- USBテザリング:MacのネットワークサービスでUSBのDNSを追加するかnetworksetupで指定する方法です。



困ったときは落ち着いて順番にやれば大丈夫です。まずはGUIで動くか試して、慣れたらTerminalで一発で直せるようにしておくと後が楽になりますよ。
MacでWi-Fiホットスポット接続時にDNSを設定する方法


Wi-Fiホットスポット接続時はMac側で接続先のDNSを上書きできます。システム設定でネットワークを開き、接続中のWi-Fiの詳細からDNSを追加するのが一番やさしい方法です。
システム設定>ネットワーク>Wi-Fi>詳細>DNSで既存のサーバーの上に優先したいDNSサーバーを追加してください。追加後は保存して接続を再確立します。
Terminalでnetworksetupコマンドを使うと確実に上書きできます。例:networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4 と入力して設定を反映します。
Androidでホットスポットを有効にしてMacのWi-Fiに接続する
Androidの設定>ネットワークとインターネット>ホットスポットとテザリングからWi‑Fiホットスポットを有効にしてください。
ホットスポットの名前とパスワードをメモしておくと接続がスムーズになります。セキュリティはWPA2以上にしてください。
MacのWi‑Fiメニューから該当のSSIDを選びパスワードを入力して接続してください。
Terminalでnetworksetupコマンドを使ってWi-FiのDNSを設定しdigで確認する
Terminalを開きnetworksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4 を実行してください。既存のDNSを上書きして指定したサーバーに固定します。
digコマンドで名前解決を確認します。例:dig +short example.com を実行して期待するIPが返るか確認してください。
MacでUSBテザリング接続時にDNSを設定する方法


USBテザリングではAndroidがルーター役になりますが、Macのネットワークサービス側でDNSを上書きできます。USB接続は物理的に安定するので、DNS固定の効果が安定して出やすいです。
システム設定>ネットワークで接続されているUSBのサービスを選びDNSを追加します。追加後は適用して接続を再確立してください。
Terminalでnetworksetupコマンドを使うと同じ設定ができます。まずnetworksetup -listallnetworkservicesでサービス名を確認しnetworksetup -setdnsservers “サービス名” 8.8.8.8 8.8.4.4 を実行します。
AndroidでUSBテザリングを有効にしてMacにUSB接続する
Androidの設定>ネットワークとインターネット>ホットスポットとテザリングでUSBテザリングをオンにしてください。ケーブルがデータ転送対応であることを確認してください。
USBで接続するとMac側に新しいネットワークインターフェースが表示されます。表示が出ない場合はケーブルや端末の接続モードを見直してください。
Macのシステム設定でUSBのネットワークサービスを選んでDNSを追加するかnetworksetupで設定して確認する
システム設定>ネットワークで該当のUSBネットワークサービスを選びDNSセクションに優先するDNSサーバーを追加して適用してください。
Terminalでnetworksetup -listallnetworkservices でサービス名を確認しnetworksetup -setdnsservers “サービス名” 8.8.8.8 8.8.4.4 を実行して設定を反映してください。
DNSが効かないときにMacでまず試すトラブル対処


AndroidテザリングでMac側だけDNSが効かないと焦りますよね。でも慌てなくて大丈夫です。まずは簡単な切り分けをして原因を絞るだけで、多くの場合すぐ直ります。
ここでは短時間で試せる基本の対処をまとめます。どれも管理者パスワードがあればできる手順なので、落ち着いて順に試してみてください。
- テザリングをいったんオフにして再接続する。
- Macのネットワーク設定でDNSを手動指定してみる。例はGoogleDNSやCloudflareDNS。
- DNSキャッシュとmDNSをクリアして再試行する。
- IPv6やネットワークサービスの優先度を確認して調整する。



落ち着いて順番に確認すれば意外とすぐ直りますよ。ひとつずつ試して状況をメモしておくと原因が見つかりやすくなります。
MacでDNSキャッシュとmDNSを確実にクリアする方法


DNSが効かないときはまずキャッシュとmDNSをクリアすると効果が出やすいです。キャッシュは古い名前解決情報を持っていることがあり、mDNSはローカル名前解決で干渉することがあります。
以下のコマンドをTerminalで実行すると両方を確実にクリアできます。管理者権限を求められますのでパスワードを用意してください。
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Terminalでsudo dscacheutil -flushcacheとsudo killall -HUP mDNSResponderを実行する
アプリケーションフォルダ内のTerminalを開くかSpotlightで起動してください。
sudo dscacheutil -flushcacheを実行してDNSキャッシュをクリアしてください。パスワード入力が求められます。
sudo killall -HUP mDNSResponderを実行してmDNSのプロセスを再起動してください。完了後に接続を確認してください。
IPv6やインターフェース優先度が原因のときの対処(Mac)


IPv6が有効な場合やネットワークサービスの優先度が想定と違う場合、DNS問い合わせが期待したインターフェースを通らないことがあります。特にモバイルテザリングではIPv6の扱いが端末によって違うため注意が必要です。
問題を絞るためには対象のサービスだけIPv6をオフにするか、サービス順序を調整して優先インターフェースを確認します。GUIで分かりにくければnetworksetupコマンドで確認できます。
networksetupで対象サービスのIPv6を無効にしてDNSを再設定して接続を確認する
networksetup -listallnetworkservicesでテザリングに使っているサービス名を確認してください。正確な名前が必要です。
sudo networksetup -setv6off サービス名を実行してそのサービスのIPv6をオフにしてください。操作後にDNSの効き具合を確認してください。
sudo networksetup -setdnsservers サービス名 8.8.8.8 8.8.4.4のようにDNSを明示的に指定して、ブラウザやpingで名前解決を確認してください。
応用Macで特定のドメインだけ別のDNSにするやり方


特定のドメインだけ別のDNSを使いたい場面は意外と多いです。たとえば社内サービスだけ社内DNSに向けたいときや、海外の特定サイトだけ高速なDNSで扱いたいときに便利です。
ここでは手軽に使える方法と細かく制御できる方法をわかりやすく紹介します。選びやすいように実際の操作のコツやトラブルになりやすいポイントも添えますので安心してください。
- ドメイン単位で静的に割り当てるなら/etc/resolverにファイルを置く方法。手間は少なく確実に効きます。
- より柔軟にルールを作るならHomebrewでdnsmasqを入れてローカルにリゾルバを立てる方法。フォワード先を細かく制御できます。
Macの/etc/resolverでドメインごとにDNSを指定する方法


/etc/resolverはドメインごとの名前解決設定を置けるシンプルで頼りになる仕組みです。ドメイン名のファイルを作ってnameserverを書くだけで、そのドメインの問い合わせは指定したDNSに送られます。
メリットは設定が直感的でOS標準の仕組みを使う点です。注意点としては複数のネットワーク間で動作を確認するときに優先度やキャッシュに気をつける必要があります。
sudoで/etc/resolver/ドメイン名ファイルを作りnameserver行でDNSを指定して動作を確認する
sudoで/etc/resolver/ドメイン名というファイルを作ります。ファイル名は扱いたいドメインと同じにします。
ファイルにnameserver 1.2.3.4のように指定したいDNSを書き込みます。これでそのドメインは指定DNSへ向かいます。
digやnslookupでドメインを問い合わせて応答先を確認します。うまく行かないときはキャッシュクリアやファイル名の綴りを再確認してください。
Homebrewのdnsmasqでテザリング時も細かくDNSを制御する方法


dnsmasqを使うときはローカルで名前解決の中継点を作り、条件ごとに転送先を決められます。テザリングのようにネットワーク環境が変わる場面でもローカルに立てたdnsmasqに向けておけば設定を一本化できます。
起動管理や自動起動を整えておけば、接続ごとに手動で設定を変える必要が減ります。細かなルールを作る人や複数のフォワーダーを使いたい人に特に向いています。
brewでdnsmasqをインストールして設定ファイルでフォワード先を定め起動しMacのDNSを127.0.0.1に向ける
brew install dnsmasqでdnsmasqを入れます。AppleSilicon環境でもHomebrewのパスに合わせて動きます。
設定ファイルにserver=/example.com/1.2.3.4のようにフォワード先を追加して保存します。必要に応じて複数ルールを作れます。
dnsmasqを起動し、Macのネットワーク設定でDNSを127.0.0.1に向けます。これでdnsmasq経由で指定ドメインだけ別DNSに流れます。
よくある質問


- MacでAndroidテザリング時にDNSを固定できますか。
できます。システム設定のネットワークからWi-Fiの詳細でDNSを追加してください。Cloudflareの1.1.1.1やGoogleの8.8.8.8が使いやすいです。
- 設定が反映されないときはどうすればいいです。
Android側のDHCPで上書きされることがあります。新しいロケーションを作ってそのロケーションでDNSを指定すると安定します。接続の再起動やMacの再起動も試してください。
- USBテザリングやBluetoothテザリングでも同じ方法で使えますか。
基本は同じですが、USBやBluetoothは別のネットワークサービスになります。システム設定で該当のサービスを選んでDNSを設定してください。USBだと優先順位に注意してください。
- 設定後に名前解決の問題が残るときはどうする。
DNSキャッシュのクリアやブラウザの再起動が効きます。特定のサイトだけ問題があるときは別のDNSを試して切り分けてください。
- すぐ元に戻ってしまう場合の最後の手は何。
日常的に使うなら新しいロケーションを切り替えて使う習慣が便利です。どうしても安定しないときはUSBテザリングやモバイルルーターを検討してください。
まとめ


この記事では、MacでAndroidテザリング中にDNSを固定するための実用的な手順をやさしく説明しました。GUIでの設定とターミナルを使う方法をそれぞれ紹介し、状況に応じて使い分けられるようにしています。最初は少し混乱するかもしれませんが順を追えばできます。
まずはシステム環境設定のネットワークから接続ごとにDNSを指定するのが手軽で確実です。もう一歩のときはnetworksetupやscutilでサービス名を指定してDNSを固定する方法も使えます。Android側のプライベートDNSも確認すると接続が安定します。
接続できないときはサービス名の確認やDHCPリースの更新、ホットスポットの再接続を試してください。最後にdigやnslookupで名前解決を確認するとトラブルが早く解決します。コマンド実行に管理者権限が必要な場合があるので注意してください。
