[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】Akamai Stagingをスマホ実機で検証したかったが、Windows ARM64でmitmproxyが入らなかったので自作した [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

開発者がAkamaiのプロパティ変更をモバイル実機で検証しようとした際、端末の制限とPC環境の制約により、名前解決の制御が困難になった。具体的には以下の問題に直面した。


  • Android端末の/system/etc/hostsは、root権限がないと編集できない。
  • DNS書き換えアプリ(personalDNSfilter)では、期待通りにマッピングが機能しなかった。
  • Windows ARM64環境では、定番のmitmproxyが依存ライブラリのビルド失敗により導入できなかった。

// Approach

開発者はPCをプロキシとし、スマホの通信をPC経由で流す手法を採用した。これによりPCのhosts設定を強制的に適用できる。


  • Pythonの標準ライブラリのみを用い、依存関係を排除したプロキシを実装した。
  • socket.create_connection()を利用し、PCのOSリゾルバを介して名前解決を行う。
  • HTTPS通信に対してはCONNECTメソッドによるTCPトンネリングを行い、証明書不要で中継する。

// Result

自作プロキシにより、特定のドメインのみをStaging IPへ、その他を本番IPへ正確に振り分ける環境を構築できた。


  • 対象ドメインが正しくStaging IPに解決されることをログで確認した。
  • mitmproxyが動作しないARM64環境でも、最小限のコードで検証環境を構築できた。
  • DNS書き換えアプリでは困難だった、解決結果の可視化を実現した。

Senior Engineer Insight

> 既存ツールが動作しない特殊環境下で、原理原則に基づき最小構成で解決を図る判断は極めて正しい。依存関係を排除し、標準ライブラリのみで目的を達成するアプローチは、環境構築のオーバーヘッドを最小化する。ただし、本実装は認証やアクセス制限がないため、あくまでローカルな検証用途に限定すべきだ。実戦では、ログの信頼性を疑い、ping等の低レイヤーな手段で事実を確認する姿勢が不可欠である。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。