本稿ではAmazon Fire TV StickからWireGuard VPNへ接続する越境FireTVStickの作成方法を解説します。海外旅行へ行くときにこの越境FireTVStickを持ち歩くことでNetflix日本版・NHKオンデマンド・YouTube Premium等国外からの接続制限のかかったサイトへのアクセスが可能になります。
本稿ではFire TV Stickの開発者オプション(非推奨)を利用します。また、接続先の利用規約などにより禁止されている場合もあります。くれぐれもご自身のリスクにてお試しください。
How it work 動作原理
FireTVStickにWireGuard VPNクライアントアプリから日本においてあるWireGuard VPNサーバに接続して、ローカル通信以外のIPをすべてVPNトンネルへ流します。接続先からはあたかも日本国内から接続しているように見えます。
WireGuard VPN?
WireGuard VPNは2015年頃に開始されたオープンソースプロジェクトで比較的新しいVPNソフトウェアです。WireGuard VPNのコアコードはわずか4000行。シンプルに作られており、接続が早くスマホでも軽快に動作しますので今回のような用途にはぴったりです。
やってみる
FireTVStickの中身はスマホでおなじみのAndroidOSであり、WireGuardのAndroid版クライアントソフトウェアがインストールできます。スマホと違うのはキーボードが無くWireGuard VPNの接続情報を設定する方法に工夫が必要になります。
Android Studioが動作するパソコンが必要です。機種ごとの違いはあまりないと思いますが本稿ではMacOSXを例に説明します。
WireGuard VPNアプリのダウンロード
パソコンでWireGuardのAndroid版クライアントソフトウェアをダウンロードします。最新版をインストールしてください。私は現時点での最新com.wireguard.android_474.apkを利用します。
ADBのインストール
WireGuardのアプリはFireTVStickの公式アプリには無いので、パソコンからFireTVStickに接続してそこからインストールします。インストールにはADB (Android Debugging Bridge)というコマンドを利用します。このコマンドはAndroid Studioに付属しているのでインストールします。Android StudioをインストールしたらPreference > Android SDKを開きます。

ADBコマンドは{Android SDK Location}/platform-tools/adbにインストールされています。ターミナルから実行してみます。

開発者オプションの設定
ADBからFireStickTVに接続する前にサードパーティアプリのインストール許可の設定と開発者オプションを有効にしておきます。
FireTVStickの設定よりMy Fire TV > 開発者オプション より ADBデバッグと不明ソースからのアプリの両方をオンにします。

またADBからの接続のためFireStickTVネットワーク情報も確認しておきます。同じく設定のMy Fire TV > バージョン情報 >ネットワーク からFire TV StickのIPアドレスを確認しておいてください。

ADBからFire Stick TV に接続する
{Android SDK Location}/platform-tools/adb connect {FireTVStickのIPアドレス}:5555
初回のみFireTVStick側で確認をされるのでOKを選択

接続が完了します

WireGuard VPNアプリのインストール
以下のADBコマンドを実行してAPKをインストールします
{Android SDK Location}/platform-tools/adb install {WireGuard VPN APK ファイル}

インストール完了すると、FireTVStickのマイアプリで確認できます

WireGuard VPN設定ファイルの作成
パソコン上でWireGuard VPNの設定ファイルwg.confを作成しておき、これをFireTVStickに転送します。以下はサンプルです。
FireTVStick側の公開鍵とIPアドレスは予めWireGuard VPNに設定する必要があります。ここで必要となるFireTVStick側の公開鍵・秘密鍵はパソコン側にWireGuard VPNのクライアントをインストールして生成してしまうのが簡単です(詳細は省きます)
WireGuard VPN設定ファイルの転送
作成した設定ファイルwg.confをADBでFireTVStickの/sdcardに転送します。

{Android SDK Location}/platform-tools/adb push {wg.conf ファイル} /sdcard
FireTVStick側で設定ファイルの読み込み
FireTVStickでWireGuardアプリを起動して、設定の新規追加

ファイル、アーカイブからのインポートを選択

先程転送したwg.confを選択

設定が追加されたので、スイッチをオンにします

初回は警告が出ます(以降は自動接続)。

以上で完了です。お疲れさまでした。
気になる人は念の為不要な設定ファイルを削除しておきましょう
{Android SDK Location}/platform-tools/adb shell rm /sdcard/wg.conf
この記事を書いて、もう一つAmazon FireTVStick欲しくなったのですが、今(2020-5-10)見たら 品薄のようで手にはいりにくいようです、しょんぼり。
おまけ
MacOSX限定ですが、以下のようにして簡単に鍵ペアを作ることが出来ます。
wirguard-toolsをインストール
brew install wireguard-tools
秘密鍵の生成
wg genkey (毎回違うのが出てくる)
公開鍵の生成
echo '上で作った秘密鍵' | wg pubkey
