海外赴任中のsetoatuです。ご無沙汰しております。
本日は海外から日本の動画配信サービス(Amazonプライム・ビデオやHulu、NetFlixなど)を楽しむ方法についてご紹介したいと思います。
ウェブ上で紹介されている多くの解決方法としては日本のVPNサービスを利用してVPN経由で動画を楽しむ方法かと思いますが、VPNはオーバーヘッドが大きくて重いんですよね。特に秘匿したいデータ通信の内容でもないですしVPNを利用しなくてもいいはずです。
- 動作が軽快
- いちいちVPNをONにしなくてもいい
- VPNの場合全ての通信がVPNサーバ経由になるため、動画視聴以外の操作も重くなる
今回はnetflix-proxyというフリーソフトを利用する方法を紹介したいと思います。Smatr DNS Proxyというサービスがありますが、ほぼこれと同じことを実現します。こちらのサービスで日本で対応しているのはこちらのページに記載がありますが、Amazonプライムとアニマックスなど一部のサービスのみとなっています。
ですのでNetflix-proxyを使って自分専用のサービスを立ててしまおう、という話です。
netflix-proxyの動作の仕組み
図がないと説明するのが難しいのですが、クライアント(動画を表示したい端末)のネットワーク設定で、DNSサーバを今回立てるサーバー(netfix-proxyサーバ)のIPアドレスを指定します。こうすることでホスト名をIPアドレスに変換する際にnetflix-proxyに問い合わせにいきます。netflix-proxyサーバはDNSマスカレードとProxyサーバの組み合わせでできており、例えばamazon.co.jpのIPアドレスを本当のIPアドレスではなく自分自身のIPアドレスを返却します。こうすることでアプリやブラウザはamazon.co.jpにアクセスしようとしてnetflix-proxyサーバーにアクセスに行きます。netflix-proxyはプロキシーサーバーとして代理でamazon.co.jpに動画コンテンツを取りに行く、という仕組みです。
わかりますかね?
通常 +----------+ +-----------+ | | | | | client | +--------------> | DNS | | | (Amazonどこ?) | | +----------+ +-----------+ +----------+ +-----------+ | | | | | client | <--------------+ | DNS | | | (Bだよ) | | +----------+ +-----------+ IPアドレスB +----------+ +-----------------+ | | +--------------------------------------------> | | | client | (動画くれ) X<------------+ | Amazon etc. | | | (あんた海外だからダメ) | | +----------+ +-----------------+ Netflix-proxyの場合 DNSとしてAを指定 IPアドレスA +----------+ +-----------+ | | | | | client | +--------------> | proxy | | | (Amazonどこ?) | (日本) | +----------+ +-----------+ +----------+ +-----------+ | | | | | client | <--------------+ | proxy | | | (俺:A) | | +----------+ +-----------+ IPアドレスB +----------+ +-----------+ +-----------------+ | | +--------------> | | (動画くれ) | | | client | (動画くれ) | proxy | <-------------> | Amazon etc. | | | <--------------+ | | (日本なのでOK) | | +----------+ (あいよ) +-----------+ +-----------------+
VPSサービスの契約
UbuntuかDebianだと問題が少ないようです。私はGMOの提供するConoHaを選んでみました。後述しますがサーバーが東京にあること、初期費用が0円であること、月額630円であることが決め手です。
netflix-proxyの導入
導入の仕方は至ってシンプルです。rootで上記コンソールからログインして、以下のコマンドを実行するだけです。
&& apt-get -y install vim dnsutils curl sudo\
&& curl -fsSL https://get.docker.com/ | sh || apt-get -y install docker.io\
&& mkdir -p ~/netflix-proxy\
&& cd ~/netflix-proxy\
&& curl -fsSL https://github.com/ab77/netflix-proxy/archive/latest.tar.gz | gunzip – | tar x –strip-components=1\
&& ./build.sh
インストールが完了すると、設定画面のURLとAdminのパスワードが表示されるので控えておきましょう。
URLはhttp://(IPアドレス:上記の図の例だとIPアドレスA):8080/のはずです。
ブラウザからアクセスすると、接続元のグローバルIPアドレスが表示されるので追加しましょう。セキュリティのためにリストに乗っているIPアドレスに対してのみサービスを提供する作りになっているようです。
netflix-proxyのカスタマイズ
さて、ここからは他のサービスの追加について書いていきます。
ホームディレクトリ/root配下にnetflix-proxyというディレクトリができています。編集するファイルはdnsmasq.confというファイルになります。
書式としてはaddress=/当該サーバ経由でアクセスしたいサービスのドメイン名/netflix-proxyサーバのIPアドレス(自IPアドレス)とシンプルです。
address=/amazon.co.jp/IPアドレスA address=/radiko.jp/IPアドレスA address=/radiko.co.jp/IPアドレスA address=/nicovideo.jp/IPアドレスA address=/dmm.com/IPアドレスA address=/dazn.com/IPアドレスA address=/abema.tv/IPアドレスA address=/hulu.jp/IPアドレスA address=/happyon.jp/IPアドレスA address=/happyon.com/IPアドレスA
Huluは今の所難しそうです。サーバー側から直接IPアドレスを渡されているようでDNSによる名前解決を行っていない気配です。
さて、設定が済んだらサーバーの再起動を行いましょう。netflix-proxyはDocker上に展開されていますので
# docker restart dnsmasq
dnsmasq
#
これで完了です。この設定で、Amazonプライム・ビデオ、Netflix、Radiko(東京地域)、ニコニコ動画、DMM、DAZN、AbemaTVが見れています。
Netflixの場合(追記)
Netflixの場合IPv6をオフにしないといけないようです。
server=/netflix.com/# address=/netflix.com/:: server=/netflix.co.jp/# address=/netflix.co.jp/:: server=/netflix.net/# address=/netflix.net/:: server=/nflxext.com/# address=/nflxext.com/:: server=/nflximg.net/# address=/nflximg.net/:: server=/nflxvideo.net/# address=/nflxvideo.net/:: server=/nflxso.net/# address=/nflxso.net/::
プリズン・ブレイクとか日本語の字幕がでないんだけどこれで合っているんだろうか…。
なにかおかしいので他のVPSで新しくサービスをたちあげてみたところなんとNetflixに加えてHuluも見れることが判明しました。ということでConohaはいいんですが既に規制がかかってしまっているVPSのようです。
おまけ
各PCやスマートフォン、私の場合はAppleTVもですが、各デバイスに対していちいちDNSの設定をしていくのは大変です。
私はNECのAtermを愛用中ですが、設定画面の「接続先設定」のDNSの欄にNetflix-proxyサーバのIPアドレスの指定をしています。こうすることで各デバイスへの個別の設定は不要になります。
記事は以上。Enjoy!
Copyright © 2019 蒲田ネット All Rights Reserved.