DocBit Notes チュートリアル

hostsファイルでBinanceドメインを強制解決することは可能か

少数のユーザーは、BinanceのDNS解決に失敗した際、hostsファイルを使って強制的に binance.com を特定の固定IPに向けることを考えます。この方法は本当に実現可能でしょうか?本ノートではこれを詳しく解説します。直接ログインする場合は Binance公式サイト を開き、アプリのダウンロードは Binance公式アプリ から行ってください。iPhoneのインストールは iOS導入チュートリアル をご覧ください。

hostsファイルの仕組み

hostsファイルは、オペレーティングシステムのローカルドメイン名解決テーブルです:

  • パス(Win):C:\Windows\System32\drivers\etc\hosts
  • パス(macOS / Linux):/etc/hosts
  • 形式:IPアドレス + スペース + ドメイン名

1行につき1つのマッピングを記述します。システムがドメイン名を解決する際、優先してhostsを検索し、見つかった場合はDNSを経由しません。

Binanceをhostsに追記する

理論的には次のように記述できます:

104.16.x.x binance.com
104.16.x.x www.binance.com

(ここのIPは現在のCloudflare CDNのIPである必要があり、毎日変動する可能性があります。)

記述が完了すると、システムは binance.com へのアクセスに直接このIPを使用し、DNSを経由しなくなります。

実現可能性における問題点

理論上は可能ですが、実際にはいくつかの大きな落とし穴があります:

落とし穴 1 · CloudflareのIPは動的 BinanceのメインドメインはCloudflare CDNを利用しています。CloudflareのIPは毎日、あるいは数時間ごとに変動します:

  • 今日は 104.16.1.5 でも、明日は 104.16.2.10 になるかもしれません。
  • 固定で書き込んだIPはすぐに無効になる可能性があります。
  • 無効になった後、binance.com へのアクセスは再び失敗します。

落とし穴 2 · CDNノードのマッチングエラー Cloudflareはユーザーの現在地に基づいて最も近いノードのIPを割り当てます:

  • 固定で記述したIPが欧米のノードである可能性があります。
  • 実際には日本にいるのに、強制的に欧米のノードを経由する → アクセスが非常に遅くなります。

落とし穴 3 · SSL証明書の検証失敗 SSL証明書はIPではなくドメイン名に結びついています。hostsで binance.com をIPに向けた場合でも、ブラウザはドメイン名に基づいて証明書を検証します。通常は正常に動作しますが、途中でエラーが発生すると警告が出ます。

落とし穴 4 · 複数のサブドメイン問題 Binanceにはメインドメイン以外にも、api、accounts、s3などのサブドメインがあります。これらすべてをhostsに記述する必要があり、それぞれのIPも異なります。メンテナンスのコストが高くなります。

落とし穴 5 · アプリは必ずしもhostsを遵守しない デスクトップアプリは通常hostsを読み込みますが、モバイルアプリの一部は読み込みません(システムの基盤となるネットワークスタックに依存するため)。

hostsを推奨しない理由

総合的に見て、hostsによるBinanceの強制解決は推奨しません。その理由は以下の通りです:

  • メンテナンスが面倒(IPが頻繁に変動する)
  • パフォーマンスの低下(最も近いCDNノードを逃す)
  • アクセラレーションのバイパス(CDNのスマートルーティングが無効になる)
  • 有効期間が短い(IPが無効になった後、再度調べる必要がある)

推奨される代替手段

hostsを利用せず、以下のより良い方法を選択してください:

解決策 1 · パブリックDNSの切り替え 1.1.1.1 や 8.8.8.8 を使用し、DNSに自動で最適なIPを解決させます。詳細はDNS切り替えの記事をご覧ください。

解決策 2 · DoH / DoT 暗号化DNSの使用 DNSのハイジャックを防ぎつつ、自動で最適なIPを取得します。

解決策 3 · アプリの使用 アプリにはアクセスポイントの選択機能が組み込まれており、ブラウザよりもスマートです。

解決策 4 · デスクトップクライアントの使用 クライアントは独立してアクセスポイントに接続し、hostsを経由しません。

極端な状況下でのhostsの利用法

もしDNSが完全に機能しない場合(すべてのパブリックDNSがブロックされているなど)、一時的に以下の対応が可能です:

  1. 別のネットワーク(友人の家や4Gなど)を使用して、現在の binance.com のIPを調べる。
  2. 制限されているネットワーク下のPCのhostsに書き込む。
  3. 一時的にアクセスする。

ただし、これはあくまで「緊急対応」であり、長期的な解決策ではありません。

hostsファイルの書式詳細

1行につき1つのマッピングを記述します。以下の点に注意してください:

  • Tabまたは複数のスペースで区切る
  • 行頭の # はコメント
  • IPv4とIPv6は別々に記述する
  • 1つのIPを複数のドメインに対応させることができる

hostsを変更するには管理者権限が必要です:

  • Windows:「管理者として実行」でメモ帳を開く
  • macOS / Linux:sudo を使用して編集する

変更後の反映

OS 反映方法
Windows 即時反映
macOS 即時反映 + dscacheutil -flushcache
Linux 即時反映
ブラウザ ブラウザの再起動が必要な場合あり

hostsのセキュリティリスク

悪意のあるhostsの変更は一般的な攻撃手法です:

  • ウイルスが binance.com をフィッシングサイトのIPに変更する可能性がある。
  • ユーザーがドメイン名を入力した際、偽のウェブサイトにアクセスしてしまう。
  • 入力したアカウントやパスワードが盗まれる。

防御策:

  • 定期的にhostsファイルの内容を確認する。
  • セキュリティソフトでスキャンする。
  • hostsファイルの権限を保護する。

hostsが悪意を持って変更されていないか確認する

簡単な確認方法:

  1. hostsファイルを開く。
  2. binance.com または類似のエントリがあるか確認する。
  3. あって、自分が記述したものではない場合 → 攻撃を受けている可能性がある。
  4. バックアップを取った後、クリアする。

正常なhostsファイルには、少数のエントリ(127.0.0.1 localhost など)しか存在しないはずです。

モバイル端末でhostsは変更できるか

iOS:デフォルトでは不可、ジェイルブレイク(脱獄)が必要。 Android:デフォルトでは不可、root化が必要。

一般ユーザーは、モバイル端末でhostsを使用して強制解決することはできません。

VPNとの違い

項目 hosts VPN
目的 解決結果の変更 IPルーティングの変更
設定の粒度 単一ドメイン 全トラフィック
速度への影響 ほぼなし 遅くなる可能性あり
メンテナンス難易度 高(IP変動)

VPNはhostsよりも安定していますが、コンプライアンス上の問題があります。

FAQ

Q:hostsを書き間違えるとシステムが壊れますか? A:壊れません。特定のドメインの名前解決に失敗するだけです。

Q:hostsで広告ドメインをブロックできますか? A:できます。広告ドメインを 0.0.0.0 に向ければブロックできます。

Q:hostsはDNSより速いですか? A:単一ドメインの検索はわずかに速くなりますが、全体的な体感はほとんど変わりません。

Q:アプリがhostsを読み込まない場合はどうすればいいですか? A:アプリのトラフィックに影響を与えるには、グローバルプロキシまたはVPNを使用する必要があります。

関連記事